Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Optimal 3-D Cartesian processor mapping
From: Jeffrey Squyres (jsquyres_at_[hidden])
Date: 2012-04-24 16:19:40


On Apr 24, 2012, at 3:33 PM, Tom Rosmond wrote:

> Yes, I would be interested in such a plugin. But be advised that I am
> strictly a fortran programmer, so if it requires any C/C++ talent, I
> would be in trouble. So maybe, before jumping into that, I would like
> to be able to look at what processor/node mapping Open-mpi is actually
> giving me.

Cool. Yes, there is some C stuff you would need to know. Basically, our components must adhere to a C API. That being said, if you really wanted to, your algorithm could be written in Fortran below that. :-)

Supplying you with a skeleton topo component with a /* Fill in your algorithm here */ section probably would not be too difficult.

One caveat here, though: the topo plugins have the following interface for v1.5/v1.6:

    https://svn.open-mpi.org/trac/ompi/browser/branches/v1.6/ompi/mca/topo/topo.h

But they're going to change for v1.7/v1.8 to this (this hasn't been merged to our SVN trunk yet, but it will be):

    https://bitbucket.org/jsquyres/ompi-topo-fixes/src/tip/ompi/mca/topo/topo.h

The differences are minor, but non-zero.

> Is there an environmental variable or an MCA option I can
> add to my 'mpirun' command line that would give that to me? I am
> running 1.5.4.

Ralph pointed you to the --display-map mpirun option there.

Note that there's two levels of things going on here:

1. How OMPI's mpirun lays out your processes
2. How MPI_CART_CREATE re-arranges the ranks in the newly-created communicator

The topo component that I'm talking about is only involved in #2.

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/