On May 12, 2010, at 1:01 PM, Fernando Lemos wrote: > On Wed, May 12, 2010 at 2:51 PM, Jeff Squyres <jsquy...@cisco.com> wrote: >> On May 12, 2010, at 1:48 PM, Hanjun Kim wrote: >> >>> I am working on parallelizing my sequential program using OpenMPI. >>> Although I got performance speedup using many threads, there was >>> slowdown on a small number of threads like 4 threads. >>> I found that it is because getc worked much slower than sequential >>> version. Does OpenMPI override or wrap getc function? >> >> No. > > Please correct me if I'm wrong, but I believe OpenMPI sends > stdin/stdout from the other ranks back to rank 0 so that the output is > displayed as the stdin of mpirun and the other way around with > stdout/stderr. Otherwise it wouldn't be possible to even see the > output from the other ranks. I guess that could make things slower. > > MPICH-2 had a command line option that told mpiexec who would receive > stdin (all processes or only some of them) so that you could do things > like mpiexec <bigfile and not worry (too much) about the overhead of > distributing the contents of bigfile across the network.
FWIW: OMPI has the same capability via cmd line args as shown by "mpirun -h" -stdin|--stdin <arg0> Specify procs to receive stdin [rank, all, none] (default: 0, indicating rank 0) > > Regards, > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users