Open MPI basically runs its message passing progression engine in two modes: aggressive and degraded.
- Degraded: When Open MPI thinks that it is in an oversubscribed mode (i.e., more processes are running than there are processors available), MPI processes will automatically run in degraded mode and frequently yield the processor to its peers, thereby allowing all processes to make progress.
- Aggressive: When Open MPI thinks that it is in an exactly- or under-subscribed mode (i.e., the number of running processes is equal to or less than the number of available processors), MPI processes will automatically run in aggressive mode, meaning that they will never voluntarily give up the processor to other processes. With some network transports, this means that Open MPI will spin in tight loops attempting to make message passing progress, effectively causing other processes to not get any CPU cycles (and therefore never make any progress).
$ cat my-hostfile localhost slots=1 $ mpirun -np 4 --hostfile my-hostfile a.outExample of Aggressive Modes (Running 4 slots on 4 or more Physical Cores). MPI knows that there is at least 4 slots for the 4 MPI process.
$ cat my-hostfile localhost slots=4 $ mpirun -np 4 --hostfile my-hostfile a.out
No comments:
Post a Comment