Open MPI currently has minimal use of hidden "progress" threads, but we will likely be experimenting with more usage of them over time (previous MPI implementations have shown that progress threads can be a big performance win for large messages, although they do tend to add a bit of latency).

To answer your direct question, when you ask Open MPI for N processes (E.g., "mpirun -np <n> a.out"), you'll get N unix processes. Open MPI will not create N threads (or split threads across nodes without oversubscription such that you get a total of N ranks in MPI_COMM_WORLD).

Previous MPI implementations have tried this kind of scheme (launching threads as MPI processes), but (IMHO) it violated the Law of Least Astonishment (see http://www.canonical.org/~kragen/tao-of- programming.html) in that the user's MPI application was then subject to the constraints of multi-threaded programming.

So most (all?) modern MPI implementations that I am aware of deal with operating system processes as individual MPI_COMM_WORLD ranks (as opposed to threads).



On Mar 21, 2007, at 5:29 PM, David Burns wrote:

I have used POSIX threading and Open MPI without problems on our Opteron
2216 Cluster (4 cores per node). Moving to core-level parallelization
with multi threading resulted in significant performance gains.

Sam Adams wrote:
I have been looking, but I haven't really found a good answer about
system level threading.  We are about to get a new cluster of
dual-processor quad-core nodes or 8 cores per node.  Traditionally I
would just tell MPI to launch two processes per dual processor single
core node, but with eight cores on a node, having 8 processes seems
inefficient.



My question is this: does OpenMPI sense that there are multiple cores
on a node and use something like pthreads instead of creating new
processes automatically when I request 8 processes for a node, or
should I run a single process per node and use OpenMP or pthreads
explicitly to get better performance on a per node basis?


_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users


--
Jeff Squyres
Cisco Systems

Reply via email to