I have a MPI/Pthread program in which each MPI process will be running on a separate computing node. Within each MPI process, certain number of Pthreads (1-8) are launched. However, no matter how many Pthreads are launched within a MPI process, the overall performance is pretty much the same. I suspect all the Pthreads are running on the same CPU core. How can I assign threads to different CPU cores?
Each computing node has 8 cores.(two Quad core Nehalem processors) Open MPI 1.4 Linux x86_64
mpirun
/mpiexec
)? The default binding options for your system might bind each MPI process to a single core, in which case all threads started by that process will also be bound. See [OpenMPI FAQ on binding options](It sounds like you might be running on a cluster - what arguments are you passing tompirun
/mpiexec
?). – Josh Milthorpe