Files
slurmcluster/README.md
Marcel Nijenhof 59f8fbbe15 Integratie wait en mpitests-mpich
- Gebruik gemaakt van wait als init zodat de processen opgeruimt worden
 - mpitests-mpich als mpi demo toegevoegd
 - In README: testen uitgebreid met mpi & logfiles sbatch beschreven
2020-06-02 02:13:52 -04:00

109 lines
2.4 KiB
Markdown

# Een mini slurm cluster als docker compose omgeving
## Introductie
Op dit moment zijn we aan het onderzoeken of we via docker containers
een slurm omgeving kunnen maken waarin de Deltares waqua en d-hydro
modelen kunnen draaien.
Dit cluster is een POK van slurm in docker containers.
De doelen hiervan is:
- Uitzoeken of slurm in docker kan draaien
- Uitzoeken of we de deltares modelen hierin kunnen draaien
- Kennis overdracht van slurm
## Build instructies
De submit en reken nodes zijn afhankelijk van een basis image slurm-base.
Hierin staan al een aantal files die op zowel reken nodes als submit node
aanwezig moet zijn.
Deze moet eerst gebouwt worden met een docker commando:
```
docker build -t slurm-base:latest slurm-base
```
Hierna kan het cluster gebouwt worden via:
```
docker-compose build
```
En gestart worden via:
```
docker-compose up -d
```
## Testen
### De status van het cluster
Met de volgende commando's kun je status informatie krijgen:
- sinfo
- squeue
- scontrol ping
- scontrol show nodes
- scontrol show partition
- scontrol show job
### Een simpel shell script
Plaats het volgende shell script ergens in '''/home''':
```
#!/bin/sh
hostname
sleep $(( ${RANDOM}%40+40 ))
```
Vervolgens kun je dit script met sbatch 8 keer submitten.
Wat je ziet is dat elke node 2 scripten start.
De overige 4 blijven in de queue staan.
Je kunt de output van de shell script bekijken in de logfiles
slurm-<nr>.out
### Mpich test programma's
Via srun kunnen we programma's vanaf de submit node in de voorgrond draaien.
De output komt dan gewoon naar het scherm.
Start het mpi hello test programma met:
```
srun --mpi=pmi2 -n 4 /usr/lib64/mpich/bin/mpitests-osu_hello
```
We zien dat hij netjes meld dat hij met 4 nodes gedraait heeft.
We kunnen ook een latency test draaien met 2 nodes:
```
srun --mpi=pmi2 -n 2 /usr/lib64/mpich/bin/mpitests-osu_acc_latency
```
In dit geval draaien beide programma's op de zelfde node.
Laten we het zelfde doen maar dan een mpi programma per node:
```
srun --mpi=pmi2 -N 2 -n 2 /usr/lib64/mpich/bin/mpitests-osu_acc_latency
```
In dat geval zien we een hogere latency!
Ten slotte een test waarbij mpi op alle beschikbare cpu's draait:
```
srun --mpi=pmi2 -n 4 /usr/lib64/mpich/bin/mpitests-osu_allgather
```
## Todo
### Nu
- Integratie waqua/d-hydro.
- Workshop schrijven.
### Voor productie
- Persistent maken job administratie.
- Redundante master nodes.
- Submit nodes die geen master node zijn.