mpi

MPI: cores or processors?


Hi I am kind of MPI noob so please bear with me on this one. :)

Say I have an MPI program called foo.c and I run the executable with

mpirun -np 3 ./foo

Now this means the program will be run in parallel using 3 processors (1 process per processor). But since most processors today have more than one core, (take 2 cores per processor say) does this mean the program will be run on 3 cores or 3 processors?

Probably this has to do with my poor understanding of what the difference between a core and a processor really is so if you could also explain a little more that would be helpful.

Thank you.


Solution

  • mpirun will execute a number of "processes" on the machine. The cpu or core where these processes are executed is operating-system dependent. On a N cpu machines with M cores on each cpu, you have room for N*M processes running at full speed.

    But, typically:

    (Depending of the mpi implementation, there might be some options to force a specific cpu or core, but you should not need to worry about that).