[Mpi3-hybridpm] Endpoints Proposal
balaji at mcs.anl.gov
Tue Mar 19 23:13:36 CDT 2013
On 03/19/2013 05:23 PM US Central Time, Sur, Sayantan wrote:
> What I am trying to find out is what problem is the endpoint approach
> trying to solve? It has major implications on the standard as it
> touches many chapters.
> Just as an example: Suppose there is an MPI+OpenMP app that runs on
> 16 cores with 1 MPI rank and 16 threads. On certain platform you find
> out if there are two endpoints you get better network utilization. In
> this case, can you not just run 2 MPI ranks with 8 threads each? How
> is this not achieve the same effect as your endpoint proposal?
I think you are going in the wrong direction here. The motivation is
not to have multiple threads to drive the network. You are right; this
can also be done with processes (probably not as effectively, but that's
besides the point).
There are several motivations for endpoints. One of them is to share
resources between "MPI ranks". The MPI implementation can already do
this for memory resources (through MPI-3 shared memory or through
internal shared memory). However, endpoints provides a more flexible
model for sharing even more resources (such as TLB space).
Another motivation (probably a bigger one) is to interact with models
that use threads internally. The UPC example was shown in the Forum.
For a UPC implementation that uses threads internally (or a hybrid of
processes and threads), currently there's no way for those applications
to use MPI, since they cannot portably know whether UPC is using
processes or threads internally. The example we showed demonstrates how
the UPC implementation can allow applications to work correctly.
More information about the mpiwg-hybridpm