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
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to