MPICH
MPICH este o implementare gratuită și portabilă a MPI , un protocol de comunicație utilizat în aplicații pentru sisteme de memorie distribuită pentru calcul paralel . MPICH este software gratuit și este disponibil pentru diferite versiuni de Unix (inclusiv Linux și macOS ) și Microsoft Windows .
Prima implementare a MPICH se numește MPICH1, care implementează standardul MPI-1.1 . În prezent, cea mai recentă implementare se numește MPICH2, care implementează standardul MPI-2.0 , dar nu acceptă încă traducerea datelor din diferite tipuri de arhitecturi hardware.
Operațiune
Pentru a utiliza implementările MPICH-2 este necesar să efectuați câțiva pași.
În primul rând, trebuie să creați un fișier .mpd.conf pentru al plasa în casa utilizatorului și să adăugați un cuvânt secret.
cd $ ACASA atingeți .mpd.conf chmod 600 .mpd.conf ecou "MPD_SECRETWORD = mr45-j9z"> .mpd.conf
După acest pas, trebuie să specificați mașinile care vor fi utilizate în timpul rulării. Tocmai din acest motiv, mașinile sunt plasate într-un fișier special mpd.hosts . Adresele IP sau numele de gazdă sunt introduse în acest fișier.
După acest pas, nu mai rămâne decât să începeți totul cu:
mpdboot -n <număr de noduri> -f mpd.hosts
Exemple
MPICH-2 poate fi utilizat cu C , C ++ si Fortran limbi . Să vedem mai jos, câteva exemple de coduri mici.
Limbajul C
#include <stdio.h>
#include <mpi.h>
int main ( int argc , char * argv [])
{
rang int , dimensiune ;
MPI_Init ( & argc , & argv );
MPI_Comm_rank ( MPI_COMM_WORLD , & rang );
MPI_Comm_size ( MPI_COMM_WORLD , & dimensiune );
printf ( "Bună ziua lumea din procesul% d din% d \ n " , rang , dimensiune );
MPI_Finalize ();
retur 0 ;
}
Pentru a compila și rula acest program pe 5 noduri, trebuie să rulați aceste 2 comenzi:
mpicc -o exe_c mpi_c.c mpiexec -l -n 5 ./exe_c
În ieșire veți avea așa ceva:
0: Bună ziua lumii din procesul 0 din 5 1: Bună ziua lumii din procesul 1 din 5 3: Bună ziua lumea din procesul 3 din 5 2: Bună ziua lumea din procesul 2 din 5 4: Bună ziua lumea din procesul 4 din 5
Limba Fortran
program salut
include „mpif.h”
rang întreg , dimensiune , eroare , etichetă , stare ( MPI_STATUS_SIZE )
apelează MPI_INIT ( ierror )
apel MPI_COMM_SIZE (MPI_COMM_WORLD, dimensiune, ierror)
apel MPI_COMM_RANK (MPI_COMM_WORLD, rang, ierror)
print * , 'nod' , rang , ': Hello world'
apelează MPI_FINALIZE ( ierror )
Sfârșit
Pentru a compila și rula acest program pe 5 noduri, trebuie să rulați aceste 2 comenzi:
mpif90 -o exe_f mpi_f.f mpiexec -l -n 5 ./exe_f
În ieșire veți avea așa ceva:
1: nod 1: Hello world 2: nod 2: Hello world 3: nod 3: Hello world 0: nod 0: Hello world 4: nod 4: Hello world
Elemente conexe
linkuri externe
- (RO) Pagina principală MPICH pe www-unix.mcs.anl.gov.
- ( RO ) Pagina principală MPICH-2 , la mcs.anl.gov .
- ( EN ) Documente de standarde MPI , pe mpi-forum.org . Adus la 26 ianuarie 2007 (arhivat din original la 6 noiembrie 2006) .