Newsgroups: comp.parallel.mpi
From: colella@nimue.plk.af.mil (Shari Colella)
Subject: MPI Topology functions
Organization: NUMEREX, Phillips Lab, Kirtland
Date: 23 Aug 1995 21:30:17 GMT
Message-ID: <41g6l9$4d7@fg1.plk.af.mil>


I have a block decomposition MHD simulation code that I have parallelized using
MPI, (with MPICH), and am now trying to fine tune it.  The Topology functions 
seem helpful, but I'm not sure.  

Scenario:

Running in a pool of of 128 nodes on the SP2, I want 72 of them.  MPI_Init is
called and gets 72 nodes.  The input deck is read and each processor now knows
which block(s) belong to it.  I will use a graph topology instead of cartesian
since I allow for more than one block per processor and have arbitrary geometries.
I call MPI_Graph_create with the appropriate arguments, etc, and MPICH currently 
reorders whether it's told to or not.  (Not a problem)


Question(s):

No problem getting the information back out and getting blocks reassigned again.
But, I haven't in reality created a sub-graph, I've only tried to restructure the one
that I have.  MPI is not going to go back to the original pool of 128 nodes and
pick the "best" neighbors, it's going to work with the 72 nodes that it already
has, correct?  So the real question is:  Is it worth the trouble?  I'm already
using dedicated nodes with the high-speed switch and user space.  I will never
again create another graph, nor will I ever use the topo functions again once I've
gotten the blocks reassigned.  Is this not the intended use for the topology functions
of MPI, and so won't do what I want it to do?  And if it does what I want, will I have
increased speed-up and efficiency, or just total run time?  What about on a parallel
machine other than the SP2?  Workstations?  



Any educated opinions or restructuring of my logic are heartily welcome.  Please
post or email to colella@nimue.plk.af.mil

Shari


