MPI_INIT(ierr)
(se non esplicitamente detto, faccio riferimento alla sintassi delle librerie MPI in Fortran; mentre in C: MPI_Init(&argc,&argv)), dopo aver incluso le librerie MPI con
include 'mpif.h'
(in C: #include <mpi.h>), e terminano con la chiamata:
MPI_FINALIZE(ierr)
(in C: MPI_Finalize())
Non è un errore inserire sia in Fortran che in C istruzioni prima di MPI_INIT(ierr)o dopo MPI_FINALIZE(ierr), ma lo standard MPI non prevede di stabilire come queste istruzioni debbano essere eseguite, se su tutti i processori o solo su uno, oppure ancora su nessun processore. In pratica se si scrive un programma MPI con tali caratteristiche il risultato non è predicibile ed il programma non è portabile, ne si sconsiglia quindi la pratica.
Tutte le funzioni MPI iniziano con il prefisso MPI_FUNCTION
dove FUNCTIONstà
per il nome proprio di una funzione della libreria
(In C: MPI_Function,
ma le costanti definite in mpi.h sono tutte maiuscole).
| Versione Fortran | Versione C |
| program
Ciao
c234567 include 'mpif.h' integer nprocs, mype, ierr
call MPI_INIT(ierr)
|
#include <stdio.h>
#include <mpi.h> main(argc,argv)
MPI_Init(&argc,&argv);
|
Il programma non prevede comunicazione tra i vari processori e quindi nel modello SPMD è banalmente parallelizzato. Nel caso del linguaggio Fortran, che non distingue tra caratteri maiuscoli o minuscoli, di norma scriverò il codice con i caratteri minuscoli tranne che per le funzioni MPI, in modo che queste siano ben visibili nel testo.