5 Commits

  1. 0
      docs/content/best_practice.md
  2. 0
      docs/content/environment.md
  3. 65
      docs/content/first_steps.md
  4. 25
      docs/content/index.md
  5. 54
      docs/content/internal/network.md
  6. 0
      docs/content/storage.md
  7. 0
      docs/content/support.md
  8. 0
      docs/content/usage.md
  9. 18
      docs/default.nix
  10. 37
      docs/mkdocs.yaml
  11. 1
      docs/result
  12. 1
      flake.nix
  13. 17
      machines/manager/docs.nix
  14. 2
      machines/manager/mpi.nix
  15. 2
      machines/manager/network.nix
  16. 3
      packages/pdt/.gitignore
  17. 2
      shared/network.nix
  18. 11
      shared/users.nix

0
docs/content/best_practice.md

0
docs/content/environment.md

65
docs/content/first_steps.md

@ -0,0 +1,65 @@
# Erste Schritte mit dem Lehr-HPC Cluster
Willkommen zum Abschnitt "Erste Schritte" der Benutzer-Dokumentation für den Lehr-HPC Cluster! Hier erfahren Sie, wie Sie Zugang zum Cluster erhalten, sich anmelden und grundlegende Konzepte des High-Performance Computing (HPC) kennenlernen können.
## Zugang zum Cluster beantragen
Bevor Sie mit dem Lehr-HPC Cluster arbeiten können, müssen Sie Zugang beantragen. Hier sind die Schritte, um den Zugang zu erhalten:
1. Besuchen Sie die Webseite des Lehr-HPC Clusters: https://lehr-hpc-cluster-university.edu.
1. Suchen Sie nach dem Abschnitt "Zugang beantragen" oder ähnlichem.
1. Füllen Sie das Zugangsformular aus, das Ihre Kontaktdaten, den Grund für den Zugang und möglicherweise andere Informationen abfragt.
1. Senden Sie den Antrag ab und warten Sie auf die Bestätigung Ihrer Zugangsberechtigung. Dies kann einige Zeit in Anspruch nehmen.
## Anmeldung auf dem Cluster
Sobald Ihr Zugang genehmigt wurde, können Sie sich auf dem Lehr-HPC Cluster anmelden:
1. Öffnen Sie ein Terminal auf Ihrem Computer.
1. Verwenden Sie den Befehl ssh in Verbindung mit Ihrer zugewiesenen Benutzer-ID und der Cluster-Adresse, um sich anzumelden:
```bash
ssh benutzername@lehr-hpc-cluster-university.edu
```
Geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden.
## Grundlegende Begriffe kennenlernen
Um erfolgreich mit dem Cluster zu arbeiten, sollten Sie einige grundlegende HPC-Konzepte verstehen:
* **Knoten**: Ein Knoten ist eine einzelne Recheneinheit im Cluster, die aus mehreren CPU-Kernen besteht.
* **Batch-System**: Der Cluster verwendet ein Batch-System zur Verwaltung von Berechnungsaufträgen. Sie reichen Ihre Aufträge ein, und das System plant und verteilt sie auf verfügbare Ressourcen.
* **Job einreichen**: Das Einreichen eines Jobs bedeutet, eine rechenintensive Aufgabe an das Cluster zu senden, um sie dort ausführen zu lassen.
# Erste Schritte mit einem Testjob
Um sich mit der Nutzung des Clusters vertraut zu machen, können Sie einen einfachen Testjob einreichen:
* Erstellen Sie eine Textdatei namens testjob.sh auf Ihrem Computer.
* Öffnen Sie die Datei in einem Texteditor und fügen Sie den folgenden Inhalt ein:
```bash
#!/bin/bash
#SBATCH --job-name=testjob
#SBATCH --output=testjob.out
#SBATCH --partition=standard
#SBATCH --ntasks=1
#SBATCH --time=00:10:00
echo "Hallo vom Lehr-HPC Cluster!"
sleep 60
```
Dieses Skript führt einen einfachen Befehl aus und wartet dann 60 Sekunden.
* Laden Sie die Datei auf den Cluster hoch, beispielsweise mit dem Befehl scp:
```bash
scp testjob.sh benutzername@lehr-hpc-cluster-university.edu:~/testjob.sh
```
* Verbinden Sie sich erneut mit dem Cluster und reichen Sie den Testjob ein:
```bash
sbatch testjob.sh
```
* Überwachen Sie den Status des Jobs mit dem Befehl `squeue -u benutzername` und sehen Sie zu, wie er ausgeführt wird.
Herzlichen Glückwunsch! Sie haben Ihren ersten Testjob auf dem Lehr-HPC Cluster erfolgreich eingereicht.
Nächste Schritte
Sie haben nun erfolgreich die ersten Schritte auf dem Lehr-HPC Cluster unternommen! Als nächstes können Sie sich mit fortgeschritteneren Themen wie der Einreichung komplexerer Aufträge und der Nutzung spezifischer Software vertraut machen. Werfen Sie einen Blick auf die anderen Abschnitte dieser Dokumentation, um Ihr Wissen zu vertiefen.

25
docs/content/index.md

@ -0,0 +1,25 @@
Herzlich Willkommen zur Benutzer-Dokumentation des High-Performance Computing (HPC) Clusters der Hochschule Fulda!
## Einführung zum HPC Cluster
Herzlich willkommen zur offiziellen Benutzer-Dokumentation unseres High-Performance Computing (HPC) Clusters.
Diese Dokumentation soll Ihnen dabei helfen, das volle Potenzial unseres Clusters auszuschöpfen, um komplexe Berechnungen und wissenschaftliche Simulationen effizient durchzuführen.
## Was ist ein HPC Cluster?
Ein HPC Cluster ist ein leistungsstarkes Netzwerk von miteinander verbundenen Computern, die gemeinsam komplexe Berechnungen und rechenintensive Aufgaben bewältigen können.
Unser Cluster wurde entwickelt, um den Umgang mit einem HPC Cluster in der Lehre zu vermittel und Forscherinnen und Forschern aus verschiedenen Disziplinen die Möglichkeit zu bieten, Simulationen durchzuführen, Datenanalysen durchzuführen und innovative Forschungsprojekte zu realisieren.
## Inhalt der Dokumentation
Unsere Benutzer-Dokumentation ist in mehrere Abschnitte unterteilt, um Ihnen einen klaren Überblick über die verschiedenen Aspekte unseres HPC Clusters zu geben:
* [Erste Schritte](first_steps.md): Hier erfahren Sie, wie Sie Zugriff auf den Cluster erhalten, sich anmelden und grundlegende Befehle verwenden können.
* [Cluster-Nutzung](usage.md): Dieser Abschnitt deckt fortgeschrittenere Themen ab, wie das Einreichen von Berechnungsaufträgen, die Nutzung von Parallelverarbeitung und die Verwaltung von Ressourcen.
* [Software-Umgebung](environment.md): Erfahren Sie, wie Sie Softwarepakete laden, erstellen und verwenden können, um Ihre spezifischen Anforderungen zu erfüllen.
* [Datenspeicherung](storage.md): Hier wird erläutert, wie Sie Daten auf dem Cluster speichern, verwalten und zwischen verschiedenen Speicheroptionen übertragen können.
* [Best Practices](best_practice.md): Entdecken Sie bewährte Methoden und Tipps, um die Leistung Ihrer Berechnungen zu optimieren und potenzielle Stolpersteine zu vermeiden.
* [Support und Hilfe](support.md): Falls Sie auf Probleme stoßen, bieten wir Ihnen in diesem Abschnitt Unterstützung an und zeigen Ihnen, wie Sie Hilfe erhalten können.

54
docs/content/internal/network.md

@ -0,0 +1,54 @@
# Network Details
## Management Network
Each host (all nodes, management and storage) is attached to a dedicated management network.
**VLAN**: 1032
**IPv4**: 10.32.46.0/24
**IPv6**: 2001:638:301:202e::/64
**DHCP**: Enabled
**Switch ports**: 25 - 48
### Hosts
```
10.32.46.10 - manager
10.32.46.100 - node-00
10.32.46.1xx - node-xx
10.32.46.120 - node-20
10.32.46.254 - switch
```
## Data Network
**VLAN**: 1033
**IPv4**: 10.32.47.0/24
**IPv6**: 2001:638:301:202f::/64
**Switch ports**: 1 - 24
### Hosts
```
10.32.47.10 - manager
10.32.47.100 - node-00
10.32.47.1xx - node-xx
10.32.47.120 - node-20
```
## Switch configuration
The main switch, all interfaces are connected to, is split in two VLANs for management and data.
**Management IP**: 10.32.46.254/24
### Enable SSH configuration
SSH login is enabled but quite unusable in the default state. To enable all config commands use the following procedure:
After login with username and password, enter the command:
```
_cmdline-mode on
```
Accept with `yes` and enter the following (vendor specific) password:
```
512900
```

0
docs/content/storage.md

0
docs/content/support.md

0
docs/content/usage.md

18
docs/default.nix

@ -0,0 +1,18 @@
{ stdenv
, mkdocs
, ...
}:
stdenv.mkDerivation {
name = "docs";
preferLocalBuild = true;
allowSubstitutes = false;
src = ./.;
buildCommand = ''
cd "$src"
${mkdocs}/bin/mkdocs build --site-dir "$out"
'';
}

37
docs/mkdocs.yaml

@ -0,0 +1,37 @@
site_name: HPC @ HS-Fulda
site_description: User documentation for high performance cluster on University of Applied Sciences Fulda
site_url: https://docs.hpc.informatik.hs-fulda.de/
site_dir: public
use_directory_urls: false
strict: true
repo_url: https://gogs.informatik.hs-fulda.de/hpc/nixcfg.git
docs_dir: content
theme:
name: readthedocs
locale: de
prev_next_buttons_location: none
highlightjs: true
hljs_languages:
- bash
- yaml
- rust
markdown_extensions:
- extra
- admonition
plugins:
- search
nav:
- Start: index.md
- Erste Schritte: first_steps.md
- Nutzung: usage.md
- Software: environment.md
- Daten: storage.md
- Best Practices: best_practice.md
- Hilfe: support.md
- Internes:
- Netzwerk: internal/network.md

1
docs/result

@ -0,0 +1 @@
/nix/store/8v3r668x18fl49yx2s41yzs0qx9cn24d-docs

1
flake.nix

@ -120,6 +120,7 @@
openssh
sops
age
mkdocs
]);
shellHook = ''

17
machines/manager/docs.nix

@ -0,0 +1,17 @@
{ pkgs, lib, ... }:
with lib;
let
docs = pkgs.callPackage ../../docs { };
in
{
services.nginx = {
virtualHosts = {
"docs.${config.networking.domain}" = {
locations."/".root = docs;
};
};
};
}

2
machines/manager/mpi.nix

@ -5,7 +5,7 @@ with lib;
{
environment.etc."mpi/hosts" = {
text = concatMapStringsSep "\n"
(node: "${node.config.networking.hostName} max_slots=64")
(node: "${node.config.networking.hostName} max_slots=32")
(filter
(node: elem "node" node.config.deployment.tags)
(attrValues nodes));

2
machines/manager/network.nix

@ -10,6 +10,4 @@
address = "10.32.47.1";
interface = "enp11s0f0";
};
networking.firewall.extraInputRules = "ip saddr 10.32.47.0/24 accept";
}

3
packages/pdt/.gitignore

@ -0,0 +1,3 @@
# nixago: ignore-linked-files
/.sops.yaml

2
shared/network.nix

@ -15,4 +15,6 @@
networking.useDHCP = false;
networking.nftables.enable = true;
networking.firewall.extraInputRules = "ip saddr 10.32.47.0/24 accept";
}

11
shared/users.nix

@ -1,4 +1,4 @@
{ lib, config, ... }:
{ pkgs, lib, config, ... }:
with lib;
@ -43,6 +43,15 @@ in
security.pam.services."sshd".makeHomeDir = true;
security.pam.services."systemd-user".makeHomeDir = true;
security.pam.loginLimits = [
{
domain = "@cluster";
item = "memlock";
type = "-";
value = "unlimited";
}
];
sops.secrets."ldap/login/password" = {
owner = "nslcd";
sopsFile = ./secrets.yaml;

Loading…
Cancel
Save