Jeff and Ralph, Thank you for your reply.
1) I'm not running on machines with OpenFabrics. 2) In my example, ompi-ps prints a maximum 82 bytes per line. Even so, I augment to 300 bytes per line to be sure that it is not the problem. char mystring [300]; ... fgets (mystring , 300 , pFile); 2) When I run ps, it shows just two process: ps and bash. PID TTY TIME CMD 1961 pts/5 00:00:00 bash 2154 pts/5 00:00:00 ps But when I run ps -a -l, it appears my program(test.run) and other processes. I put below just the information related to my program. F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1000 1841 1840 0 80 0 - 18054 pipe_w pts/0 00:00:00 test.run 0 S 1000 1842 1840 0 80 0 - 18053 poll_s pts/0 00:00:00 test.run 0 S 1000 1843 1840 0 80 0 - 18053 poll_s pts/0 00:00:00 test.run 0 S 1000 1844 1840 0 80 0 - 18053 poll_s pts/0 00:00:00 test.run pipe_s = wait state on read/write against a pipe. So, with that command I concluded that one mpi process is waiting for the read of a pipe. The problem still persists. Thanks, Matheus. On Wed, Sep 22, 2010 at 11:24 AM, Ralph Castain <r...@open-mpi.org> wrote: > Printouts of less than 100 bytes would be unusual...but possible > > > On Wed, Sep 22, 2010 at 8:15 AM, Jeff Squyres <jsquy...@cisco.com> wrote: > >> 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/ >> >> >> _______________________________________________ >> users mailing list >> us...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/users >> > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users > -- ----------------------------------------------------------------- "In moments of crisis, only the inspiration is more important than knowledge." (Albert Einstein)