MPI εργασίες¶
Μία σύντομη εισαγωγή στον παράλληλο προγραμματισμό και στη χρήση του MPI, υπάρχει εδώ.
Έστω ότι θέλουμε να τρέξουμε παράλληλα ενα MPI script γραμμένο σε C με όνομα example.c.
Αρχικά, δημιουργούμε το batch script προς υποβολή(έστω mpi-example-1.sh) με τις κατάλληλες SBATCH μακροεντολές
, οι οποίες θα επιτρέψουν την παράλληλη χρήση επεξεργαστών.
Στο batch script
του παραδείγματος, ορίζουμε επιπρόσθετα τις #SBATCH directives
: --ntasks-per-node
και --nodes
. Στη συνέχεια κάνουμε load
το mpi module που επιθυμούμε. Έπειτα, κάνουμε compile το αρχείο μας με την εντολή mpicc
για να δημιουργήσουμε το εκτελέσιμο και το τρέχουμε παράλληλα σε όσες CPU έχουν γίνει allocate για το job μας με την srun
.
Παράδειγμα
#!/bin/bash
#SBATCH --partition=batch
#SBATCH --ntasks-per-node=20
#SBATCH --nodes=1
#SBATCH --time=1:00:00
module load gcc openmpi
mpicc example.c -o example
srun ./example
Στην περίπτωση που θέλουμε να τρέξουμε το πρόγραμμα μας σε διαφορετικούς κόμβους αρκεί να δηλώσουμε το configuration που θέλουμε μέσω των SBATCH μακροεντολών
. Έτσι, αν θέλουμε 3 κόμβους με 15 επεξεργαστές στον κάθε ένα (σύνολο 45 παράλληλα processes), χρησιμοποιούμε το batch script
του παραδείγματος(έστω mpi-example-2.sh):
Παράδειγμα
#!/bin/bash
#SBATCH --partition=batch
#SBATCH --ntasks-per-node=15
#SBATCH --nodes=3
#SBATCH --time=1:00:00
module load gcc openmpi
mpicc example.c -o example
srun ./example