Subject: more multithreaded nonquiescence

From: L J Clarke <[email-masked]>
Date: Tue, 20 Jul 93 17:36:18 BST

Hi y'all

On a little thought, it seems that the MPI definition required by my
previous email message is fairly simple. 

Regarding quiescence:

"MPI collective operations may contain internal communications.  Such
communications are isolated from those of the user.  They cannot
interfere with user communications and they cannot be interfered with by
user communications."

Regarding threads:

"It is erroneous to invoke MPI collective operations within the same
CONTEXT simultaneously in two or more threads of the same process."

Since I am advocating that a CONTEXT be a pair of contexts (case
significant) then we can IMAGINE an implementation internal macro
something like "__MPI_PRIVATE_COMM(user_comm)" which evaluates to the
private communicator associated with the given user communicator.  The
MPI collective operations routines are then implemented in terms of
point-to-point routines, using the expression
"__MPI_PRIVATE_COMM(user_comm)" instead of simply "user_comm" Notice
that this can evaluate to an invalid communicator for communicators
which are used for inter-group communications and therefore are not
valid for MPI collective oeprations. 

Of course, these comments are intended exclusively in the context of
"implementor notes", not part of the MPI standard definition. 

Hope this helps!

Best Wishes
Lyndon

         /--------------------------------------------------------\
    e||) | Lyndon J Clarke    Edinburgh Parallel Computing Centre | e||) 
    c||c | Tel: 031 650 5021  Email: [email-masked]  | c||c 
         \--------------------------------------------------------/