Hi Pradeep,

On Jan 28, 2013, at 11:16 PM, Pradeep Jha <pradeep.kumar.jha@gmail.com> wrote:
I have a very basic question about MPI. 

I have a computer with 8 processors (each with 8 cores).  What is the difference between if I run a program simply by "./program" and "mpirun -np 8 /path/to/program" ? In the first case does the program just use one processor out of the 8? If I want the program to use all the 8 processors at the same time, then I have to do with mpirun? 

If you run the application as  "./program", it will most likely use only one core on one processor, i.e. 1/64 of your machine, if the latter really has eight CPUs with 8 cores each, as you write.  I have not heard of such machines, but you may be right.. There is an exception, namely if your program uses multi-threading (OpenMP etc.), then it could use more than one core even if you start it without mpirun.

However, if you do start it with mpirun, a number "np" of processes is launched on different cores. Provided your node really has 8 physical CPUs with 8 cores each and you want your program to utilize all your 64 cores, you should start it with -np 64.

Jens