Subject: Re: I'm going to be out

From: Tony Skjellum <[email-masked]>
Date: Sun, 18 Jul 93 14:34:36 CDT

Jim & Ian,

Thanks for your responses.  I am trying to figure out how to deal with
the creation of communicators and contexts in a way that is "thread safe."
I will respond specifically to your two mails as soon as I can.  For now...

In general, I may have raised a false problem (by expecting MPI calls
to be able to do everything needed without "godlike" internal powers).
I wanted to describe that the following two calls have specific
correctness properties; that is,

	mpi_contexts_alloc(),
	mpi_comm_make()

should be usable by any group, though that group does not have any 
safe communication context initially.  I supposed (naively) that a
statically allocated context for each of these libraries (with global
scope) would be sufficient to allow an explanation of how MPI implements
them.  However, as Jim points out, this is WRONG.  MPI needs some magic
to make these work, which is
	i) thread safe
	ii) disambiguates the call made with different group entries
ii) occurs in the multithreaded environment only.  In the single-threaded
environment, the overlapping processes will define the order.

Ian asks about "contexts allocated on a per process basis."  I have no
idea what this means.  :-)

Know that I am personally in favor of having threads, I am just trying
to reveal to everyone the complexity that is being incorporated by
supporting the multiple threads, and that we agree specifically on what
that complexity shall be.  Otherwise, I keep missing the mark with the
semantics of the context chapter :-)

Calmly,
Tony