MPICH

MPICH

Jest biblioteką, która implementuje standard MPI (Message Passing Interface (MPI). Pozwala na przekazywanie komunikatów wewnątrz procesu obliczeniowego działającego równolegle.

Protokół MPICH przeznaczony jest do sterowania procesem obliczeń równoległych w sieciach rozproszonych. Najnowsza wersja tej biblioteki MPICH3 poza zapewnieniem bardziej wydajnych mechanizmów komunikacji posiada dodatkowo:

  • poprawę stabilności MPICH,

  • całkowicie przebudowaną infrastrukturę RMA (Remote Memory Access),

  • poprawę funkcjonalności I/O

  • poprawę bezpieczeństwa

Wersja MPICH 3 jest już zaimplementowana na klastrze obliczeniowym bluocean.

Uruchamianie zadań w oparciu o MPICH 3.2

Postać kontenera:

 

#!/bin/bash

cTIME=`date +"%Y%m%d%H%M%S"`

f=pe.$1.$cTIME

echo "#!/bin/bash" > $f

echo "#$ -cwd" >> $f

echo "#$ -M uzytkownik@p.lodz.pl" >> $f

echo "#$ -m e" >> $f

echo "#$ -pe mpi 5" >> $f

echo "#$ -q short" >> $f

#echo "#$ -V" >> $f

#echo "#$ -j y" >> $f

#echo "#$ -o $f.out" >> $f

echo "export PATH=/opt/MPI/mpich3.2/bin:$PATH" >> $f

echo "mpiexec program_mpi" >>$f

qsub -S /bin/bash $f

 

parametr „#$ -pe mpi 5” oznacza deklarację jaki ma być tryb rozłożenia obliczeń oraz ile rdzeni zostanie wykorzystanych do obliczenia.

 

Zmienne

mpi - definiuje ilość zadeklarowanych procesów uruchamianych na jednym nodzie.

Jeżeli ilość zadeklarowanych procesów jest wyższa niż posiada nod część zadania uruchamiana jest na kolejnym nodzie.

make = rr (roud robin) – zadania uruchamiane są na nodach w zrównoważony sposób.

smp = pe (pe_slots) – zadania uruchamiane są na jednym nodzie, jeżeli liczba zadeklarowanych procesów jest wyższa niż liczba procesorów noda zadanie nie zostanie uruchomione.