使用scanf的OpenMPI程序不起作用

时间:2016-11-21 10:06:39

标签: c openmpi

我正在尝试发送输入消息,但我的程序挂起

#include <string.h>
#include <mpi.h>
#include <stdio.h>

main(int argc,char* argv[]){
int mi_rango;
int p;
int fuente;
int dest;
int etiqueta=0;
char mensaje[100] ;
MPI_Status status;

MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&mi_rango);
MPI_Comm_size(MPI_COMM_WORLD,&p);

if(mi_rango==0){

    printf("Ingrese la expresión a evaluar: ");
    scanf("%s", mensaje);


    for(fuente=1;fuente<p;fuente++){
               MPI_Send(mensaje,strlen(mensaje)+1,MPI_CHAR,fuente,etiqueta,MPI_COMM_WORLD); 

   }

}else{

dest=0;
MPI_Recv(mensaje,100,MPI_CHAR,dest,etiqueta,MPI_COMM_WORLD,&status);
    printf("%s\n",mensaje); 

 }
  MPI_Finalize();
}

当我运行时:mpirun -np 3 --hostfile ./program它什么都不做。 当我发送程序中定义的消息时,它可以工作。

0 个答案:

没有答案