Newsgroups: comp.parallel.mpi
From: mckenney@gauss.cims.nyu.edu (Alan M. McKenney)
Reply-To: mckenney@cims.nyu.edu
Subject: active messages/global memory in MPI(-2?)
Keywords: active messages, global memory, libraries
Organization: Courant Institute, New York University
Date: 21 Jun 1995 12:32:53 -0400
Message-ID: <3s9hjl$8ou@gauss.cims.nyu.edu>

    I am working on parallelizing a program whose data transfers
are most naturally described by a global (shared) memory model.
However, I will be doing this on distributed-memory machines.

    I would like to use MPI (should I be using PVM?), since the
alternative seems to be to re-port the code to every new
parallel machine that comes along.

    The (to me) obvious way to handle the data transmission
in the code would be to use remote store, remote add-to-memory,
and/or remote fetch operations.

    However, both MPI and PVM appear to be single-threaded.
That is, the only way I can see to handle requests from another
processor is for each processor to constantly poll the message
queue to see if a request has arrived.  This means littering
the code with calls to the message-polling subroutine, and
trying to space the calls to be not too far apart (in time)
and not too close, either.

    In a word: yuck!

    When handling a similar problem on the Intel Paragon,
I have used the HRECV call to, in effect, spawn a second
thread, which just waits for messages (the "message handler"
routine calls HRECV just before it quits.)  However, it's
crude, it doesn't seem to be what HRECV is intended for
(having a subroutine-argument to HRECV call HRECV with
itself could pose problems, if HRECV tries to save the
stack context and then restore the context before the
subroutine-argument is called), and is definitely *not* portable.

    I noticed, in some of the discussion of MPI-2, mention
of "active messages", which I assume would more or less do what
I want.

    So, my question(s):

(1) What, exactly, is the status of the plans to include "active
    messages" in MPI-2?  And what sort of "active messages" are
    being considered?

(2) Are there any facilities, present or planned, in MPI to facilitate
    remote stores, etc.?

(3) Are there any portable subroutine libraries that facilitate
    remote stores, etc.?



Alan McKenney        E-mail:  mckenney@cims.nyu.edu         (INTERNET)
Courant Institute,NYU,USA     ...!cmcl2!cims.nyu.edu!mckenney   (UUCP)
-- 
Alan McKenney        E-mail:  mckenney@cims.nyu.edu         (INTERNET)
Courant Institute,NYU,USA     ...!cmcl2!cims.nyu.edu!mckenney   (UUCP)

