Are you running on machines with OpenFabrics devices (that Open MPI is using)?
Is ompi-ps printing 100 bytes or more? What does ps show when your program is hung? On Sep 17, 2010, at 3:13 PM, Matheus Bersot Siqueira Barros wrote: > Open MPI Version = 1.4.2 > OS = Ubuntu 10.04 LTS and CentOS 5.3 > > When I run the mpi program below in the terminal, the function fgets hangs. > How do I know it? I do a printf before and later the call of fgets and only > the message "before fgets()" is showed. > > However, when I run the same program at Eclipse 3.6 with CDT > 7.0.0.201006141710 or using gdb it runs normally. > If you change the command in the function popen to another one(for instance: > "ls -l"), it will run correctly. > > I use the following commands to compile and run the program: > > compile : mpicc teste.c -o teste.run > > run : mpirun -np 4 ./teste.run > > > Does anyone know why the program behaves like that? > > Thanks in advance, > > Matheus Bersot. > > MPI_PROGRAM: > > #include <stdio.h> > #include "mpi.h" > > int main(int argc, char *argv[]) > { > int rank, nprocs; > FILE * pFile = NULL; > char mystring [100]; > > MPI_Init(&argc,&argv); > MPI_Comm_size(MPI_COMM_WORLD,&nprocs); > MPI_Comm_rank(MPI_COMM_WORLD,&rank); > > if(rank == 0) > { > pFile = popen ("ompi-ps" , "r"); > if (pFile == NULL) perror ("Error opening file"); > else { > while(!feof(pFile)) > { > printf("before fgets()\n"); > fgets (mystring , 100 , pFile); > printf("after fgets()\n"); > puts (mystring); > } > pclose (pFile); > } > } > > MPI_Finalize(); > return 0; > } > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/