Subject: Mixed F77/C, MIMD(not SPMD)

From: L J Clarke <[email-masked]>
Date: Mon, 15 Feb 93 12:54:01 GMT

Dear MPI Colleagues

I'd like to raise a couple of points which I hope we can discuss at the
meeting later this week, after lenghty discussions with a variety of
local users. 

In general the objectives of the MPI Forum are very well received.  Two
specific concerns, of a very general nature, became apparent. 

a) The introduction says that MPI is for programmers who wish to write
portable programs in C and/or Fortran77.  The choice of languages is
fine, although some may wish to use C++ and Fortran90.  The concern is
whether MPI intends to allow, and if so in what manner, mixed language
programming, i.e.  programs written in a mixture of C and Fortran77. 

The observation is that C is most useful for library programming,
whereas a large number of applications that we deal with are written in
Fortran77.  (Users did not expect MPI say anything about cross-calling
and such murky business, that is outwith message passing.)

I propose that the make a statement of intent, possibly in the
introduction, that mixed languages will be allowed/supported (I would
hope that we could not make the decision to not allow/support mixture of
C and F77 :-). This seems an easy thing to do.

b) The working introduction of November 24 states that MPI includes
(temporarily?) 

    \item  A simple way to create processes for the SPMD model

This kinda carries the implication that MPI is for programming in the
SPMD model. 

The January minutes state that

    It was agreed that explicit remarks that MPI is intended to be
    usable with multithreaded proesses and with MIMD (not just SPMD)
    programs should be added somewhere.

We at EPCC most strongly support the proposal that MPI should provide
for MIMD programs and not restrict itself to the world of SPMD
programming.  The SPMD model has been useful, and can be expected to
remain useful, for tweaking serial (usually Fortran77) programs in a
strictly data parallel fashion to derive a parallel program.  However,
this is not a string enough argument for restricting MPI to SPMD.  There
are a lot of applications out there which are not really suited to such
simple tweaking.  Further, we believe that MPI needs to provide support
for library writers, where libraries can consist of a procedure library
linked into user processes along with one or more library service
processes. 

The concern felt by users and gurus alike is that our perception of much
of the discussion in subcommittees is that it seems to be proceeding
with scant consideration of issues in MIMD programming as opposed to
SPMD programming.

I suggest that this should be prioritised within the MPI.  I am happy to
write a proposal or discussion document on these issues, but I have no
time to write either before the next meeting as my travel schedule
starts at 6am tomorrow.  So, I'm afraid this point was simply raising a
flag that there is concern, without a proposal on the matter, for which
I apologise. 

Looking forward to meeting and discussing at the meeting later this
week!

Best Wishes
Lyndon

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

---

From: [email-masked] (William Gropp)
Date: Mon, 15 Feb 93 09:19:31 CST

X-Resent-To: [email-masked] ; Mon, 15 Feb 1993 07:54:12 EST
   Date: Mon, 15 Feb 93 12:54:01 GMT
   From: L J Clarke <[email-masked]>
   Reply-To: [email-masked]

Again, a few clarifications:

My interpretation (and in fact, the reason that Rusty and I included such a
method in our implementation of the November draft) is that there needs to be
some way to write, entirely in MPI, a running program, and there is a chance
that we could agree on a method for running SPMD programs.  It was definately
NOT meant to exclude other models; just a position that MPI needs to include
some way to write a complete (at the source code level; we do not intend to
specify the OS interface to "launching" the program) parallel program for a
common and simple model.  I'd be quite happy adding text that indicates that
MPI is intended for MIMD models as well.  I would be very interested in seeing
a proposal for an interface for MIMD programs.

Bill