[mpich-discuss] load balacing procedure in mpd process manager in a multicore

Nicolas Rosner nrosner at gmail.com
Tue May 17 18:03:25 CDT 2011


Hi Monica,

> 2 processes. One process does nothing and the other
> has the same code as the sequential program.

Are you initializing MPI at all, or do you mean "the same" literally?


> Both programs produce the same results, but the execution runtime
> of the sequential one (using one core) is bigger than the execution
> runtime of the mpi program (using 2 cores)

Agreed, it should not be possible to obtain any "magic" speed-up
merely by making one rank do same as the seq version and the other
rank do nothing at all. If anything, the mock-parallel version should
be slightly slower (although I'd expect similar timings since MPI
overhead w/just 2 local ranks should be negligible).


> How can I explain this?

Could you please define "bigger" and "execution runtime" a bit more
specifically? How much bigger? Are you measuring wallclock or CPU
time?

Are you using the same compiler with same set of options (e.g.
optimization level) when building both progams? That could explain it,
perhaps, esp. if your program is CPU-bound.

What happens if you run your seq program (the same binary) via mpiexec?


> Does the mpd process manager ...

This is probably unrelated, but if at all possible, try to use Hydra
instead of MPD,
http://wiki.mcs.anl.gov/mpich2/index.php/Using_the_Hydra_Process_Manager


> ... execute a load balancing procedure that is not the same as the linux kernel?

I'm tempted to say "no", but I'm not sure what you mean by load balancing here.

CPU scheduling? That is still handled by the kernel. Process-core
binding? There are some options, but it doesn't sound to me like any
would explain the above. I'd need more info to guess, though.


Good luck,
Nicolás


More information about the mpich-discuss mailing list