Bonjour, j'ai suivi un cours (de 6h) sur la programmation parallèle avec MPI (librairie mpich).
J'ai donc chopé cette librairie sur https://www.mpich.org/ et je l'ai installé en tapant les lignes de commandes suivantes :
configure --with-device=ch_p4 --prefix=/usr/local/mpich-1.2.5/ch_p4 \
--with-common-prefix=/usr/local/mpich-1.2.5
make
make install
configure --with-device=ch_p4mpd --prefix=/usr/local/mpich-1.2.5/ch-p4mpd \
--with-common-prefix=/usr/local/mpich-1.2.5
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include "mpi.h"
int main(int argc,char **argv)
{
int my_rank,p,source,dest,silen=128,gherr;
char hname[128], message[800];
MPI_Status status;
int tag=50;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
MPI_COMM_size(MPI_COMM_WORLD,&p);
gherr=gethostname(hname,silen);
if(my_rank!=0)
{
sprintf(message,"Bonjour du process %d sur le noeud esclave %s",my_rank,hname);
dest=0;
MPI_Send(message,strlen(message)+1,MPI_CHAR,dest,tag,MPI_COMM_WORLD);
}
else
{
printf("message bien recu par le process %d sur le noeud maitre %s\n\n",my_rank,hname);
for(source=1;source<p;source++)
{
MPI_Recv(message,800,MPI_CHAR,source,tag,MPI_COMM_WORLD,&status);
printf("%s\n",message);
}
}
MPI_Finalize();
printf("fin du programme\n");
return EXIT_SUCCESS;
}
Pendant mon cours, j'ai appris que la ligne de commande, pour la compilation, était :
mpicc.mpich -o main.c -o out
ou mpicc est le grappeur de la grappe de calcul. Sur mon PC (Suse Pro 9.3) j'ai 2 biprocesseur (donc 4 processeur). Et il ne connait pas mpicc.
Que dois-je faire pour compiler mon prgm ? et pou l'éxécuter ?
Merci.
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.