MPICH

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

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

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT