[programmation parallèle MPI] : pb de compil

Fermé
pom - 3 août 2006 à 10:30
 pop - 27 févr. 2008 à 15:18
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

(cf ftp://ftp.mcs.anl.gov/pub/mpi/README)

J'ai donc tapé mon code (programme C) que voici :

#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.
A voir également:

1 réponse

bonjour
bon pour la compilation la commande est mpicc -o nom de pgm nom de pgm.c
et pour l'exécution c'est mpirun -np nbre de processus nom de pgm
0