On Fri, Apr 4, 2008 at 4:30 PM, Lars Andersson <lars...@gmail.com> wrote:
> Hi,
>
>  I'm just in the progress of moving our application from LAM/MPI to
>  OpenMPI, mainly because OpenMPI makes it easier for a user to run
>  multiple jobs(MPI universa) simultaneously. This is useful if a user
>  wants to run smaller experiments without disturbing a large experiment
>  running in the background). I've been evaluation the performance using
>  a simple test, running on a hetrogenous cluster of 2 x dual core
>  Opteron machines, a couple of dual core P4 Xeon machines and a 8 core
>  Core2 machine. The main structure of the application is a master rank
>  distributing jobs packages to the rest of the ranks and collecting the
>  results. We don't use any fancy MPI features but rather see it as an
>  efficient low-level tool for broadcasting and transferring data.
>
>  When a single user runs a job (fully subscribed nodes, but not
>  oversubscribed, i.e one process per cpu-core) on an otherwise unloaded
>  cluster both LAM/MPI and OpenMPI average runtimes of about 1m33s
>  (OpenMPI has a slightly lower average).
>
>  When I start the same job simultaneously as two different users (thus
>  oversubscribing the nodes 2x) under LAM/MPI, the two jobs finish as an
>  average time of about 3m, thus scaling very well (we use the -ssi rpi
>  sysv option to mpirun under LAM/MPI to avoid busy waiting).
>
>  When running the same second experiment under OpenMPI, the average
>  runtime jumps up to about 3m30s, with runs occasionally taking more
>  than 4 minutes to complete. I do use the "--mca mpi_yield_when_idle 1"
>  option to mpirun, but it doesn't seem to make any difference. I've
>  also tried setting the environment variable
>  OMPI_MCA_mpi_yield_when_idle=1, but still no change. ompi_info says:
>
>  ompi_info --param all all | grep yield
>                  MCA mpi: parameter "mpi_yield_when_idle" (current value: "1")
>
>  The cluster is used for various tasks, running MPI applications as
>  well as non-MPI applications, so we would like to avoid spending too
>  much cycles on busy-waiting. Any ideas on how to tweak OpenMPI to get
>  better performance and more cooperative behavior in this case would be
>  greatly appreciated.
>
>  Cheers,
>
>  Lars

No ideas? Such a large performance regression compared to LAM/MPI
seems quite serious to me. Or do you consider the case of
over-subscription not worth optimizing for? Or did I get something
totally wrong?

/Lars

Reply via email to