# 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.