Skip to content

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