tags:

views:

33

answers:

1

I am starting programming on an OpenMPI managed cluster. I use the following command to run my executable:

mpirun -np 32 file

Now what I understand is that 32 specifies the number of processes that should be created. They may be created on the same processor. Am I right?

I am noticing increasing time for execution with increase in the number of processes. Could the above be a reason for this?

How do I find out the execution and scheduling policy of the cluster?

Is it correct to assume that typically the cluster I am working on will have many processes running on each node just as they run on my PC.

+1  A: 

I would expect your job management system (which is ?) to allocate 1 MPI process per core. But that is a configuration matter and your cluster may not be configured as I expect. Can you see what processes are running on the various cores of your cluster at run time ?

There are many explanations for increasing execution time with increasing numbers of processes, several good ones which include the possibility of one-process-per-core. But multiple processes per core is a potential explanation.

You find out about the policies of your cluster by asking the cluster administrator.

No, I think it is atypical for cluster processors (or cores) to execute multiple MPI processes simultaneously.

High Performance Mark
I'll just add that if you are running that job interactively on some development node, then the processes are probably running all on one node (so if it's got 8 cores, you're running 4 procs per core). If on the other hand you are executing that line as part of a job submission script, then as Mark says above, absent some configuration issues or misunderstandings, you're probably running one proc per core.
Jonathan Dursi