[MPICH2-dev] MPID_PG_ForwardPGInfo
William Gropp
gropp at mcs.anl.gov
Thu Dec 22 09:04:23 CST 2005
At 06:59 PM 12/21/2005, Charles J Archer wrote:
>Hello
>
>I've recently imported a new release of mpich (1.0.3), and I noticed that
>the ch3 device defines a new function:
>int MPID_PG_ForwardPGInfo( MPID_Comm *peer_ptr, MPID_Comm *comm_ptr,
> int nPGids, int gpids[],
> int root )
>
>This function is used by the intercomm_create function.
>This seems to fill out new records in the VC record fields.
>
>On BG/L, we keep our VC records intentionally very small so that we scale
>to thousands of nodes.
>I would like to avoid adding the extra structures required to implement
>this function on BG/L.
>
>Essentially, what this amounts to is that changes to the CH3 device are
>forcing changes to the MPI functions, breaking the ADI abstraction.
>Consequently, all other devices have to implement any new function that
>has been added to CH3.
>
>To work around this, I simply defined the function with an empty
>implementation. I'm not sure if this is sufficient (it appears to pass
>the icXXX) tests on BG/L.
>Please advise on how I should handle this in the BG/L device.
Charles,
Sorry about this. This was a quick fix to handle problems in correctly
managing dynamic processes and in fact there are new tests in the
test/mpi/spawn that require something like this to pass. We will need an
additional ADI function for this case, but only when the dynamic process
routines are supported. Also, as you note, we shouldn't make the VC
structures visible (and in fact, some of these new routines were intended
to reduce rather than increase the use of VC internals). We need to fix
both of these problems.
I'd like to get the interface for this right for the next release. That
might mean moving more of the intercomm support, at least optionally, into
the device, in order to handle the general case. One possibility is to
special case the situation where dynamic processes are not supported; this
can be essentially the same as the pre 1.0.3 version. Another is to wrap
up the operations needed for intecomm create in the general case and allow
the device to provide those functions; this would allow the device complete
freedom to handle the scalability issue without dictating a particular
approach or data structure. Another issue to consider is optimizing for
the single MPI_COMM_WORLD case but provide hooks that allow the
implementation to handle the more general case as required. I'm interested
in your thoughts on what is appropriate for both BG/L and
BG/<fill-in-the-blank> :) .
I'm sending this out now to give us all some time to mull it over; Argonne
closes today and I'm already on vacation. We're back January 3rd.
Bill
>Thanks!
>
>-C
>
>Charles J Archer
>eServer Consolidation Development
>BlueGene/L MPI
>eServer Development
>Dept G9D, Bldg 030-2, IBM Rochester MN 55901
>archerc at us.ibm.com (507) 253-0346 TL 8-553-0346 Fax (507) 253-2870
William Gropp
http://www.mcs.anl.gov/~gropp
More information about the mpich2-dev
mailing list