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.