I think even specifying that "minimal" functionality won't
guarantee that users will be able to run their codes on
"Solaris, SGI, and Convex machines" even with after
the codes modification (obviously, the codes will have to
be manually modified: the APIs of the above mentioned
thread packages are incompatible). But where is the guarantee
that one code does not use functionality that is missing in the other
thread package? In fact, when you think about it a little longer,
you realize that POSIX is just a document that specifies "just enough" of
portable functionality of thread packages that you are talking about.
As you can now see, you are wrong saying that "the issue of
portability of a threads package is separate from the issue of
portability of MPI". On the contrary, if one does not say anything
specific about expected threads functionality, there is no way to
make sure that the multi-threaded MPI programs can even
theoretically be ported to different platforms - the targets may
just miss required functionality.
Thanks, Boris.
====================================================
From: Rajeev Thakur[SMTP:thakur@mcs.anl.gov]
Sent: Monday, March 17, 1997 5:26 PM
To: mpi-external@mcs.anl.gov
Subject: Re: MPI and Threads
The issue of portability of a threads package is separate from the
issue of portability of MPI. I think MPI should specify only the
minimal functionality expected from a threads package that can be used
with MPI. This "required" threads functionality should be as minimal
as possible, so that one can use it with different threads
implementations.
For example, if a user has access to an implementation of the Solaris
threads interface for say SGI and Convex machines, then the user
should be able to run programs with Solaris threads and MPI on
Sun, SGI, and Convex systems. And MPI should not preclude such uses!
Rajeev