From owner-mpi-comm@CS.UTK.EDU Mon Nov 23 16:08:35 1992
Return-Path: <owner-mpi-comm>
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA26326; Mon, 23 Nov 92 15:50:10 -0500
Received: from THUD.CS.UTK.EDU by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA26317; Mon, 23 Nov 92 15:50:05 -0500
From: Jack Dongarra <dongarra@cs.utk.edu>
Received:  by thud.cs.utk.edu (5.61++/2.7c-UTK)
	id AA06935; Mon, 23 Nov 92 15:50:04 -0500
Date: Mon, 23 Nov 92 15:50:04 -0500
Message-Id: <9211232050.AA06935@thud.cs.utk.edu>
To: mpi-comm@cs.utk.edu
Subject: mpi committees and mailing list
Status: R


The following mailing lists have been set up.

   mpi-comm@cs.utk.edu          Whole committee
   mpi-intro@cs.utk.edu         Introduction subcommittee
   mpi-pt2pt@cs.utk.edu         Point-to-point communication subcommittee
   mpi-collcomm@cs.utk.edu      Collective communication subcommittee
   mpi-ptop@cs.utk.edu          Process topology subcommittee
   mpi-lang@cs.utk.edu          Language binding subcommittee
   mpi-formal@cs.utk.edu        Formal language description subcommittee
   mpi-envir@cs.utk.edu         Environment inquiry subcommittee

All mail will be collected and can be retrieved by sending email to
netlib@ornl.gov and in the mail message typing:
send mpi-comm from mpi
send mpi-intro from mpi
etc.
Also try:
send index from mpi

I'm in the process of collecting information on how the HPF committee
operates and will pass along the details in the next few days.
I would like to suggest January 6 - 8 for the next meeting
in Dallas at the airport hotel. We should plan on starting around 1:00 on
January 6th and finishing around 3:00 on January 8th.

Below is a list of the subcommittees as I have them from our meeting
last week. Please let me know if you have any changes.

Regards,
Jack

Introduction Subcommittee
----------------------
Jack Dongarra - Chair 	dongarra@cs.utk.edu
Daniel Frye 		danielf@kgnvma.vnet.ibm.com
Tony Hey  		ajgh@ecs.soton.ac.uk
Rusty Lusk 		lusk@mcs.anl.gov
Steve Zenith 		zenith@kai.com


Point-To-Point Communication Subcommittee
-----------------------------------------
Marc Snir - Chair 	snir@watson.ibm.com
Scott Berryman 		berryman@cs.yale.edu
Jack Dongarra 		dongarra@cs.utk.edu
Al Geist 		geist@msr.epm.ornl.gov
Adam Greenberg 		moose@think.com
Bill Gropp 		gropp@mcs.anl.gov
Leslie Hart 		hart@fsl.noaa.gov
Rolf Hempel 		hempel@gmd.de
Tom Henderson 		hender@fsl.noaa.gov
Bob Knighten 		knighten@ssd.intel.com
Oliver McBryan          mcbryan@piper.cs.colorado.edu
Peter Rigsbee 		par@cray.com
David Walker 		walker@msr.epm.ornl.gov



Collective Communication Subcommittee
-------------------------------------
Al Geist - Chair 	geist@msr.epm.ornl.gov
Leslie Hart 		hart@fsl.noaa.gov
Jon Flowers 		jwf@parasoft.com
Adam Greenberg 		moose@think.com
Bob Knighten 		knighten@ssd.intel.com
Steve Otto 		otto@cse.ogi.edu
Peter Rigsbee 		par@cray.com
Marc Snir 		snir@watson.ibm.com
David Walker 		walker@msr.epm.ornl.gov


Process Topology Subcommittee
-----------------------------
Rolf Hempel - Chair 	hempel@gmd.de
Jon Flowers 		jwf@parasoft.com
Tom Henderson 		hender@fsl.noaa.gov
Oliver McBryan		mcbryan@piper.cs.colorado.edu
Steve Otto 		otto@cse.ogi.edu
Lew Tucker 		tucker@think.com


Language Binding Subcommittee
-----------------------------
Scott Berryman - Chair 	berryman@cs.yale.edu
Bruce Leisure 		bleasure@kai.com


Formal Language Description Subcommittee
----------------------------------------
Steve Zenith - Chair	zenith@kai.com 
Tony Hey 		ajgh@cs.ston.ac.uk
Rusty Lusk 		lusk@mcs.anl.gov


Environment Inquiry Subcommittee
---------------------------------
Bill Gropp - Chair 	gropp@mcs.anl.gov
Daniel Frye 		danielf@kgnvma.vnet.ibm.com


From owner-mpi-comm@CS.UTK.EDU  Tue Nov 24 15:37:43 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA02830; Tue, 24 Nov 92 15:37:43 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA19627; Tue, 24 Nov 92 15:12:24 -0500
Received: from antares.mcs.anl.gov by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA19622; Tue, 24 Nov 92 15:12:21 -0500
Received: from godzilla.mcs.anl.gov by antares.mcs.anl.gov (4.1/SMI-GAR)
	id AA25860; Tue, 24 Nov 92 14:12:19 CST
From: gropp@antares.mcs.anl.gov (William Gropp)
Received: by godzilla.mcs.anl.gov (4.1/GeneV4)
	id AA11600; Tue, 24 Nov 92 14:12:17 CST
Date: Tue, 24 Nov 92 14:12:17 CST
Message-Id: <9211242012.AA11600@godzilla.mcs.anl.gov>
To: mpi-comm@cs.utk.edu
Subject: Test Implementation of the Draft Standard

We have completed a first and rough draft of a test implementation.  We
have included (and run!) three sample programs written in MPI on a sun
network and on an Intel ipsc/i860.  It is available by anonymous ftp from
info.mcs.anl.gov in pub/mpi .  The README file there gives more information,
including how to get, install, and run the examples.

This is a rough draft; the file mpi.man.ps.Z contains a description of the
implementations architecture and man pages for all of the routines.
We will be updating this implementation with additional examples and
fewer restrictions soon.

Enjoy!
Bill Gropp and Rusty Lusk


From owner-mpi-comm@CS.UTK.EDU  Tue Nov 24 17:07:49 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA06915; Tue, 24 Nov 92 17:07:49 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA21596; Tue, 24 Nov 92 16:45:52 -0500
Received: from THUD.CS.UTK.EDU by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA21572; Tue, 24 Nov 92 16:45:38 -0500
From: Jack Dongarra <dongarra@cs.utk.edu>
Received:  by thud.cs.utk.edu (5.61++/2.7c-UTK)
	id AA21258; Tue, 24 Nov 92 16:45:35 -0500
Date: Tue, 24 Nov 92 16:45:35 -0500
Message-Id: <9211242145.AA21258@thud.cs.utk.edu>
To: mpi-comm@cs.utk.edu
Subject: working procedures


Chuck Koelbel has passed on some notes from the HPF experence.
I think we will find them useful in carring out our meetings.
Jack


HPFF Working Procedures

HPFF never had an explicit vote on adopting any operating procedures.  We 
did, however, informally adopt the following rules.


General Organization

Most of the technical details were hammered out in subgroups, which made 
the base proposals. The main group would discuss these proposals and 
(usually) adopt them. In practice, lots of the technical discussions were 
done on email lists. Keeping those lists public was a big part of the 
openness of the forum.

For a while, each subgroup brought its own proposal as handouts. 
Eventually, we ended up with a unified draft thanks to Dave Loveman. The 
intent (which we never lived up to) was that all proposals discussed at a 
meeting would be in that draft. Despite always having a loose proposal or 
two, the draft was extremely useful - among other things, it made editing a 
final report possible. 


Main Group / Plenary Session Matters

For running discussions, we used loosely-enforced Robert's Rules of 
Order.  Basically, we didn't stand on formalities unless the discussion 
was becoming unruly.  Some of the more often-invoked rules:
	1. Moving and voting on amendments before the main proposal.  Basically, 
	this kept the discussions focussed.
	2. Motions coming out of committee (subgroup) are automatically 
	seconded; others need a second from the floor.
	3. Triply-nested amendments are not allowed.  This keeps the confusion 
	down.
Generally, whoever was making the presentation ran the discussion, 
recognized comments from the floor, etc.  Ken usually came in after the 
meat of the discussion to run the votes.  Peer pressure was fairly 
effective at keeping people from filibustering (I think once there was a 
call to limit discussion).  More common was lots of people wanting to 
make comments - this was handled by the presenters, usually by saying "OK, 
let's go clockwise around the table".

Organizations were limited to 2 attendees each (not enforced, but no 
major problems). We passed around an attendence sheet at each meeting to 
keep track of who was there; because of various planning problems, I 
recommend using a pre-registration scheme ("send email to xxx@yyy if you 
plan to attend").  Organizations were asked to commit to having the same 
attendee at every meeting, and this was generally followed.  It's very 
important to have this kind of continuity in attendees, else we would 
have spent too much time in remedial education.

Each organization (school, company, lab) got one vote - note this was on an 
organization basis, not a person. We didn't have trouble with cheating on 
this rule - just make sure the representatives from an organization have 
agreed on who is voting. An organization was eligible to vote if it had 
attended 2 of the last 3 meetings, counting the current meeting (i.e. you 
could attend every other meeting and still vote; you could not vote at your 
first meeting). Obviously, we couldn't enforce this rule at the first 
two meetings. 

Accepting a section of the HPF language spec was a multi-step process.
	1. Someone wrote a draft specification; often there were a couple 
	drafts.  Details of these were hashed out in the subgroup.
	2. First Reading: The subgroup leader (or occasionally the draft author) 
	presented the subgroup-approved draft to the main group.  When there was 
	controversy, it was usually pointed out.  The main group discussed, 
	suggested changes (sometimes), and held a series of "straw votes" on the 
	proposal.  All attendees were eligible to vote in straw votes, which 
	were not binding on the subgroups.
	3. More subgroup discussion, both electronic and in person at the next 
	meeting, producing a revised proposal.
	4. Second Reading: The subgroup leader presented the revised proposal to 
	the main group.  Sections that were substantially the same as the 
	original (or an alternative presented at the first reading) were amended 
	by motion and eventually voted on.  Eligibility for votes was as 
	explained above.  Major additions (for example, when PURE functions were 
	added to FORALL between meetings) were treated as first readings at this 
	point.  Often most of the proposal was accepted, and a few sections were 
	sent back to subgroup for more work; these came back as second readings 
	at the next meeting.
	5. Once a section was accepted at second reading, it was "frozen" until 
	the end of the HPFF process.  Revisions were only allowed for clarity or 
	when new information surfaced (like discovering that the draft was 
	self-contradictory).  This limitation was enforced as strictly as we 
	could, to avoid backtracking.
	6. At the end of the process (December), we promised to allow 
	reconsideration of any feature.
See also the discussion of the Journal of Development below.


Subgroup Matters

Subgroups met independently of the main body, usually the afternoon and 
evening of the day before.  The leader of the subgroup ran these meetings 
using whatever style he or she was comfortable with.  Most of us took 
votes from whoever showed up, and ran a pseud-democratic style.  Also, 
there was a mailing list for each subgroup where most of the discussions 
went on.

Each subgroup was devoted to one topic from the following list:
	Data distribution
	FORALL and other parallel statements
	Fortran 90, storage & sequence association, and the HPF subset
	Intrinsic functions
	Parallel I/O
	EXTRINSIC (nee LOCAL, nee FOREIGN) functions
The groups met in parallel, which caused a little friction but was 
logstically unavoidable.  When a subject straddled two groups (like 
intrinsic functions for enquiring about distributions), the subgroup 
leaders would talk to each other and decide who would handle it - this 
often led to minor anti-turf battles (also known as "after you" 
deadlock).  Both groups would act as sanity checks on the results.

When it came time to write the draft, each subgroup became a chapter.  
The subgroup leader was the editor (and usually major author) of the 
chapter, and was responsible for making sure the chapter reflected the 
decisions made in the subgroup and in committee.  


Logistical Matters

Meetings were 2.5 days, starting Wednesday afternoon, in Dallas (there 
were exceptions to this for logistical reasons, but we would have 
prefered to keep them all on this schedule).  A typical schedule was

	Wednesday
	  1:30-6:00  Subgroup meetings, about 3 going on in parallel (reserve 4 
		"breakout" rooms with the hotel, fo 10-20 people each)
	  6:00-7:30  Unofficial dinner break (usually the subgroup leaders ate 
		together & planned the meeting agenda)
	  7:30-10:30 More subgroup meetings (subgroup leaders usually ended up 
		staying up late to revise drafts)
	
	Thursday
	  9:00-12:00 Full group meeting (coffee breaks at natural breaks)
	  12:00-1:30 Lunch (provided)
	  1:30-6:00  Full group meeting (and coffee breaks)
	  6:00-8:00  Dinner (attendees pay, but hotel provided transport to area 
		restaurant)
	  8:00-10:00 (Sometimes) Full group meeting (when no full meeting, 
		subgroups usually met instead)
	
	Friday
	  9:00-12:00 Full group meeting (and coffee breaks)
	  12:00-1:30 (Sometimes) Lunch (provided if we thought the meeting would 
		last long)
	  1:30-3:00  (Sometimes) Full group meeting

We tried to finish as early as possible on Friday, to allow people to 
catch flights.

Since we scheduled all the meetings early on, we set up a contract with 
the hotel.  I didn't handle the details, but I think this saved us a 
little money and a lot of aggravation (talk to Theresa Chatman if you 
need more info).  At any rate, this is a great thing for someone on your 
staff to set up.

We financed the meetings primarily from a per-meeting fee of $95 ($75 if 
we didn't have lunch the second day) per attendee.  Ken offered to foot 
the bill for academics to attend, based on the expectation of NSF funds.  
We're still waiting on those funds; highly recommend that you don't make 
such offers without first getting the cash.


Documentation

The Draft: The earlier you have one the better. David Loveman served as our 
general editor, collecting the chapters and trying to smooth format 
details. I contributed the introduction and credits, mainly cribbed from 
meeting notes and other announcements. Guy Steele contributed a set of 
macros for BNF syntax and reproducing code segments. We tried to find some 
formatting from an ANSI standard, but no dice. Toward the end of the 
process, version control became a problem. We (tried to) set up the 
following framework: 
	1. David had the "official" version of the draft.  He set deadlines for 
	receiving the chapters, and edited for formatting.
	2. David sent me the whole document when all the chapters were done.  
	I LaTeXed it to check for system dependences (never a problem)
	3. I sent the document to the "core" mail group (see below), put it out 
	for anonymous FTP, and announced it on the net.
	4. Any further changes were supposed to be made to David's edited 
	copy, not the original version (this to make the next round of edits 
	easier).
The system worked pretty well, until the final draft when the wrong 
version of Chapter 6 got distributed...

Each subgroup wrote one chapter, generally written and/or edited by the 
subgroup leader. While the meetings were going on, the draft contained all 
proposals still under consideration (Guy provided a "\alternative" macro 
that marked sections as being alternatives to each other). Also, the author 
of each section was identified in a footnote at the beginning of the 
section, along with the date (and occasionally other version information). 
In the current draft, we've moved summaries of some discarded proposals to 
the "Journal of Development" (primarily the ones dropped for lack of time). 
All proposals exist in the archives; we may put together a "rationale" 
document to explain some of the more controversial decisions. We're also 
planning to move the authorship information from footnotes to the credits 
chapter in the December draft. It's too early to know how this organization 
will work for the reader, but the modularity has helped in writing the 
document.

Other lessons from the draft:
	1. Make sure the chapter authors realize they are writing a draft 
	chapter, not a stand-alone document.
	2. Make sure the person in charge of the credits chapter has plenty of 
	time to work on it (I spent 50% of my time for a week appeasing various 
	corporate egos, wording things right, and checking spelling of names).
	3. Proofread the document before sending it out - both spell checking 
	and careful chapter reading.

Mailing lists: Every subgroup had its own mailing list.  Those lists are 
where most of the technical action happened; they were very high-volume 
(final total was something like 1.5Mb of archived messages).  On top of that, 
there was a list for everybody in the world interested in HPF, and another 
for the "core" group. The "everybody" list was used for the meeting minutes 
and a few miscellaneous announcements. The core group list was primarily 
for the meeting attendees, but a few others were also on it for political 
and/or practical reasons (for example, Gil Weigand and Theresa Chatman were 
both on the list); it got meeting details, and copies of the various 
proposals before the meetings. All lists were kept at cs.rice.edu (there 
were a couple smaller lists other places, including a European list at GMD 
and several local lists for particular campuses). People could add or 
delete themselves to/from any of the lists by mailing to another mail alias 
at Rice. Automating this was a huge win (although I got 2 or 3 requests 
sent directly to me every week).

FTP: We made everything we could available by anonymous FTP at Rice; 
eventually other sites picked up some of it as well. This included the 
various drafts of the language spec; any other handouts from the meetings; 
supporting (sometimes critical) commentary; papers on Fortran D, Vienna 
Fortran, ADAPT, and other systems; archived email traffic; and the minutes 
of the meetings. Generally, I put up a couple versions of any document 
(particularly text formatting stuff) - TeX or LaTeX, Postscript, and 
compressed versions of large files.  This was important, since I've found 
out some fascinating things about portability (or lack thereof) of 
different formats.  (Hints: keep all lines 80 characters or less; no 
fancy macros in TeX; at most one "." in a file name (filename.tex.Z 
doesn't translate well to IBM!); never include ANY pathname.)

Minutes: Extremely popular, but lots of work. I'm convinced that making 
them available was a key to HPFF's success. Make them as detailed as 
possible, particularly including counts of the votes taken, major topics 
discussed, and lists of people (humor helps occasionally, too). "Executive 
Summary" sections with the major issues at the front seemed to be popular. 
I also used the minutes to announce additions to the FTP archives.

Advertizing:
Announcements of major news (new drafts, etc.) went everywhere I could 
think of.  This includes the "world" mailing list; newsgroups 
comp.lang.fortran, comp.lang.misc, and comp.parallel; (indirectly) 
na-net, scinet, and hpcwire.  Meeting minutes went to the world and core 
mailing lists and the newsgroups.  I've been writing short "What is HPF" 
articles constantly, and I think the same is true of others.  Ken, Dave 
Loveman, Guy, and I have all given large numbers of talks on HPF; again, 
the same is probably true of others.  This includes invited talks at 
conferences and visits to various companies.



From chk@cs.rice.edu Mon Nov 23 15:45:48 1992
Return-Path: <chk@cs.rice.edu>
Received: from cs.rice.edu by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA26184; Mon, 23 Nov 92 15:45:39 -0500
Received: from DialupEudora (charon.rice.edu) by cs.rice.edu (AA22750); Mon, 23 Nov 92 14:44:21 CST
Message-Id: <9211232044.AA22750@cs.rice.edu>
Date: Mon, 23 Nov 1992 14:47:55 -0600
To: dongarra@cs.utk.edu
From: chk@cs.rice.edu
Subject: HPFF organization
X-Attachments: :Macintosh HD:4227:HPFF rules:
Status: RO

Here it is.  If anything is unclear, just ask me or (for logistical
details) Theresa Chatman (tlc@cs.rice.edu).

                                                Chuck

HPFF Working Procedures

HPFF never had an explicit vote on adopting any operating procedures.  We 
did, however, informally adopt the following rules.


General Organization

Most of the technical details were hammered out in subgroups, which made 
the base proposals. The main group would discuss these proposals and 
(usually) adopt them. In practice, lots of the technical discussions were 
done on email lists. Keeping those lists public was a big part of the 
openness of the forum.

For a while, each subgroup brought its own proposal as handouts. 
Eventually, we ended up with a unified draft thanks to Dave Loveman. The 
intent (which we never lived up to) was that all proposals discussed at a 
meeting would be in that draft. Despite always having a loose proposal or 
two, the draft was extremely useful - among other things, it made editing a 
final report possible. 


Main Group / Plenary Session Matters

For running discussions, we used loosely-enforced Robert's Rules of 
Order.  Basically, we didn't stand on formalities unless the discussion 
was becoming unruly.  Some of the more often-invoked rules:
	1. Moving and voting on amendments before the main proposal.  Basically, 
	this kept the discussions focussed.
	2. Motions coming out of committee (subgroup) are automatically 
	seconded; others need a second from the floor.
	3. Triply-nested amendments are not allowed.  This keeps the confusion 
	down.
Generally, whoever was making the presentation ran the discussion, 
recognized comments from the floor, etc.  Ken usually came in after the 
meat of the discussion to run the votes.  Peer pressure was fairly 
effective at keeping people from filibustering (I think once there was a 
call to limit discussion).  More common was lots of people wanting to 
make comments - this was handled by the presenters, usually by saying "OK, 
let's go clockwise around the table".

Organizations were limited to 2 attendees each (not enforced, but no 
major problems). We passed around an attendence sheet at each meeting to 
keep track of who was there; because of various planning problems, I 
recommend using a pre-registration scheme ("send email to xxx@yyy if you 
plan to attend").  Organizations were asked to commit to having the same 
attendee at every meeting, and this was generally followed.  It's very 
important to have this kind of continuity in attendees, else we would 
have spent too much time in remedial education.

Each organization (school, company, lab) got one vote - note this was on an 
organization basis, not a person. We didn't have trouble with cheating on 
this rule - just make sure the representatives from an organization have 
agreed on who is voting. An organization was eligible to vote if it had 
attended 2 of the last 3 meetings, counting the current meeting (i.e. you 
could attend every other meeting and still vote; you could not vote at your 
first meeting). Obviously, we couldn't enforce this rule at the first 
two meetings. 

Accepting a section of the HPF language spec was a multi-step process.
	1. Someone wrote a draft specification; often there were a couple 
	drafts.  Details of these were hashed out in the subgroup.
	2. First Reading: The subgroup leader (or occasionally the draft author) 
	presented the subgroup-approved draft to the main group.  When there was 
	controversy, it was usually pointed out.  The main group discussed, 
	suggested changes (sometimes), and held a series of "straw votes" on the 
	proposal.  All attendees were eligible to vote in straw votes, which 
	were not binding on the subgroups.
	3. More subgroup discussion, both electronic and in person at the next 
	meeting, producing a revised proposal.
	4. Second Reading: The subgroup leader presented the revised proposal to 
	the main group.  Sections that were substantially the same as the 
	original (or an alternative presented at the first reading) were amended 
	by motion and eventually voted on.  Eligibility for votes was as 
	explained above.  Major additions (for example, when PURE functions were 
	added to FORALL between meetings) were treated as first readings at this 
	point.  Often most of the proposal was accepted, and a few sections were 
	sent back to subgroup for more work; these came back as second readings 
	at the next meeting.
	5. Once a section was accepted at second reading, it was "frozen" until 
	the end of the HPFF process.  Revisions were only allowed for clarity or 
	when new information surfaced (like discovering that the draft was 
	self-contradictory).  This limitation was enforced as strictly as we 
	could, to avoid backtracking.
	6. At the end of the process (December), we promised to allow 
	reconsideration of any feature.
See also the discussion of the Journal of Development below.


Subgroup Matters

Subgroups met independently of the main body, usually the afternoon and 
evening of the day before.  The leader of the subgroup ran these meetings 
using whatever style he or she was comfortable with.  Most of us took 
votes from whoever showed up, and ran a pseud-democratic style.  Also, 
there was a mailing list for each subgroup where most of the discussions 
went on.

Each subgroup was devoted to one topic from the following list:
	Data distribution
	FORALL and other parallel statements
	Fortran 90, storage & sequence association, and the HPF subset
	Intrinsic functions
	Parallel I/O
	EXTRINSIC (nee LOCAL, nee FOREIGN) functions
The groups met in parallel, which caused a little friction but was 
logstically unavoidable.  When a subject straddled two groups (like 
intrinsic functions for enquiring about distributions), the subgroup 
leaders would talk to each other and decide who would handle it - this 
often led to minor anti-turf battles (also known as "after you" 
deadlock).  Both groups would act as sanity checks on the results.

When it came time to write the draft, each subgroup became a chapter.  
The subgroup leader was the editor (and usually major author) of the 
chapter, and was responsible for making sure the chapter reflected the 
decisions made in the subgroup and in committee.  


Logistical Matters

Meetings were 2.5 days, starting Wednesday afternoon, in Dallas (there 
were exceptions to this for logistical reasons, but we would have 
prefered to keep them all on this schedule).  A typical schedule was

	Wednesday
	  1:30-6:00  Subgroup meetings, about 3 going on in parallel (reserve 4 
		"breakout" rooms with the hotel, fo 10-20 people each)
	  6:00-7:30  Unofficial dinner break (usually the subgroup leaders ate 
		together & planned the meeting agenda)
	  7:30-10:30 More subgroup meetings (subgroup leaders usually ended up 
		staying up late to revise drafts)
	
	Thursday
	  9:00-12:00 Full group meeting (coffee breaks at natural breaks)
	  12:00-1:30 Lunch (provided)
	  1:30-6:00  Full group meeting (and coffee breaks)
	  6:00-8:00  Dinner (attendees pay, but hotel provided transport to area 
		restaurant)
	  8:00-10:00 (Sometimes) Full group meeting (when no full meeting, 
		subgroups usually met instead)
	
	Friday
	  9:00-12:00 Full group meeting (and coffee breaks)
	  12:00-1:30 (Sometimes) Lunch (provided if we thought the meeting would 
		last long)
	  1:30-3:00  (Sometimes) Full group meeting

We tried to finish as early as possible on Friday, to allow people to 
catch flights.

Since we scheduled all the meetings early on, we set up a contract with 
the hotel.  I didn't handle the details, but I think this saved us a 
little money and a lot of aggravation (talk to Theresa Chatman if you 
need more info).  At any rate, this is a great thing for someone on your 
staff to set up.

We financed the meetings primarily from a per-meeting fee of $95 ($75 if 
we didn't have lunch the second day) per attendee.  Ken offered to foot 
the bill for academics to attend, based on the expectation of NSF funds.  
We're still waiting on those funds; highly recommend that you don't make 
such offers without first getting the cash.


Documentation

The Draft: The earlier you have one the better. David Loveman served as our 
general editor, collecting the chapters and trying to smooth format 
details. I contributed the introduction and credits, mainly cribbed from 
meeting notes and other announcements. Guy Steele contributed a set of 
macros for BNF syntax and reproducing code segments. We tried to find some 
formatting from an ANSI standard, but no dice. Toward the end of the 
process, version control became a problem. We (tried to) set up the 
following framework: 
	1. David had the "official" version of the draft.  He set deadlines for 
	receiving the chapters, and edited for formatting.
	2. David sent me the whole document when all the chapters were done.  
	I LaTeXed it to check for system dependences (never a problem)
	3. I sent the document to the "core" mail group (see below), put it out 
	for anonymous FTP, and announced it on the net.
	4. Any further changes were supposed to be made to David's edited 
	copy, not the original version (this to make the next round of edits 
	easier).
The system worked pretty well, until the final draft when the wrong 
version of Chapter 6 got distributed...

Each subgroup wrote one chapter, generally written and/or edited by the 
subgroup leader. While the meetings were going on, the draft contained all 
proposals still under consideration (Guy provided a "\alternative" macro 
that marked sections as being alternatives to each other). Also, the author 
of each section was identified in a footnote at the beginning of the 
section, along with the date (and occasionally other version information). 
In the current draft, we've moved summaries of some discarded proposals to 
the "Journal of Development" (primarily the ones dropped for lack of time). 
All proposals exist in the archives; we may put together a "rationale" 
document to explain some of the more controversial decisions. We're also 
planning to move the authorship information from footnotes to the credits 
chapter in the December draft. It's too early to know how this organization 
will work for the reader, but the modularity has helped in writing the 
document.

Other lessons from the draft:
	1. Make sure the chapter authors realize they are writing a draft 
	chapter, not a stand-alone document.
	2. Make sure the person in charge of the credits chapter has plenty of 
	time to work on it (I spent 50% of my time for a week appeasing various 
	corporate egos, wording things right, and checking spelling of names).
	3. Proofread the document before sending it out - both spell checking 
	and careful chapter reading.

Mailing lists: Every subgroup had its own mailing list.  Those lists are 
where most of the technical action happened; they were very high-volume 
(final total was something like 1.5Mb of archived messages).  On top of that, 
there was a list for everybody in the world interested in HPF, and another 
for the "core" group. The "everybody" list was used for the meeting minutes 
and a few miscellaneous announcements. The core group list was primarily 
for the meeting attendees, but a few others were also on it for political 
and/or practical reasons (for example, Gil Weigand and Theresa Chatman were 
both on the list); it got meeting details, and copies of the various 
proposals before the meetings. All lists were kept at cs.rice.edu (there 
were a couple smaller lists other places, including a European list at GMD 
and several local lists for particular campuses). People could add or 
delete themselves to/from any of the lists by mailing to another mail alias 
at Rice. Automating this was a huge win (although I got 2 or 3 requests 
sent directly to me every week).

FTP: We made everything we could available by anonymous FTP at Rice; 
eventually other sites picked up some of it as well. This included the 
various drafts of the language spec; any other handouts from the meetings; 
supporting (sometimes critical) commentary; papers on Fortran D, Vienna 
Fortran, ADAPT, and other systems; archived email traffic; and the minutes 
of the meetings. Generally, I put up a couple versions of any document 
(particularly text formatting stuff) - TeX or LaTeX, Postscript, and 
compressed versions of large files.  This was important, since I've found 
out some fascinating things about portability (or lack thereof) of 
different formats.  (Hints: keep all lines 80 characters or less; no 
fancy macros in TeX; at most one "." in a file name (filename.tex.Z 
doesn't translate well to IBM!); never include ANY pathname.)

Minutes: Extremely popular, but lots of work. I'm convinced that making 
them available was a key to HPFF's success. Make them as detailed as 
possible, particularly including counts of the votes taken, major topics 
discussed, and lists of people (humor helps occasionally, too). "Executive 
Summary" sections with the major issues at the front seemed to be popular. 
I also used the minutes to announce additions to the FTP archives.

Advertizing:
Announcements of major news (new drafts, etc.) went everywhere I could 
think of.  This includes the "world" mailing list; newsgroups 
comp.lang.fortran, comp.lang.misc, and comp.parallel; (indirectly) 
na-net, scinet, and hpcwire.  Meeting minutes went to the world and core 
mailing lists and the newsgroups.  I've been writing short "What is HPF" 
articles constantly, and I think the same is true of others.  Ken, Dave 
Loveman, Guy, and I have all given large numbers of talks on HPF; again, 
the same is probably true of others.  This includes invited talks at 
conferences and visits to various companies.



From owner-mpi-comm@CS.UTK.EDU  Tue Nov 24 18:09:18 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA08323; Tue, 24 Nov 92 18:09:18 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA22602; Tue, 24 Nov 92 17:43:42 -0500
Received: from relay2.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA22596; Tue, 24 Nov 92 17:43:35 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA11950; Tue, 24 Nov 92 17:43:40 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 174208.17287; Tue, 24 Nov 1992 17:42:08 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-92031301) id AA07130; Tue, 24 Nov 1992 16:14:37 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA06815; Tue, 24 Nov 92 16:14:36 -0600
Date: Tue, 24 Nov 92 16:14:36 -0600
Message-Id: <9211242214.AA06815@brisk.kai.com>
To: dongarra@cs.utk.edu
Cc: mpi-comm@cs.utk.edu
In-Reply-To: Jack Dongarra's message of Tue, 24 Nov 92 15:04:05 -0500 <9211242004.AA20345@thud.cs.utk.edu>
Subject: more on the intro
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


Concerning the introduction:

	"The paradigm will not be made obsolete by architectures combining the shared-
	and distributed-memory views, or by increases in network speeds."

I think this sentence is unnecessarily defensive. I'd delete the sentence
and the following "thus".

I earlier raised an objection to 

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

there seems to be some redundancy here with

    \item  Process groups

The former is a subset of the latter. I'll repeat my noncirculated
comments: I would rather not see us say too much about the process model
at this stage; except to say that there is some process model defined by
the language using the standard and to say something about side effects
between processes that affect the message passing semantics (i.e., that
there should be none). That does, of course, leave us with some
interesting problems for identifying our communication; traditionally a
difficult subject in message passing (hence my distribution of this
message to the whole committee).

The easy route would be to have a global name space of shared "channels"
each with a communication characteristic [type] (e.g., "point-to-point"
or "one-to-many"): a compiler can check correct usage if we identify the
right rules (e.g. a synchronized unidirectional point-to-point
communication is shared by only two processes). Such logical naming
would map well across all the existing systems and avoid the problems of
name servers, processor id, topologies and so forth since any topology
can be described by the set of names and its users. Processor ids are,
in effect, names in a global name space - and are often channels that
have a "many-to-one" characteristic.

Steven



From owner-mpi-comm@CS.UTK.EDU  Sat Nov 28 18:38:03 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA07921; Sat, 28 Nov 92 18:38:03 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA22407; Sat, 28 Nov 92 18:35:38 -0500
Received: from cunyvm.cuny.edu by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA22403; Sat, 28 Nov 92 18:35:36 -0500
Message-Id: <9211282335.AA22403@CS.UTK.EDU>
Received: from YKTVMV by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 6064;
   Sat, 28 Nov 92 18:35:01 EST
Date: Sat, 28 Nov 92 18:32:55 EST
From: "Marc Snir" <SNIR%YKTVMV.BITNET@utkvm1.utk.edu>
X-Addr: (914) 945-3204  (862-3204)
        28-226 IBM T.J. Watson Research Center
        P.O. Box 218 Yorktown Heights NY 10598
To: mpi-comm@cs.utk.edu
Subject: previously sent postcript file
Reply-To: SNIR@watson.ibm.com

Contains an outline I want to use for discussing issues in the poin-to-point
subcommittee.  I send it to the entire committee since it touches many
issues related to collective communication and formal definitions.

If somebody cannot print postscript and prefers latex, pls let me know.
From owner-mpi-comm@CS.UTK.EDU  Sat Nov 28 18:40:52 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA07938; Sat, 28 Nov 92 18:40:52 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA22399; Sat, 28 Nov 92 18:33:55 -0500
Received: from cunyvm.cuny.edu by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA22394; Sat, 28 Nov 92 18:33:40 -0500
Message-Id: <9211282333.AA22394@CS.UTK.EDU>
Received: from YKTVMV by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 6053;
   Sat, 28 Nov 92 18:33:04 EST
Date: Sat, 28 Nov 92 18:32:22 EST
From: "Marc Snir" <SNIR%YKTVMV.BITNET@utkvm1.utk.edu>
To: MPI-COMM@CS.UTK.EDU

%!PS-Adobe-2.0
%%Creator: dvips 5.47 Copyright 1986-91 Radical Eye Software
%%Title: MPIOUTLN.DVI.*
%%Pages: 10 1
%%BoundingBox: 0 0 612 792
%%EndComments
%%BeginProcSet: texc.pro
/TeXDict 250 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch
load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{
isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get
round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10
N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{
/vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{
statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N
/FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin
/FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array
/BitMaps X /BuildChar{CharBuilder} N /Encoding IE N end dup{/foo setfont}2
array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}
B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont
setfont}B /ch-width{ch-data dup length 5 sub get} B /ch-height{ch-data dup
length 4 sub get} B /ch-xoff{128 ch-data dup length 3 sub get sub} B /ch-yoff{
ch-data dup length 2 sub get 127 sub} B /ch-dx{ch-data dup length 1 sub get} B
/ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0
N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S
dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0
ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice
ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]/id ch-image N
/rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N /cp 0 N{rc 0 ne{rc 1 sub
/rc X rw}{G}ifelse}imagemask restore}B /G{{id gp get /gp gp 1 add N dup 18 mod
S 18 idiv pl S get exec}loop}B /adv{cp add /cp X}B /chg{rw cp id gp 4 index
getinterval putinterval dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw
cp 2 copy get dup 0 eq{pop 1}{dup 255 eq{pop 254}{dup dup add 255 and S 1 and
or}ifelse}ifelse put 1 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255
eq{pop 127}{dup 2 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2
index string putinterval adv}B /set{rw cp fillstr 0 4 index getinterval
putinterval adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv
1 chg}bind{adv 1 chg nd}bind{1 add chg}bind{1 add chg nd}bind{adv lsh}bind{
adv lsh nd}bind{adv rsh}bind{adv rsh nd}bind{1 add adv}bind{/rc X nd}bind{1
add set}bind{1 add clr}bind{adv 2 chg}bind{adv 2 chg nd}bind{pop nd}bind]N /D{
/cc X dup type /stringtype ne{]}if nn /base get cc ctr put nn /BitMaps get S
ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr
ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI
save N @rigin 0 0 moveto}N /eop{clear SI restore showpage userdict /eop-hook
known{eop-hook}if}N /@start{userdict /start-hook known{start-hook}if
/VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1
string dup 0 3 index put cvn put} for}N /p /show load N /RMat[1 0 0 -1 0 0]N
/BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval
(Display)eq}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale
rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex
ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /a{moveto}B
/delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}
B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B
/k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1
w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{
/SS save N}B /eos{clear SS restore}B end
%%EndProcSet
TeXDict begin 1000 300 300 @start /Fa 1 16 df<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA8
EA7FFEA2EA3FFCEA1FF8EA07E010127D9317>15 D E /Fb 51 125 df<127012F8B012701200A5
127012F8A31270051C779B18>33 D<137013F01201EA03C0EA0780EA0F00121E121C123C123812
781270A212F05AA87E1270A212781238123C121C121E7EEA0780EA03C0EA01F0120013700C2479
9F18>40 D<126012F012787E7E7EEA0780120313C0120113E01200A213F01370A813F013E0A212
0113C0120313801207EA0F00121E5A5A5A12600C247C9F18>I<123C127E127FA3123F120F120E
121E127C12F81270080C788518>44 D<EA7FFFB51280A26C130011047D8F18>I<EA01F0EA07FC
487EEA1F1FEA1C0738380380007813C0EA7001A238E000E0A9EAF001007013C0A2EA7803003813
80381C0700EA1F1FEA0FFE6C5AEA01F0131C7E9B18>48 D<EA018012031207A2120F123F12FF12
FB12631203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA07F8EA1FFE487E387C0F80387003C038
F001E01300A3C7FCA2130114C01303EB0780EB0F00131E5B5B5BEA03E0485A485A381E00E05AEA
7FFFB5FC7E131C7E9B18>I<387FFFC0B512E0A3C8FCA4B512E0A36C13C0130C7E9318>61
D<137013F8A213D8A2EA01DCA3138CEA038EA41306EA0707A4380FFF80A3EA0E03A2381C01C0A2
387F07F038FF8FF8387F07F0151C7F9B18>65 D<EAFFFC13FF1480381C03C01301EB00E0A41301
14C01307381FFF80140014C0EA1C03EB00E014F01470A414F014E01303B512C01480EBFE00141C
7F9B18>I<3801FCE0EA03FEEA07FFEA0F07EA1E03EA3C01EA78001270A200F013005AA87E0070
13E0A21278EA3C01001E13C0EA0F073807FF806C1300EA01FC131C7E9B18>I<EA7FF8EAFFFE6C
7E381C0F80EB03C0A2EB01E01300A214F01470A814F014E0A2130114C01303EB0F80387FFF0048
5AEA7FF8141C7F9B18>I<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA214
38A5B512F8A3151C7F9B18>I<B512E0A3EA1C00A41400A2131CA3EA1FFCA3EA1C1CA390C7FCA7
EAFFC0A3131C7E9B18>I<3801F9C0EA07FF5AEA1F0FEA1C03123CEA78011270A200F0C7FC5AA5
EB0FF0131F130F38F001C0127013031278123CEA1C07EA1F0FEA0FFFEA07FDEA01F9141C7E9B18
>I<387F07F038FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0
151C7F9B18>I<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<EA7FE0
12FF127F000EC7FCB11470A5387FFFF0B5FC7E141C7F9B18>76 D<38FC01F8EAFE03A2383B06E0
A4138EA2EA398CA213DCA3EA38D8A213F81370A21300A638FE03F8A3151C7F9B18>I<387E07F0
38FF0FF8387F07F0381D81C0A313C1121CA213E1A313611371A213311339A31319A2131D130DA3
EA7F07EAFF87EA7F03151C7F9B18>I<EA0FF8EA3FFE487EEA780FEA700700F01380EAE003B0EA
F00700701300EA780FEA7FFF6C5AEA0FF8111C7D9B18>I<EAFFFEEBFF8014C0EA1C03EB01E013
001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA7FF8EAFF
FE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0FEB07801303A5149CA300
7F13FC38FF81F8387F00F0161C7F9B18>82 D<3807F380EA1FFF5AEA7C1FEA7007EAF00312E0A2
90C7FC7E1278123FEA1FF0EA0FFEEA01FF38001F80EB03C0EB01E01300A2126012E0130100F013
C0EAFC07B512801400EAE7FC131C7E9B18>I<387FFFF8B5FCA238E07038A400001300B2EA07FF
A3151C7F9B18>I<38FF83FEA3381C0070B2001E13F0000E13E0EA0F013807C7C03803FF806C13
00EA007C171C809B18>I<38FF07F8A3381C01C0A4380E0380A4EA0F0700071300A4EA038EA4EA
018C13DCA3EA00D813F8A21370151C7F9B18>I<38FE03F8A338700070A36C13E0A513F8A2EA39
DCA2001913C0A3138CEA1D8DA4000D13801305EA0F07A2EA0E03151C7F9B18>I<EA1FE0EA3FF8
487EEA783EEA300FC67EA248B4FC120F123FEA7F07127812F012E0A26C5AEA783F387FFFF0EA3F
FBEA0FE114147D9318>97 D<127E12FE127E120EA5133EEBFF80000F13C0EBE3E0EB80F0EB0070
1478000E1338A5120F14781470EB80F0EBC3E0EBFFC0000E138038067E00151C809B18>I<EA01
FEEA07FF001F1380EA3F07383C030048C7FC127012F05AA47E1270387801C0123CEA3F07381FFF
8000071300EA01FC12147D9318>I<EB1F80133F131F1303A5EA03F3EA0FFBEA1FFFEA3E1FEA78
0FEA700712F0EAE003A5130712F01270EA780FEA3E3F381FFFF0380FFBF83803E3F0151C7E9B18
>I<EA03F0EA0FFC487EEA3E1F38780780EA700300F013C0EAE001A2B5FCA300F0C7FC12703878
01C0123CEA3F07381FFF8000071300EA01FC12147D9318>I<EB1FC0EB7FE013FFEA01F1EBC0C0
1400A3387FFFC0B5FCA23801C000AEEA7FFFA3131C7F9B18>I<3803F1F03807FFF85A381E1F30
383C0F00EA3807A5EA3C0FEA1E1EEA1FFC485AEA3BF00038C7FC123CEA1FFF14C04813E0387801
F038F00078481338A36C1378007813F0EA7E03383FFFE0000F13803803FE00151F7F9318>I<12
7E12FE127E120EA5133FEBFF80000F13C0EBE1E013801300A2120EAA387FC3FC38FFE7FE387FC3
FC171C809B18>I<EA0380487EA36C5AC8FCA4EA7FC012FF127F1201AEB5FC14801400111D7C9C
18>I<12FEA3120EA5EB3FF0137F133FEB0780EB0F00131E5B5B5BEA0FF87F139C131EEA0E0FEB
0780130314C038FFC7F8A3151C7F9B18>107 D<EA7FE012FF127F1200B3A4387FFFC0B512E06C
13C0131C7E9B18>I<387DF1F038FFFBF86CB47E381F1F1CEA1E1EA2EA1C1CAB387F1F1F39FFBF
BF80397F1F1F001914819318>I<EA7E3F38FEFF80007F13C0380FE1E013801300A2120EAA387F
C3FC38FFE7FE387FC3FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A238E0
00E0A5EAF001007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318>I<EA7E3E
38FEFF80007F13C0380FE3E0EB80F0EB00701478000E1338A5120F14781470EB80F0EBC3E0EBFF
C0000E1380EB7E0090C7FCA7EA7FC0487E6C5A151E809318>I<387F87E038FF9FF8EA7FBF3803
FC78EBF030EBE0005BA35BA8EA7FFEB5FC6C5A15147F9318>114 D<EA0FF7EA3FFF5AEAF81FEA
E007A212F0007CC7FCEA7FF0EA1FFCEA07FEEA001F38600780EAE00312F0130738FC0F00B5FC5B
EAE7F811147D9318>I<487E1203A4387FFFC0B5FCA238038000A9144014E0A21381EBC3C0EA01
FF6C1380EB7E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F073807FFFC6C13
FE3801FCFC1714809318>I<38FF8FF8A3383800E0A3381C01C0A2137113F9A213D9A2380DDD80
A3138DEA0F8FA23807070015147F9318>119 D<387F8FF000FF13F8007F13F0380E01C0EB0380
A21207EB0700A2EA03871386138EEA01CEA2EA00CCA213DC1378A31370A313F05B1279EA7BC0EA
7F806CC7FC121E151E7F9318>121 D<126012F0B3B012600424769F18>124
D E /Fc 12 119 df<EBF1803803FDC038078F80EA0E07121C123C14001278A3EAF00EA31430EB
1C60133CEA707C3878FCC0EA3FCF380F078014147C9317>97 D<EA0780123F13001207A3120EA4
5AA213F0EA1FFCEA3F1EEA3E0EEA3C0F12381270A4EAE01EA3133CA21338EA6070EA71E0EA3FC0
EA1F0010207B9F15>I<137E48B4FC38038380EA0F07121E001C1300EA3C0248C7FCA35AA5EA70
021307EA381EEA1FF8EA07E011147C9315>I<1478EB03F814F0EB0070A314E0A4EB01C0A213F1
EA03FD38078F80EA0E07121C123C14001278A3EAF00EA31430EB1C60133CEA707C3878FCC0EA3F
CF380F078015207C9F17>I<137C48B4FCEA0783380F0180121E123CEB0300EA780EEA7FFC13E0
00F0C7FCA412701302EA7807EA3C1EEA1FF8EA07E011147C9315>I<EB3C60EBFF703801E3E0EA
0381EA0701120F14C0121EA3383C0380A4EB07005BEA1C1FEA1E3FEA0FFEEA03CEEA000EA25BA2
1230EA7838EAF0F0EA7FE0EA3F80141D7E9315>103 D<136013F0A213E01300A7120FEA1F8012
3113C0EA6380A212C3EA0700A3120EA3EA1C301360A2EA38C01218EA1F80EA0F000C1F7D9E0E>
105 D<EA03C0121F13801203A3EA0700A4120EA45AA45AA45AA3EA7180EAE300A312E6127E123C
0A207C9F0C>108 D<381E07C0383F1FE03833B870EA63E0EBC038138000C71370EA0700A3000E
13E0A3EB01C3001C13C6A2EB038C1301003813F8381800F018147D931A>110
D<137C48B4FC38038380380F01C0121E001C13E0123C1278A338F003C0A3EB07801400EA700F13
1EEA3838EA1FF0EA07C013147C9317>I<EA018013C0EA0380A4EA0700A2EAFFF0A2EA0E00A45A
A45AA31330EA7060A213C0EA7180EA3F00121E0C1C7C9B0F>116 D<380F01C0EA1F83003113E0
13C1EA6380A200C313C0EA0700A3380E0180A3EB0300A21306A2EA0F0CEA07F8EA01E013147D93
15>118 D E /Fd 28 121 df<903807F83F017FB512C03A01FC0FE3E03903F01FC7EA07E0D80F
C01387ED83C0ED8000A6B612FCA2390FC01F80B2397FF8FFF8A223237FA221>11
D<13181330136013C01201EA0380120713005A121EA2123E123CA2127CA3127812F8AD1278127C
A3123CA2123E121EA27E7E13801203EA01C012001360133013180D317BA416>40
D<12C012607E7E121C7E120F7E1380EA03C0A213E01201A213F0A3120013F8AD13F01201A313E0
A2120313C0A2EA078013005A120E5A12185A5A5A0D317DA416>I<EA07FCEA1FFF38380F803870
07C000F813E012FCA3127838000FC0EB1F801400133C5B13705BA25BA690C7FCA5EA01C0487E48
7EA36C5A6C5A13237DA21A>63 D<D903FE138090381FFF819038FF01E33901F8003FD803E0131F
4848130F48481307121F48C71203A2481401127EA200FE91C7FCA8127EED0180127F7E15036C6C
1400120F6C6C1306D803F05B6C6C13386CB413F090381FFFC0D903FEC7FC21227DA128>67
D<D903FE134090391FFFC0C090387F00F1D801F8133F4848130FD807C01307000F1403485A48C7
1201A2481400127EA200FE1500A791380FFFFC127E007F9038001FC0A27EA26C7E6C7E6C7E6C7E
D801FC133F39007F80E790381FFFC30103130026227DA12C>71 D<D8FFF0EC0FFF6D5C000716E0
D806FC1437A3017E1467A26D14C7A290391F800187A290390FC00307A3903807E006A2903803F0
0CA2903801F818A3903800FC30A2EC7E60A2EC3FC0A2EC1F80A3EC0F00D8FFF091B5FC14063022
7EA135>77 D<B53A0FFFF01FFEA2260FF00090C712E000076E14C0A26C6C9138800180153F6D15
03000103C01300A26C6C90387FE006156F7F6D9038C7F00CA20280EBF81C90263F81831318A2D9
1FC36D5A150114E3903A0FE600FE60A202F6EBFFE0D907FC6D5AA201035D4A133FA26D486DC7FC
A20100141E4A130EA237227FA13A>87 D<EA07FC381FFF80383F0FC0EB07E0130314F0121E1200
A213FF1207EA1FC3EA3F03127E12FCA4EA7E07EB1DF8381FF8FF3807E07F18167E951B>97
D<B47EA2121FABEB8FE0EBBFF8EBF07CEBC01EEB801FEC0F80A215C0A81580141F1500EBC03EEB
607C381E3FF8381C0FC01A237EA21F>I<EBFF80000713E0380F83F0EA1F03123E127E387C01E0
90C7FC12FCA6127C127EA2003E13306C1360380FC0E03807FF803800FE0014167E9519>I<EB03
FEA2EB007EABEA01FCEA07FF380F81FEEA1F00003E137E127E127C12FCA8127CA27E001E13FEEA
0F833907FF7FC0EA01FC1A237EA21F>I<13FE3807FF80380F87C0381E01E0003E13F0EA7C0014
F812FCA2B5FCA200FCC7FCA3127CA2127E003E13186C1330380FC0703803FFC0C6130015167E95
1A>I<EB3F80EBFFC03801F3E0EA03E7EA07C7120FEBC3C0EBC000A6EAFFFCA2EA0FC0B2EA7FFC
A213237FA211>I<3801FE1F0007B51280380F87E7EA1F03391E01E000003E7FA5001E5BEA1F03
380F87C0EBFF80D819FEC7FC0018C8FC121CA2381FFFE014F86C13FE80123F397C003F8048131F
140FA3007CEB1F00007E5B381F80FC6CB45A000113C019217F951C>I<B47EA2121FABEB87E0EB
9FF8EBB8FCEBE07CEBC07EA21380AE39FFF1FFC0A21A237EA21F>I<120E121FEA3F80A3EA1F00
120EC7FCA7EAFF80A2121FB2EAFFF0A20C247FA30F>I<EAFF80A2121FB3ADEAFFF0A20C237FA2
0F>108 D<3AFF87F00FE090399FFC3FF83A1FB87E70FC9039E03EC07C9039C03F807EA2018013
00AE3BFFF1FFE3FFC0A22A167E952F>I<38FF87E0EB9FF8381FB8FCEBE07CEBC07EA21380AE39
FFF1FFC0A21A167E951F>I<13FE3807FFC0380F83E0381E00F0003E13F848137CA300FC137EA7
007C137CA26C13F8381F01F0380F83E03807FFC03800FE0017167E951C>I<38FF8FE0EBBFF838
1FF07CEBC03E497E1580A2EC0FC0A8EC1F80A2EC3F00EBC03EEBE0FCEBBFF8EB8FC00180C7FCA8
EAFFF0A21A207E951F>I<EAFF1FEB3FC0381F67E013C7A3EB83C0EB8000ADEAFFF8A213167E95
17>114 D<EA07F3EA1FFFEA780FEA7007EAF003A26CC7FCB4FC13F0EA7FFC6C7E6C7E12073800
3F80EAC00F130712E0A200F01300EAFC1EEAEFFCEAC7F011167E9516>I<13C0A41201A2120312
07120F121FB5FCA2EA0FC0ABEBC180A51207EBE300EA03FEC65A11207F9F16>I<38FF83FEA238
1F807EAF14FEA2EA0F833907FF7FC0EA01FC1A167E951F>I<39FFF01FE0A2390FC00600A2EBE0
0E0007130CEBF01C0003131813F800015BA26C6C5AA2EB7EC0A2137F6D5AA26DC7FCA2130EA21B
167F951E>I<39FFF07FC0A2390FC01C006C6C5A6D5A6C6C5A00015B3800FD80017FC7FCA27F6D
7E497E80EB67F013E33801C1F8380381FC48C67E000E137E39FF81FFE0A21B167F951E>120
D E /Fe 1 4 df<1207A3EAE738EAFFF8EA7FF0EA1FC0A2EA7FF0EAFFF8EAE738EA0700A30D0E
7E8E12>3 D E /Ff 33 118 df<1318137013E0EA01C0EA0380A2EA0700120EA2121E121C123C
A25AA412F85AA97E1278A47EA2121C121E120EA27EEA0380A2EA01C0EA00E0137013180D2D7DA1
14>40 D<12C012707E7E7EA27EEA0380A213C0120113E0A2EA00F0A413F81378A913F813F0A4EA
01E0A213C012031380A2EA0700120EA25A5A5A12C00D2D7DA114>I<14E0B0B712C0A3C700E0C7
FCB022237D9C29>43 D<1238127C12FE12FFA2127F123B1203A21206A2120E120C121812701220
08107C860F>I<137013F0120F12FF12F31203B3A4B51280A2111D7C9C1A>49
D<EA07F0EA1FFEEA383F387C1F8038FE0FC0A214E01307127C1238EA000F14C0A2EB1F80140013
3E13785B5B3801C060EA0380EA0700000C13E0EA1FFF14C05A5AB5FCA2131D7D9C1A>I<EA01FC
EA07FF380E0F80001E13C0383F07E01387A3381F0FC0120E00001380EB1F00EA01FCA238000F80
EB07C0EB03E014F0003C13F8127E12FFA314F0127E387C07E0383C0FC0380FFF803803FC00151D
7E9C1A>I<EB01C013031307A2130F131F133F1377136713C7EA01871203EA0707120E120C1218
1238127012E0B512FEA238000FC0A63801FFFEA2171D7F9C1A>I<14E0A2497EA3497EA2497EA2
497E130CA2EB187FA201307F143F01707FEB601FA201C07F140F48B57EA2EB800748486C7EA200
06801401000E803AFFE01FFFE0A2231F7E9E28>65 D<B612E0A23807F007140114001560157015
30A21460A21500A2EBF1E013FFA213F1EBF060A2150CA214001518A31538157815F8EC03F0B6FC
A21E1F7E9E22>69 D<B612E0A23807F00714011400156015701530A21460A21500A2EBF1E013FF
A213F1EBF060A491C7FCA8B512C0A21C1F7E9E21>I<B51280A23807F000B3A9B51280A2111F7F
9E14>73 D<D8FFF8EBFFF0A2D807FCEB06007F7F00061380137FEB3FC0EB1FE0EB0FF014F8EB07
FC1303EB01FEEB00FFEC7F8615C6EC3FE6141FEC0FF6EC07FE1403A214011400157E153E151EA2
D8FFF0130E1506241F7E9E29>78 D<B512F814FF3907F01FC0EC07E06E7EA281A45DA24A5AEC1F
C090B5C7FC5C9038F03F806E7E81140FA61630A2EDF070913807F860B53881FFE09138807F8024
1F7E9E27>82 D<3803FC08380FFF38381E03F8EA3C00481378143812F814187E1400B4FC13F86C
B4FC14C06C13E06C13F06C13F8120338001FFC13011300A200C0137CA36C1378A200F813F038FE
01E038E7FFC000811300161F7D9E1D>I<007FB512FCA2397C0FE07C0070141C0060140CA200E0
140E00C01406A400001400B10007B512C0A21F1E7E9D24>I<B53A1FFFC0FFE0A23C0FE001FC00
0E00D807F0150C81EBF80000035E816D1538000149EB803015BFD800FE5D9138031FC001FF15E0
017F6E5AEC060FD93F86EBE180028E13F1ECCC07011F02F3C7FC9138D803FB02F813FF010F5CEC
F00101075CECE000A201035C4A1378010114704A1330331F7F9E36>87 D<EA07FCEA1FFF383F0F
80EB07C0EB03E0A2120C1200EA01FF120FEA3F83EA7E03127C12F8A3EAFC07EA7E0D383FF9FE38
07E07E17147F9319>97 D<EB07F8A21300AAEA01F8EA0FFEEA1F83EA3E01EA7E00127CA212FCA6
127CA2127EEA3E01EA1F07380FFEFFEA03F818207E9F1D>100 D<EA01FE3807FF80381F83E038
3F01F0EA7E0014F85AA2B5FCA200FCC7FCA3127C127E003E1318003F1338380F80703807FFE0C6
138015147F9318>I<EB1F80EBFFC03801F3E0EA03E713C71207EBC3C0EBC000A5EAFFFCA2EA07
C0B0EA3FFCA213207F9F10>I<3801FC3C3807FFFE380F07DEEA1E03003E13E0A5001E13C0380F
0780EBFF00EA19FC0018C7FCA2121C381FFF8014F06C13F8003F13FC387C007C0070133E00F013
1EA30078133CA2383F01F8380FFFE000011300171E7F931A>I<B4FCA2121FAAEB0FC0EB3FE0EB
61F0EBC0F813801300AD38FFE3FFA218207D9F1D>I<121C123F5AA37E121CC7FCA6B4FCA2121F
B0EAFFE0A20B217EA00E>I<B4FCA2121FB3AAEAFFE0A20B207E9F0E>108
D<3AFE0FE03F8090393FF0FFC03A1E70F9C3E09039C07F01F0381F807EA2EB007CAC3AFFE3FF8F
FEA227147D932C>I<38FE0FC0EB3FE0381E61F0EBC0F8EA1F801300AD38FFE3FFA218147D931D>
I<48B4FC000713C0381F83F0383E00F8A248137CA200FC137EA6007C137CA26C13F8A2381F83F0
3807FFC00001130017147F931A>I<38FF1FC0EB7FF0381FE1F8EB80FCEB007EA2143E143FA614
3E147E147CEB80FCEBC1F8EB7FE0EB1F8090C7FCA7EAFFE0A2181D7E931D>I<EAFE3EEB7F8038
1ECFC0EA1F8FA3EB030090C7FCABEAFFF0A212147E9316>114 D<EA0FE6EA3FFEEA701EEA600E
EAE006A2EAF800EAFFC0EA7FF8EA3FFCEA1FFE1203EA001FEAC007A212E0EAF006EAF81EEAFFFC
EAC7F010147E9315>I<EA0180A31203A31207120F123FEAFFFCA2EA0F80AA1386A5EA07CCEA03
F8EA01F00F1D7F9C14>I<38FF07F8A2EA1F00AD1301A2EA0F073807FEFFEA03F818147D931D>I
E /Fg 77 124 df<90380FC3E090387FEFF09038E07C783801C0F8D8038013303907007000A7B6
1280A23907007000B0387FE3FFA21D20809F1B>11 D<EB1F80EB7FC03801E0E0EA0381A2EA0701
90C7FCA6B512E0A2EA0700B0387FC3FEA21720809F19>I<EB1FE0137FEA01E1EA03811380EA07
00A7B5FCA2EA0700B0387FE7FEA21720809F19>I<90380F80F890387FE7FE9038E06E063901C0
FC0F380380F8380700F00270C7FCA6B7FCA23907007007B03A7FE3FE3FF0A22420809F26>I<90
380FC0FFEB7FE79038E07E0F3801C0FC4848487E38070070A7B7FCA23907007007B03A7FE3FE3F
F0A22420809F26>I<EA7038EAF87CEAFC7EA2EA7C3EEA0C06A3EA180CA2EA381CEA3018EA6030
EA40200F0E7E9F17>34 D<127012F812FCA2127C120CA31218A21238123012601240060E7C9F0D
>39 D<136013C0EA0180EA03005A12065A121C12181238A212301270A31260A212E0AC1260A212
70A312301238A21218121C120C7E12077EEA0180EA00C013600B2E7DA112>I<12C012607E7E12
1C120C7E12077E1380A2120113C0A31200A213E0AC13C0A21201A313801203A213005A12065A12
1C12185A5A5A0B2E7DA112>I<1306AFB612F0A2D80006C7FCAF1C207D9A23>43
D<127012F812FCA2127C120CA31218A21238123012601240060E7C840D>I<EAFFC0A30A037F8A
0F>I<127012F8A3127005057C840D>I<1303A213071306A2130E130CA2131C1318A213381330A2
13701360A213E013C0A212011380A312031300A25A1206A2120E120CA2121C1218A212381230A2
12701260A212E05AA2102D7DA117>I<EA03F0EA0FFCEA1E1EEA1C0E487E00781380EA7003A300
F013C0AD00701380A3EA780700381300EA1C0EEA1E1EEA0FFCEA03F0121F7E9D17>I<EA018012
03121F12FF12E31203B3A5EAFFFEA20F1E7C9D17>I<EA03F0EA0FFCEA183EEA300F00601380EA
C00700F013C012F81303A21220EA00071480A2EB0F00130E5B5B5B5B485A485A90C7FC000613C0
5A5A38300180EA7FFFB5FCA2121E7E9D17>I<EA03F0EA0FFCEA1C1EEA300F00781380A21307EA
380F12001400A2131E5BEA03F85BEA001C7F130FEB0780A214C0122012F8A300F01380EA600F00
701300EA3C1EEA1FFCEA03F0121F7E9D17>I<130EA2131E133EA2136E13EE13CEEA018E120313
0E1206120E120C121812381230126012E0B512F0A238000E00A7EBFFE0A2141E7F9D17>I<EA38
03EA3FFF5B13F813E00030C7FCA6EA31F0EA37FCEA3E0EEA3C0700381380EA3003120014C0A312
6012F0A21480EAC00700601300EA700EEA3C1EEA0FF8EA07E0121F7E9D17>I<137CEA01FEEA07
83380E0380EA0C07121C3838030090C7FC12781270A2EAF3F8EAF7FEEAFC0E487EEB0380A200F0
13C0A51270A214801238EB0700121CEA0E1EEA07FCEA01F0121F7E9D17>I<1260387FFFC0A214
80EA600138C003001306A2C65A5BA25B5BA213E05B1201A3485AA41207A76CC7FC121F7D9D17>
I<EA03F0EA0FFCEA1E1EEA3807123038700380A438780700123EEA3F0EEA1FDCEA0FF81203487E
EA1E7EEA383F38700F80130738E003C01301A400F01380EA700338380700EA1E0EEA0FFCEA03F0
121F7E9D17>I<EA03F0487EEA1E1CEA380E7F1270EB038012F0A214C0A5EA7007A2EA380F121C
EA1FFBEA07F338000380A2130714001230EA780EA2EA701CEA3078EA1FF0EA0FC0121F7E9D17>
I<127012F8A312701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F8
A312781218A41230A21260A21240051D7C930D>I<007FB512E0B612F0C9FCA8B612F06C14E01C
0C7D9023>61 D<EA0FC0EA3FF0EA7078EA6038EAE03C12F0A212601200137813F013E0EA01C013
8012031300A7C7FCA51207EA0F80A3EA07000E207D9F15>63 D<EB0380A3497EA3EB0DE0A3EB18
F0A3EB3078A3497EA3EBE01E13C0EBFFFE487FEB800FA200031480EB0007A24814C01403EA0F80
39FFE03FFEA21F207F9F22>65 D<B512E014F83807803E80801580A515005C143E5CEBFFF880EB
801E801580140715C0A51580140FEC1F00143EB512FC14F01A1F7E9E20>I<90381FC04090387F
F0C03801F8393803C00D38078007380F0003121E003E1301123C127C1400127812F81500A80078
14C0127CA2123C003EEB0180121E6CEB0300EA07803803C00E3801F81C38007FF0EB1FC01A217D
9F21>I<B512E014FC3807803E140FEC0780EC03C015E0140115F01400A215F8A915F0A2140115
E0A2EC03C0EC0780EC0F00143EB512FC14E01D1F7E9E23>I<B6FCA23807801F140780A2158014
01A214C1A2ECC000A2138113FFA213811380A21560A2140015C0A31401A21403EC0F80B6FCA21B
1F7E9E1F>I<B6FCA23807801F140780A215801401A214C1A2ECC000A2138113FFA213811380A4
91C7FCA8EAFFFEA2191F7E9E1E>I<90380FC02090387FF8603901F81CE03803E0063807800338
0F0001121E14005A127C1560127812F81500A6EC7FFCA20078EB01E0127CA2123C7EA27E380780
03EA03E03901F80E6039007FFC2090380FE0001E217D9F24>I<39FFF8FFF8A23907800F00AC90
B5FCA2EB800FAD39FFF8FFF8A21D1F7E9E22>I<EAFFFCA2EA0780B3A9EAFFFCA20E1F7F9E10>I<
EAFFFEA2EA0780B11406A4140EA2140C141C143C14FCB5FCA2171F7E9E1C>76
D<B46CEB1FF86D133F00071500A2D806E0136FA3017013CFA3903838018FA390381C030FA3EB0E
06A3EB070CA3EB0398A3EB01F0A3380F00E03AFFF0E1FFF8A2251F7E9E2A>I<39FF807FF813C0
0007EB07809038E00300A2EA06F0A21378133CA2131EA2130FA2EB078314C31303EB01E3A2EB00
F3A2147BA2143F80A280A2000F7FEAFFF0801D1F7E9E22>I<EB1F80EBFFF03801E0783807C03E
48487E497E001EEB078048EB03C0A2007C14E0A20078130100F814F0A9007814E0007C1303A200
3C14C0003E1307001E14806CEB0F006D5A3807C03E3801F0F86CB45AEB1F801C217D9F23>I<B5
12E014F83807807C141E141F801580A515005C141E147CEBFFF814E00180C7FCACEAFFFCA2191F
7E9E1F>I<B57E14F0380780F8143C143E141E141FA4141E143E143C14F8EBFFF01480EB81C0EB
80E01470A21478A3147CA3150C147E143E39FFFC1F18EC0FF0C7EA03E01E207E9E21>82
D<3807E080EA0FF9EA1C1FEA300FEA7007EA600312E01301A36CC7FCA21278127FEA3FF0EA1FFC
6C7EEA03FF38001F801307EB03C0A2130112C0A400E01380EAF00338F80700EAFE0EEACFFCEA81
F812217D9F19>I<007FB512E0A238780F010070130000601460A200E0147000C01430A4000014
00B23807FFFEA21C1F7E9E21>I<39FFFC7FF8A23907800780EC0300B3A300031302EBC006A200
015B6C6C5AEB7830EB3FE0EB0FC01D207E9E22>I<39FFF007FEA2390F8001F090C712E06C6C13
C0A2EBC00100031480A2EBE00300011400A23800F006A3EB780CA36D5AA36D5AA2EB1F70EB0F60
A214E06D5AA26D5AA31F207F9E22>I<3BFFF07FF83FF0A23B0F0007800F80EE0300A23A07800F
C006A3913819E00ED803C0140CA214393A01E030F018A33A00F0607830A3ECE07C903978C03C60
A390393D801EC0A390383F000F6D5CA3010E6DC7FCA32C207F9E2F>I<397FF83FF8A23907C00F
800003EB06003801E00EEBF00C00005BEB7838EB7C30EB3C70EB3E60EB1EC0130F5C1307808013
0DEB1DF0EB18F8EB3878EB307CEB603CEBE01EEBC01F48487E0003EB0780010013C0EA0F8039FF
E01FFEA21F1F7F9E22>I<EA0804EA180CEA3018EA7038EA6030A2EAC060A3EAF87CEAFC7EA2EA
7C3EEA381C0F0E7B9F17>92 D<EA1FE0487EEA78387FEA300E1200A3EA03FE121FEA3E0E127812
F800F01330A3131E38783F70383FEFE0380F878014147E9317>97 D<120E12FEA2120EA9133FEB
FF80380FC3C0EB00E0000E13F014701478A7147014F0120FEB01E0EBC3C0380CFF80EB3E001520
7F9F19>I<EA03F8EA0FFCEA1E1E123CEA380CEA7800127012F0A612701278EA3803123CEA1F0E
EA0FFCEA03F010147E9314>I<EB0380133FA21303A9EA03E3EA0FFBEA1E0FEA3C07EA7803A212
7012F0A61270A2EA78071238EA1E1F380FFBF8EA03E315207E9F19>I<EA03F0EA0FFCEA1E1E48
7EEA380712783870038012F0B5FCA200F0C7FCA31270127838380180EA1C03380F0700EA07FEEA
01F811147F9314>I<133C13FEEA01CFEA038F1306EA0700A7EAFFF0A2EA0700B0EA7FF0A21020
809F0E>I<EB01E03803E3F0380FFF70EA1C1C383C1E00EA380EEA780FA4EA380EEA3C1EEA1C1C
EA3FF8EA33E00030C7FCA21238EA3FFE381FFF804813C0387003E0EB00F0481370A36C13F03878
01E0383E07C0380FFF00EA03FC141F7F9417>I<120E12FEA2120EA9133E13FF380FC380EB01C0
A2120EAD38FFE7FCA216207F9F19>I<121C121E123E121E121CC7FCA6120E127EA2120EAFEAFF
C0A20A1F809E0C>I<13E0EA01F0A3EA00E01300A61370EA07F0A212001370B3A21260EAF0E0EA
F1C0EA7F80EA3E000C28829E0E>I<120E12FEA2120EA9EB1FF0A2EB0F80EB0E00130C5B5B1370
13F0EA0FF81338EA0E1C131E130E7F1480130314C038FFCFF8A215207F9F18>I<120E12FEA212
0EB3A9EAFFE0A20B20809F0C>I<390E3F03F039FEFF8FF839FFC1DC1C390F80F80EEB00F0000E
13E0AD3AFFE7FE7FE0A223147F9326>I<EA0E3EEAFEFF38FFC380380F01C0A2120EAD38FFE7FC
A216147F9319>I<EA01F8EA07FE381E0780383C03C0EA3801387000E0A200F013F0A6007013E0
EA7801003813C0EA3C03381E07803807FE00EA01F814147F9317>I<EA0E3F38FEFF8038FFC3C0
380F01E0380E00F0A21478A7147014F0120FEB01E0EBC3C0380EFF80EB3E0090C7FCA7EAFFE0A2
151D7F9319>I<3803E180EA0FF9EA1E1FEA3C0712781303127012F0A6127012781307EA3C0FEA
1E1FEA0FF3EA03E3EA0003A7EB3FF8A2151D7E9318>I<EA0E78EAFEFCEAFF9EEA0F1E130C1300
120EACEAFFE0A20F147F9312>I<EA1F90EA3FF0EA7070EAE030A3EAF0001278EA7F80EA3FE0EA
0FF01200EAC0781338A212E0A2EAF070EADFE0EA8F800D147E9312>I<1206A4120EA2121E123E
EAFFF8A2EA0E00AA1318A5EA073013E0EA03C00D1C7F9B12>I<380E01C0EAFE1FA2EA0E01AC13
03A2EA070FEBFDFCEA01F116147F9319>I<38FF87F8A2381E01E0000E13C01480A238070300A3
EA0386A2138EEA01CCA213FC6C5AA21370A315147F9318>I<39FF9FF3FCA2391C0780F01560EC
C0E0D80E0F13C0130C14E00007EBE180EB186114713903987300EBB033A2143F3801F03EEBE01E
A20000131CEBC00C1E147F9321>I<387FC7FCA2380703E0148038038300EA01C7EA00EE13EC13
781338133C137C13EEEA01C7138738030380380701C0000F13E038FF87FEA21714809318>I<38
FF87F8A2381E01E0000E13C01480A238070300A3EA0386A2138EEA01CCA213FC6C5AA21370A313
60A35B12F0EAF18012F3007FC7FC123C151D7F9318>I<EA3FFFA2EA380EEA301CEA703CEA6038
137013F0EA01E013C0EA0380EA0783EA0F03120EEA1C07EA3C061238EA701EEAFFFEA210147F93
14>I<B512FCA21602808C17>I E /Fh 29 122 df<48B4FC000F13E0383E03F8007813FCEA7E01
00FF13FEA5387E03FC1200EB07F0EB0FE01480EB1F00131E5BA25BA21370A690C7FCA61370EA01
FC487EA56C5AEA0070172A7CA920>63 D<B712C0A33903FE003FED0FE015031501A21500A316F0
9138038070A31600A21407140F90B5FCA3EBFE0F14071403A591C8FCA9B512FEA324297DA82B>
70 D<91387FE003903903FFFC0F011FEBFF1F90397FF00FFF9038FF8001D803FEC7FC48488048
48804980485A003F815B007F81A3484891C7FCA90203B512F8A2EA7FC0DA00011300A2123F7F12
1F6C7E7F6C7E6C6C5B3800FF8090387FF00F011FB5123F0103EBFC0F9039007FE0032D297CA836
>I<B512FEA300011300B3B1B512FEA317297FA81A>73 D<B592383FFFC0A26E5C0003EFF000A2
D9BFC014EFA2D99FE0EB01CFA2D98FF0EB038FA3D987F8EB070FA2D983FC130EA2D981FE131CA3
D980FF1338A291387F8070A291383FC0E0A391381FE1C0A291380FF380A2913807FF00A36E5AA2
6E5AA26E5AD8FFFE0203B512C0A215703A297DA841>77 D<90387F80603903FFF0E0000F13FF38
1F807F383F001F003E1307007E1303127C00FC1301A214007E7E6D130013F8EBFF806C13F814FE
6C7F6C14C07E6C14E0000114F0EA003F010113F8EB001F1407A200E013031401A37E15F06C1303
6C14E0B413079038E01FC090B5120000E05B38C01FF01D297CA826>83 D<B53CF87FFFF807FFF0
A32703FE000190C7EA1C00A26C6C6F5B816E16786C701370A26E6E13F0017F495D14E0013F496D
485A169F02F01503011F9026070FF85BA2DAF80FEBFC07010FD90E0791C7FC14FC0107011EEBFE
0EED1C0302FE151E010390393801FF1CA2902601FF7814B8ED700015F06D16F04B137FA26E486D
5AA2023F5D4B131FA2021F5D92C7120FA2020E6EC8FC44297FA847>87 D<48B47E000F13F0381F
81FC486C7E147FA2EC3F80A2EA0F00C7FCA2EB0FFF90B5FC3807FC3FEA1FE0EA3F80127F130012
FEA3147F7E6CEBFFC0393F83DFFC380FFF0F3801FC031E1B7E9A21>97 D<EB1FF0EBFFFE3803F0
3F390FE07F80EA1FC0EA3F80A2127F9038001E004890C7FCA97E7F003FEB01C013C0001F130339
0FE007803903F01F003800FFFCEB1FE01A1B7E9A1F>99 D<EC3FF8A31403ACEB1FE3EBFFFB3803
F03F380FE00F381FC007383F8003A2127F13005AA97EA2EA3F801407381FC00F380FE01F3A03F0
3FFF803800FFF3EB3FC3212A7EA926>I<EB3FE03801FFF83803F07E380FE03F391FC01F80393F
800FC0A2EA7F00EC07E05AA390B5FCA290C8FCA47E7F003F14E01401D81FC013C0380FE0033903
F81F803900FFFE00EB1FF01B1B7E9A20>I<EB07F8EB3FFEEBFE3F3901FC7F80EA03F8A2EA07F0
A2EC3F0091C7FCA6B512C0A3D807F0C7FCB3A3387FFF80A3192A7EA915>I<9038FF81F00003EB
E7FC390FC1FE7C391F80FCFC003FEBFE7C9038007E3848EB7F00A66C137EEB80FE001F5B380FC1
F8381FFFE0001813800038C8FC123CA2123E383FFFF814FF6C14C06C14E06C14F0121F397E0007
F8007C13015A1400A36C1301007EEB03F06CEB07E0390FC01F803903FFFE0038007FF01E287E9A
22>I<EAFFE0A3120FAC147F9038E1FFC09038E787E09038EE07F09038FC03F813F813F0A313E0
AF3AFFFE3FFF80A3212A7DA926>I<1207EA1FC013E0123FA3121F13C0EA0700C7FCA7EAFFE0A3
120FB3A3EAFFFEA30F2B7DAA14>I<EAFFE0A3120FACEC1FFCA3EC07C0EC0F80EC1E00147C5CEB
E1F0EBE3E0EBE7C0EBEFE0EBFFF0A280EBF3FCEBE1FE13C080EC7F80143F15C0EC1FE0EC0FF039
FFFC3FFEA31F2A7EA924>107 D<EAFFE0A3120FB3B2EAFFFEA30F2A7DA914>I<3BFFC07F800FF0
903AC1FFE03FFC903AC783F0F07E3B0FCE03F9C07F903ADC01FB803F01F8D9FF00138001F05BA3
01E05BAF3CFFFE1FFFC3FFF8A3351B7D9A3A>I<38FFC07F9038C1FFC09038C787E0390FCE07F0
9038DC03F813F813F0A313E0AF3AFFFE3FFF80A3211B7D9A26>I<EB3FE03801FFFC3803F07E39
0FC01F80391F800FC0003F14E0EB00074814F0A34814F8A86C14F0A2393F800FE0A2001F14C039
0FC01F803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFE1FE9038E7FF809038FE07E039
0FF803F8496C7E01E07F140081A2ED7F80A9EDFF00A25DEBF0014A5A01F85B9038FE0FE09038EF
FF80D9E1FCC7FC01E0C8FCA9EAFFFEA321277E9A26>I<38FFC3F0EBCFFCEBDC7E380FD8FF13F8
5BA3EBE03C1400AFB5FCA3181B7E9A1C>114 D<3803FE30380FFFF0EA3E03EA7800127000F013
70A27E6C1300EAFFE013FE387FFFC06C13E06C13F0000713F8C613FC1303130000E0137C143C7E
A26C13787E38FF01F038F7FFC000C11300161B7E9A1B>I<1370A413F0A312011203A21207381F
FFF0B5FCA23807F000AD1438A73803F870000113F03800FFE0EB1F8015267FA51B>I<39FFE03F
F8A3000F1303B11407A2140F0007131F3A03F03BFF803801FFF338003FC3211B7D9A26>I<3AFF
FE03FF80A33A07F0007000A26D13F000035CEBFC0100015CA26C6C485AA2D97F07C7FCA2148FEB
3F8E14DEEB1FDCA2EB0FF8A36D5AA26D5AA26D5A211B7F9A24>I<3BFFFE7FFC0FFEA33B0FE007
E000E03B07F003F001C0A29039F807F80300031680A23B01FC0EFC0700A2D9FE1E5B000090381C
7E0EA29039FF383F1E017F141C0278133C90393FF01FB8A216F86D486C5AA26D486C5AA36D486C
5AA22F1B7F9A32>I<39FFFC0FFFA33907F003C06C6C485AEA01FC6C6C48C7FCEBFF1E6D5AEB3F
F86D5A130FA2130780497E497E131EEB3C7F496C7E496C7ED801E07FEBC00F00036D7E3AFFF01F
FF80A3211B7F9A24>I<3AFFFE03FF80A33A07F0007000A26D13F000035CEBFC0100015CA26C6C
485AA2D97F07C7FCA2148FEB3F8E14DEEB1FDCA2EB0FF8A36D5AA26D5AA26D5AA2495AA2EA3807
007C90C8FCEAFE0F130E131E5BEA7C78EA3FE0EA0FC021277F9A24>I E
/Fi 18 119 df<127012F812FCA2127C120CA41218A21230A212601240060F7C840E>44
D<EA01801203120F12FF12F31203B3A8EAFFFEA20F217CA018>49 D<EA03F0EA0FFCEA1C1F3830
0F80EA6007EB03C012C000F013E0EAF801A3EA2003120014C0A2EB0780A2EB0F00131E131C5B5B
5B485A485A38070060120E120C4813E04813C0EA7FFFB5FCA213217EA018>I<EA01F0EA07FCEA
0E0F38180780EA3803383001C01270A31278EB0380123E383F0700EA1FCEEA0FFCEA03F87FEA0F
7F381C3F80EA380F387007C0130338E001E01300A5387001C0A238380380381E0F00EA0FFEEA03
F013227EA018>56 D<EA01F0EA07FCEA0E0E487E383803801278127038F001C0A314E0A5127013
031278EA3807EA1C0DEA0FF9EA07F1380081C0130113031480A2383007001278130EEA701C6C5A
EA1FF0EA0FC013227EA018>I<D8FFC0EB03FF6D5B000715E0A2D806F0130DA301781319A36D13
31A36D1361A36D13C1A29038078181A3903803C301A3EB01E6A3EB00FCA31478EA1F80D8FFF0EB
3FFF143028227EA12D>77 D<39FF800FFF13C00007EB01F89038E000607F12061378A27F133E13
1E7FA2EB078014C01303EB01E0A2EB00F01478A2143CA2141E140FA2EC07E0A214031401A2381F
8000EAFFF0156020227EA125>I<3803F020380FFC60381C0EE0EA3803EA7001A2EAE000A21460
A36C1300A21278127FEA3FF0EA1FFE6C7E0003138038003FC0EB07E01301EB00F0A2147012C0A4
6C136014E06C13C0EAF80138EF038038C7FF00EA81FC14247DA21B>83 D<EA0FE0EA1FF8EA3C1C
7FEA18071200A25BEA03FF120FEA3F07127C127812F01418A2130F1278387C3FB8383FF3F0380F
C3C015157E9418>97 D<120E12FEA2121E120EAAEB1F80EB7FE0380FC0F0EB0078000E1338143C
141C141EA7141C143C000F1338EB8070EBC1F0380C7FC0EB1F0017237FA21B>I<EA01FEEA07FF
380F0780121C383803000078C7FC127012F0A7127814C07E381E0180380F0300EA07FEEA01F812
157E9416>I<EA01FCEA07FF380F0780381C03C0EA3801007813E0EA7000B5FCA200F0C7FCA512
7814607E6C13C0380F83803807FF00EA00FC13157F9416>101 D<121C121E123E121E121CC7FC
A8120E12FEA2121E120EAFEAFFC0A20A227FA10E>105 D<390E1FC07F3AFE7FE1FF809039C0F3
03C03A1F807E01E0390F003C00000E1338AE3AFFE3FF8FFEA227157F942A>109
D<380E1F8038FE7FC038FFC1E0381F80F0380F0070120EAE38FFE7FFA218157F941B>I<EA01FC
EA07FF380F0780381C01C0383800E0007813F00070137000F01378A700701370007813F0003813
E0381C01C0380F07803807FF00EA01FC15157F9418>I<EA0E3CEAFEFEEAFFCFEA1F8FEA0F0613
00120EADEAFFF0A210157F9413>114 D<38FFC3FEA2381E00F8000E1360A26C13C0A338038180
A213C300011300A2EA00E6A3137CA31338A217157F941A>118 D E /Fj
17 124 df<B51280A23807F0006C5AB3B3A7487EB51280A211317DB017>73
D<D8FFF0ED7FF86D15FF0007170000035E017CEC01BEA36DEC033EA36D1406A36D6C130CA36D6C
1318A36D6C1330A36D6C1360A216C06D7EA291387C0180A391383E0300A3EC1F06A3EC0F8CA3EC
07D8A3EC03F0A3486C6C5AD80FC0157FD8FFFC91380FFFF8EC00C035317CB03D>77
D<EC3FC0903801FFF8903807C03E90391F000F80013CEB03C001F8EB01F048486D7E4848147C49
143C0007153E484880A248C8EA0F80A2003EED07C0A2007E16E0A2007C1503A200FC16F0AB007E
ED07E0A4003E16C0003F150F6C1680A26C6CEC1F00A26C6C143E6C6C5CA26C6C5C6C6C495A013E
EB07C06D495A902607E07EC7FC903801FFF89038003FC02C337CB134>79
D<B612C015F83907E000FE0003141FED0F80ED07C0ED03E016F01501A216F8A616F0A2150316E0
ED07C0ED0F80ED1F0015FE90B512F815C001E0C8FCB3A2487EB57EA225317CB02D>I<EA01FE38
0FFFC0381C03E0383C00F0003E137880141C0008131EC7FCA4EB01FE133F3801FF1EEA07F0EA0F
80EA1F00123E5AA248140CA3143EA2007C137E6CEBDF1C391F038FB8390FFF07F03903F803C01E
1F7D9E21>97 D<EB3FC0EBFFF83803E01C3807801E380F003E121EA2481308007C1300A2127812
F8A9127CA36C1303121E001F1306380F800E3807C01C3803F0383800FFE0EB3F80181F7D9E1D>
99 D<EB3F80EBFFE03803E0F83807803C48487E121E805A127C15800078130712F8B6FCA200F8
C8FCA61278127C123CEC01807E6CEB0300EB80063807C00E3801F03C3800FFF0EB1FC0191F7E9E
1D>101 D<EB03E0EB1FF8EB3C38EB707C13F0EA01E014383803C000ACB512C0A23803C000B3A8
487EEA7FFFA216327FB114>I<15F090387F03F83901FFCF1C3803C1FC390780F818390F007800
48137C001E133C003E133EA7001E133C001F137C6C13786C6C5A380FC1E0380DFFC0D81C7FC7FC
0018C8FCA2121CA2121E380FFFF814FF6C14804814C0391E0007E00038EB01F048EB0070157848
1438A500701470007814F06CEB01E06CEB03C03907C01F003801FFFC38003FE01E2F7E9F21>I<
1207EA0F80121FA2120FEA0700C7FCABEA078012FFA2120F1207B3A6EA0FC0EAFFF8A20D307EAF
12>105 D<EA078012FFA2120F1207B3B3A7EA0FC0EAFFFCA20E327EB112>108
D<380781FE39FF87FF8090388E07C0390F9803E03807B0019038E000F05BA35BB3486C487E3AFF
FC1FFF80A2211F7E9E25>110 D<380783E038FF8FF8EB9C7CEA0FB0EA07F0EBE038EBC000A35B
B3487EEAFFFEA2161F7E9E19>114 D<3801FC10380FFF30381E03F0EA38004813705A1430A37E
6C1300127EEA3FF06CB4FC6C1380000313E038003FF0EB03F8EB007800C0133CA2141C7EA27E14
186C13386C137038EF01E038C3FFC03880FE00161F7E9E1A>I<13C0A51201A31203A21207120F
121FB512E0A23803C000B01430A83801E060A23800F0C0EB7F80EB1F00142C7FAB19>I<D80780
13F000FF131FA2000F130100071300B31401A2140300031307EBC00E3901F03CF83A00FFF0FF80
EB3FC0211F7E9E25>I<B71280A22102809321>123 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300
TeXDict begin
%%EndSetup
%%Page: 1 1
bop 457 227 a Fj(Message)21 b(P)n(assing)g(In)n(terface)i({)f(Outline)869
354 y Fi(Marc)16 b(Snir)772 456 y(No)o(v)o(em)o(b)q(er)d(28,)k(1992)75
643 y Fh(In)n(tro)r(duction)75 745 y Fg(The)f(purp)q(ose)h(of)f(this)g(do)q
(cumen)o(t)h(is)f(to)g(pro)o(vide)g(a)g(framew)o(ork)f(that)g(w)o(e)h(can)g
(use)h(to)e(discuss)i(issues)75 801 y(in)i(the)e(de\014nition)j(of)d(MPI,)h
(to)f(list)i(questions)f(w)o(e)f(need)i(to)e(answ)o(er,)h(and)g(prop)q(ose)f
(some)h(answ)o(ers.)75 857 y(I)g(plan)g(to)e(use)i(this)g(do)q(cumen)o(t)f
(as)g(a)g(framew)o(ork)f(for)h(the)g(discussions)i(in)f(the)f(p)q(oin)o
(t-to-p)q(oin)o(t)h(sub-)75 914 y(committee;)d(I)g(broadcast)g(it)g(to)g(the)
g(en)o(tire)g(committee,)g(b)q(ecause)h(man)o(y)f(issues)h(are)f(relev)m(an)o
(t)g(to)g(the)75 970 y(other)g(sub)q(committees.)75 1113 y
Fh(Goals)131 1214 y Fg(1.)22 b(Design)17 b(an)h(application)h(programming)d
(in)o(terface)i(\(not)e(necessarily)j(a)e(target)f(for)h(compilers)189
1271 y(or)d(a)h(system)g(implemen)o(tation)h(library\))131
1363 y(2.)22 b(Allo)o(w)15 b(e\016cien)o(t)h(comm)o(unication:)21
b(Av)o(oid)16 b(memory)e(to)h(memory)g(cop)o(ying)g(and)h(allo)o(w)f(o)o(v)o
(erlap)189 1420 y(of)e(computation)g(and)h(comm)o(unication)g(and)g(o\017oad)
f(to)g(comm)o(unication)h(copro)q(cessor,)g(where)189 1476
y(a)o(v)m(ailable)131 1569 y(3.)22 b(Allo)o(w)15 b(\(but)g(no)h(mandate\))e
(extensions)i(for)f(use)g(in)h(heterogeneous)f(en)o(vironmen)o(t.)131
1661 y(4.)22 b(Allo)o(w)15 b(con)o(v)o(enien)o(t)h(C,)f(C++,)g(F77)f(and)i
(F90)e(bindings)j(for)e(in)o(terface.)131 1754 y(5.)22 b(Pro)o(vide)15
b(a)g(reliable)i(comm)o(unication)f(in)o(terface:)21 b(User)15
b(need)h(not)f(cop)q(e)h(with)f(comm)o(unication)189 1810 y(failures.)21
b(Suc)o(h)15 b(failures)i(are)d(dealt)i(b)o(y)f(the)h(underlying)h(comm)o
(unication)f(subsystem.)131 1902 y(6.)22 b(F)l(o)q(cus)15 b(on)g(a)g(prop)q
(osal)h(that)e(can)h(b)q(e)h(agreed)f(up)q(on)h(in)g(6)f(mon)o(ths.)131
1995 y(7.)22 b(De\014ne)10 b(an)g(in)o(terface)h(that)e(is)i(not)f(to)q(o)f
(di\013eren)o(t)i(from)e(curren)o(t)h(practice)h(\(PVM/Express/P)o(armacs\))
131 2087 y(8.)22 b(De\014ne)13 b(an)g(in)o(terface)f(that)g(can)h(b)q(e)h
(quic)o(kly)g(implemen)o(ted)g(on)f(man)o(y)f(v)o(endors)g(platforms,)h(with)
189 2144 y(no)i(signi\014can)o(t)h(c)o(hanges)f(in)h(the)f(underlying)j(comm)
o(unication)d(and)h(system)f(soft)o(w)o(are.)146 2245 y(Do)f(w)o(e)h(agree)g
(on)g(this?)75 2388 y Fh(F)-6 b(ramew)n(ork)75 2489 y Fg(I)11
b(prop)q(ose)g(to)g(consider)g(comm)o(unication)h(op)q(erations)f(as)g
(consisting)g(of)g(the)g(follo)o(wing)g(sub)q(op)q(erations:)75
2591 y Ff(INIT\(op)q(eration,)19 b(params,)d(handle\))24 b
Fg(Pro)q(cess)15 b(pro)o(vides)f(all)i(relev)m(an)o(t)e(parameters)g(for)g
(its)g(par-)189 2647 y(ticipation)19 b(in)f(the)g(comm)o(unication)g(op)q
(eration)g(\(data)f(bu\013er,)h(t)o(yp)q(e,)g(participan)o(ts,)g(etc.\).)27
b(A)189 2704 y(handle)16 b(is)g(created)f(that)g(iden)o(ti\014es)h(the)g(op)q
(eration.)964 2828 y(1)p eop
%%Page: 2 2
bop 75 45 a Ff(ST)l(AR)l(T\(handle\))24 b Fg(The)16 b(comm)o(unication)g(op)q
(eration)f(is)h(started)75 139 y Ff(A)-6 b(W)g(AIT\(handle\))24
b Fg(The)15 b(comm)o(unication)h(op)q(eration)g(is)g(completed.)75
232 y Ff(FREE\(handle\))25 b Fg(The)16 b(handle,)g(and)f(asso)q(ciated)g
(resources)h(are)f(freed.)75 337 y(Correct)g(in)o(v)o(o)q(cation)h(of)g
(these)g(sub)q(op)q(erations)g(is)h(a)e(sequence)i(of)e(the)h(form)f(1\(23\))
1539 321 y Fe(\003)1558 337 y Fg(4.)21 b(I.e.,)15 b(a)h(handle)75
394 y(need)g(b)q(e)g(created)g(b)q(efore)g(comm)o(unication)g(o)q(ccurs;)g
(it)f(can)h(b)q(e)g(reused)g(only)g(after)f(the)g(previous)i(use)75
450 y(has)12 b(completed;)h(and)f(it)g(need)h(to)e(b)q(e)h(freed)g(ev)o(en)o
(tually)h(\(of)e(course,)h(one)g(can)g(assume)f(that)g(all)i(handles)75
507 y(are)i(freed)g(at)g(program)f(termination,)h(b)o(y)g(default\).)146
563 y(The)f(c)o(hoice)i(of)e(these)h(sub)q(op)q(erations)g(is)h(somewhat)d
(arbitrary)l(.)20 b(The)15 b(justi\014cation)g(is)g(that)f(com-)75
619 y(m)o(unication)k(ma)o(y)f(b)q(e)h(a)g(length)o(y)g(pro)q(cess)f(one)h
(desires)h(to)d(o)o(v)o(erlap)i(with)g(computation,)f(hence)i(the)75
676 y(separation)g(of)g(2)h(and)f(3;)i(also)e(comm)o(unication)i(setup)e(ma)o
(y)g(in)o(v)o(olv)o(e)h(a)f(signi\014can)o(t)i(o)o(v)o(erhead)e(one)75
732 y(desires)i(to)f(amortize)h(o)o(v)o(er)e(man)o(y)h(successiv)o(e)i(comm)o
(unications)f(with)g(the)g(same)f(c)o(haracteristics,)75 789
y(hence)c(the)g(separation)f(of)f(1)h(and)h(4)f(from)f(2)h(and)g(3.)75
932 y Fh(Issues)75 1035 y Fd(Whic)n(h)20 b(op)r(erations?)75
1121 y Fg(SEND)15 b(and)g(RECEIVE)g(for)g(p)q(oin)o(t)g(to)f(p)q(oin)o(t)i
(comm)o(unication.)k(Longer)15 b(list)h(for)e(collectiv)o(e)j(comm)o(u-)75
1177 y(nication)g(\(note:)k(SEND)16 b(and)g(RECEIVE)g(are)g(particular)g
(case)g(of)g(broadcast,)f(for)g(group)g(of)h(size)h(2;)75 1234
y(this)i(observ)m(ation)g(can)g(b)q(e)g(used)h(to)e(c)o(hec)o(k)h(if)g
(de\014nition)i(of)d(collectiv)o(e)i(comm)o(unication)g(seman)o(tics)75
1290 y(are)15 b(consisten)o(t)g(with)h(de\014nition)h(of)e(p)q(oin)o(t-to-p)q
(oin)o(t)h(comm)o(unication\).)146 1347 y(One)g(can)f(argue)g(for)f(a)h(SEND)
p 684 1347 14 2 v 17 w(RECV)g(\(or)f(EX)o(CHANGE\))h(op)q(eration.)146
1403 y(I)g(prop)q(ose)g(to)g(lea)o(v)o(e)g(out,)f(for)g(the)i(time)f(b)q
(eing,)h(things)f(lik)o(e)i(remote)d(pro)q(cedure)i(calls,)g(monitors,)75
1460 y(atomic)h(op)q(erations,)i(semaphores,)e(activ)o(e)h(messages,)g
(message)f(handlers,)i(etc.)27 b(This,)19 b(in)f(order)g(to)75
1516 y(fo)q(cus)f(initially)j(on)c(a)h(smaller)g(set)g(of)f(issues,)i(with)f
(less)g(dep)q(endencie)q(s)i(on)e(the)g(underlying)i(pro)q(cess)75
1572 y(mo)q(del.)146 1629 y(Opinions?)75 1750 y Fd(What)g(calls)h(are)e(made)
h(a)n(v)m(ailable)h(to)f(the)f(user?)75 1836 y Fg(Options:)75
1941 y Ff(\(1+2+3+4\))23 b Fg(blo)q(c)o(king)16 b(send/receiv)o(e)75
2035 y Ff(\(1+2\))i(\(3+4\))23 b Fg(non)o(blo)q(c)o(king)17
b(send/receiv)o(e,)f(follo)o(w)o(ed)f(b)o(y)h(w)o(ait)75 2128
y Ff(\(1\))i(\(2+3\))g(\(4\))24 b Fg(c)o(hannel)16 b(creation;)f(blo)q(c)o
(king)i(c)o(hannel)f(send/receiv)o(e;)g(c)o(hannel)h(cancelation)75
2222 y Ff(\(1\))h(\(2\))g(\(3\))h(\(4\))k Fg(c)o(hannel)17
b(creation;)e(non)o(blo)q(c)o(king)h(send/receiv)o(e;)g(w)o(ait;)f(c)o
(hannel)h(destruction)146 2327 y(An)o(y)f(more)g(needed?)22
b(An)o(y)15 b(less?)75 2448 y Fd(When)j(is)i(a)f(comm)n(unication)h(op)r
(eration)e(completed?)75 2534 y Fg(The)12 b(main)f(distinction)j(is)e(b)q(et)
o(w)o(een)f Fc(lo)n(c)n(al)g Fg(termination)g(and)h Fc(glob)n(al)f
Fg(termination.)19 b(A)11 b(send)h(terminates)75 2591 y(lo)q(cally)23
b(when)f(data)f(has)h(b)q(een)h(copied)g(out)e(of)g(the)h(sender)g(bu\013er)g
(\(formally)l(,)h(when)f(the)f(sender)75 2647 y(cannot)e(a\013ect)g(an)o
(ymore)g(the)h(outcome)g(of)f(the)h(send)g(op)q(eration\).)33
b(It)20 b(terminates)g(globally)g(when)75 2704 y(data)d(has)h(b)q(een)h
(receiv)o(ed)g(b)o(y)f(the)f(receiv)o(er)i(\(formally)l(,)f(when)h(receiv)o
(er)f(has)g(terminated)g(executing)964 2828 y(2)p eop
%%Page: 3 3
bop 75 45 a Fg(an)o(y)15 b(op)q(eration)h(that)f(logically)j(precedes)f(the)f
(execution)g(of)g(the)g(receiv)o(e\).)22 b(The)16 b(distinction)h(has)f(no)75
102 y(meaning)g(for)e(a)h(receiv)o(e)h({)f(since)i(lo)q(cal)f(termination)g
(of)e(a)h(receiv)o(e)h(implies)i(global)d(termination.)146
158 y(Choices:)131 252 y(1.)22 b(T)l(ermination)16 b(is)f(alw)o(a)o(ys)g(lo)q
(cal.)131 346 y(2.)22 b(T)l(ermination)e(is)g(either)g(lo)q(cal)h(or)e
(global,)i(at)e(user)g(c)o(hoice)i(\(e.g.,)e(user)g(can)h(c)o(ho)q(ose)g(b)q
(et)o(w)o(een)189 402 y(sync)o(hronous)15 b(and)g(async)o(hronous)g(comm)o
(unication\))131 496 y(3.)22 b(T)l(ermination)16 b(is)f(alw)o(a)o(ys)g
(global.)146 590 y(The)21 b(curren)o(t)f(MPI)h(prop)q(osal)g(c)o(ho)q(oses)g
(2.)37 b(If)21 b(w)o(e)g(stic)o(k)g(to)f(this)h(c)o(hoice)h(then)f(I)g
(suggest)g(that)75 646 y(termination)h(mo)q(de)g(\(global)g(or)f(lo)q(cal\))h
(is)g(part)f(of)g(the)h(op)q(eration)f(parameters)g(that)g(are)g(set)g(up)75
703 y(in)g(sub)q(op)q(eration)g(1.)34 b(F)l(urthermore,)21
b(I)f(w)o(ould)h(suggest)e(to)h(o\013er)f(the)h(same)g(option)h(for)e
(collectiv)o(e)75 759 y(comm)o(unications.)146 816 y(Another)13
b(issue)h(is)g(whether)g(termination)g(mo)q(de)f(need)h(b)q(e)h(consisten)o
(t)e(for)g(all)h(participan)o(ts.)20 b(Cur-)75 872 y(ren)o(t)c(MPI)g(prop)q
(osal)g(requires)h(that)e(a)g(sync)o(hronous)h(send)h(b)q(e)g(matc)o(hed)e(b)
o(y)h(a)g(sync)o(hronous)g(receiv)o(e)75 928 y(\(either)i(all)h(participan)o
(ts)f(use)g(lo)q(cal)h(completion)g(or)e(all)i(use)f(global)g(completion\).)
29 b(There)18 b(seem)g(to)75 985 y(b)q(e)d(no)g(comp)q(elling)i(logical)f
(reason)f(for)f(this)h(restriction,)g(and)g(I)g(am)g(not)f(sure)h(it)g(has)g
(signi\014can)o(t)g(im-)75 1041 y(plemen)o(tation)i(adv)m(an)o(tages.)k(The)
16 b(alternativ)o(e)g(is)g(to)f(allo)o(w)h(eac)o(h)g(participan)o(t)g(in)h(a)
e(comm)o(unication)75 1098 y(op)q(eration)h(to)g(c)o(ho)q(ose)g(either)h(lo)q
(cal)h(or)e(global)h(termination)f(\(this)h(b)q(ecomes)g(more)e(signi\014can)
o(t)j(for)d(a)75 1154 y(collectiv)o(e)i(op)q(eration,)e(where)g(the)h(c)o
(hoice)g(is)g(meaningful)g(at)f(more)f(than)i(one)f(pro)q(cess\).)146
1211 y(I)i(assume)h(lo)q(cal)g(termination)g(for)f(sub)q(op)q(eration)h(1)f
({)g(no)h(sync)o(hronization)g(with)g(another)f(pro-)75 1267
y(cessor)e(is)h(required)g(for)f(this)g(phase.)146 1324 y(Opinions?)146
1380 y(Should)h(w)o(e)f(c)o(ho)q(ose)g(1)g(or)g(3,)f(rather)h(than)g(2?)146
1437 y(Should)g(w)o(e)f(use)g(another)g(mec)o(hanism)g(to)g(c)o(ho)q(ose)g
(lo)q(cal)h(and)f(global)h(termination)f(\(e.g.,)f(a)g(global)75
1493 y(\015ag\)?)146 1549 y(Should)g(w)o(e)e(require)h(the)g(c)o(hoice)h(of)e
(\\sync)o(hronous")g(to)g(b)q(e)h(done)g(consisten)o(tly)h(b)q(e)f(all)h
(participan)o(ts)75 1606 y(in)j(a)f(comm)o(unication?)75 1728
y Fd(When)j(do)r(es)g(a)h(call)h(return?)75 1813 y Fg(The)14
b(ob)o(vious)f(c)o(hoice)i(is:)k(\\A)13 b(call)i(return)e(when)h(the)f
(corresp)q(onding)i(sub)q(op)q(eration\(s\))e(terminated".)75
1870 y(An)21 b(alternativ)o(e)f(is)h(to)f(allo)o(w)h(for)f(unsuccessful)i
(return)f(as)f(w)o(ell.)37 b(E.g.,)20 b(send)h(can)g(return)f(unsuc-)75
1926 y(cessfully)l(,)d(if)f(the)f(system)g(cannot)g(accept)g(the)h(message,)e
(for)h(whatev)o(er)g(reasons;)f(or)h(receiv)o(e)h(returns)75
1983 y(unsuccessfully)f(if)e(the)g(receiv)o(e)h(cannot)e(execute)i(within)g
(a)e(set)h(time;)g(and)g(so)g(on.)19 b(This)13 b(is)g(the)g(curren)o(t)75
2039 y(MPI)i(de\014nition.)146 2096 y(My)j(p)q(ersonal)i(c)o(hoice)g(is)g
(against)e(unsuccessful)j(return.)32 b(This)20 b(is)f(more)g(adequate)g(for)f
(system)75 2152 y(programming,)f(rather)h(than)f(application)j(programming;)e
(it)g(in)o(tro)q(duces)h(seman)o(tic)f(dep)q(endencies)75 2209
y(on)h(implemen)o(tation;)i(it)e(forces)f(the)h(user)f(to)g(c)o(hec)o(k)h
(for)f(success)i(at)e(eac)o(h)g(op)q(eration,)i(rather)e(then)75
2265 y(deal)j(with)g(failure)g(of)f(comm)o(unication)h(using)g(an)f
(exception)i(handling)g(mec)o(hanism.)36 b(Of)20 b(course,)75
2322 y(implemen)o(ters)f(are)f(w)o(elcome)g(to)f(pro)o(vide)i(a)e(reasonable)
i(exception)f(handling)i(mec)o(hanism)f(for)e(the)75 2378 y(MPI)e(library)h
({)f(I)h(suggest)e(to)h(lea)o(v)o(e)g(op)q(en)h(the)f(de\014nition)i(of)e
(suc)o(h)h(mec)o(hanism.)146 2434 y(Opinions?)75 2556 y Fd(Correctness)i
(criteria)75 2642 y Fg(I)e(use)f(the)g(follo)o(wing)h(terminology:)964
2828 y(3)p eop
%%Page: 4 4
bop 75 45 a Ff(safe)17 b(program)22 b Fg(A)c(program)f(that)h(should)h
(execute)f(successfully)i(in)f(an)o(y)f(implemen)o(tation,)i(inde-)189
102 y(p)q(enden)o(tly)c(of)f(the)h(amoun)o(t)e(of)h(a)o(v)m(ailable)i(system)
d(resources.)75 195 y Ff(unsafe)j(program)23 b Fg(A)d(program)f(that)g(will)j
(succeed)f(or)f(fail,)i(dep)q(ending)g(on)e(implemen)o(tation)h(or)189
252 y(a)o(v)m(ailable)c(system)d(resources.)75 346 y Ff(erroneous)i(program)
22 b Fg(A)16 b(program)e(that)g(will)j(alw)o(a)o(ys)e(fail.)146
452 y(Examples)g(\(in)o(v)o(olving)h(t)o(w)o(o)e(pro)q(cessors)h(with)h(ids)g
(1)f(and)g(2,)f(and)i(using)g(MPI)f(lik)o(e)h(syn)o(tax\))146
508 y(The)f(follo)o(wing)h(program)e(is)i(safe,)e(and)i(should)g(alw)o(a)o
(ys)e(succeed.)75 659 y Fb(IF)24 b(\(GETID\(\))e(==)i(1\))g(THEN)147
715 y(CALL)f(CSEND\(mode=blocking,)e(buf=sendbuf,)h(dest=2,)h(type=0,)g
(len=1000\))147 772 y(CALL)g(CRECV\(mode=blocking,)e(buf=recdbuf,)h
(source=2,)h(type=0,)g(len=1000\))75 884 y(ELSE)g(!)h(\(GETID\(\))f(==)g(2\))
147 941 y(CALL)g(CRECV\(mode=blocking,)e(buf=recbuf,)h(source=1,)h(type=0,)g
(len=1000\))147 997 y(CALL)g(CSEND\(mode=blocking,)e(buf=sendbuf,)h(dest=1,)h
(type=0,)g(len=1000\))146 1148 y Fg(The)15 b(follo)o(wing)h(program)e(is)i
(erroneous,)e(and)i(should)g(alw)o(a)o(ys)e(fail.)75 1310 y
Fb(IF)24 b(\(GETID\(\))e(==)i(1\))g(THEN)147 1367 y(CALL)f
(CSEND\(mode=synchronous,)e(buf=sendbuf,)h(dest=2,)h(type=0,)g(len=1000\))147
1423 y(CALL)g(CRECV\(mode=synchronous,)e(buf=recdbuf,)h(source=2,)g(type=0,)h
(len=1000\))75 1536 y(ELSE)47 b(!)24 b(\(GETID\(\))f(==)g(2\))147
1593 y(CALL)g(CSEND\(mode=synchronous,)e(buf=sendbuf,)h(dest=1,)h(type=0,)g
(len=1000\))147 1649 y(CALL)g(CRECV\(mode=synchronous,)e(buf=recbuf,)h
(source=1,)h(type=0,)g(len=1000\))146 1755 y Fg(The)12 b(follo)o(wing)h
(program)d(is)j(unsafe,)f(and)h(ma)o(y)e(succeed)i(or)f(fail,)h(dep)q(ending)
h(on)e(implemen)o(tation.)75 1918 y Fb(IF)24 b(\(GETID\(\))e(==)i(1\))g(THEN)
147 1975 y(CALL)f(CSEND\(mode=blocking,)e(buf=sendbuf,)h(dest=2,)h(type=0,)g
(len=1000000\))147 2031 y(CALL)g(CRECV\(mode=blocking,)e(buf=recdbuf,)h
(source=2,)h(type=0,)g(len=1000000\))75 2144 y(ELSE)g(!)h(\(GETID\(\))f(==)g
(2\))147 2200 y(CALL)g(CSEND\(mode=blocking,)e(buf=sendbuf,)h(dest=1,)h
(type=0,)g(len=1000000\))147 2257 y(CALL)g(CRECV\(mode=blocking,)e
(buf=recbuf,)h(source=1,)h(type=0,)g(len=1000000\))146 2363
y Fg(This)14 b(program)f(can)h(succeed)h(only)g(if)f(the)g(system)g(has)g
(su\016cien)o(t)g(bu\013er)g(space)g(to)g(bu\013er)g(1)f(MgB)75
2420 y(of)i(data.)146 2476 y(The)j(strict)g(de\014nition)i(of)e(\\safe")f
(needs)i(to)f(b)q(e)g(somewhat)g(temp)q(ered)h(in)g(practice.)29
b(A)18 b(correct)75 2532 y(sequen)o(tial)13 b(program)d(ma)o(y)h(fail)i(b)q
(ecause)f(of)g(time)g(limits)h(or)e(other)g(resource)h(restrictions.)19
b(Lik)o(ewise,)13 b(a)75 2589 y(safe)h(parallel)i(program)d(ma)o(y)l(,)g
(exceptionally)l(,)k(exceed)e(system)f(resources.)19 b(Still,)d(common)e
(sense)h(can)75 2645 y(di\013eren)o(tiate)i(b)q(et)o(w)o(een)g(resources)f
(that)g(are)h(\\practically)g(un)o(b)q(ounded",)h(i.e.)25 b(with)17
b(limits)g(that)f(are)75 2702 y(unlik)o(ely)k(to)d(b)q(e)h(normally)g(encoun)
o(tered)g(b)o(y)g(correct)f(programs,)g(and)g(resources)h(that)f
(\\practically)964 2828 y(4)p eop
%%Page: 5 5
bop 75 45 a Fg(b)q(ounded",)23 b(i.e.)37 b(with)21 b(limits)h(one)f(encoun)o
(ters)g(frequen)o(tly)g(with)g(correct)g(programs,)f(and)h(whic)o(h)75
102 y(often)13 b(impinges)i(on)f(program)e(p)q(ortabilit)o(y)l(.)20
b(A)14 b(formal)f(de\014nition)i(will)h(assume)d(that)g(some)g(resources)75
158 y(are)19 b(unlimited,)k(and)c(implemen)o(tations)i(will)g(striv)o(e)f(to)
f(pro)o(vide)h(a)f(reasonable)h(appro)o(ximation)f(of)75 214
y(this)f(assumption.)26 b(F)l(urthermore,)17 b(the)g(user)h(should)g(b)q(e)g
(able)g(to)f(query)g(and)g(p)q(ossibly)i(con)o(trol)e(an)o(y)75
271 y(implemen)o(tation)f(sp)q(eci\014c)i(resource)d(limitation)h(that)f
(a\013ects)f(program)g(b)q(eha)o(vior.)146 327 y(One)k(need)g(to)f(allo)o(w)h
(\(indeed,)h(one)f(cannot)f(disallo)o(w\))h(v)o(endors)g(to)e(supp)q(ort)i
(some)f(unsafe)h(pro-)75 384 y(grams)c(as)h(w)o(ell.)21 b(The)15
b(requiremen)o(ts)h(there)f(should)h(b)q(e)g(that)143 478 y
Fa(\017)23 b Fg(The)15 b(seman)o(tics)g(of)g(successful)i(program)d
(execution)i(b)q(e)g(w)o(ell-de\014ned)143 571 y Fa(\017)23
b Fg(The)16 b(system)f(pro)o(vide)i(clear)f(information)h(and)f(p)q(ossibly)h
(con)o(trol)f(on)g(those)g(parameters)f(that)189 628 y(determine)h(the)f(b)q
(eha)o(vior)h(of)f(unsafe)g(programs)f(\(e.g.,)g(bu\013er)h(sizes\).)146
722 y(A)g(handle)j(is)e Fc(active)g Fg(\(at)f(a)g(pro)q(cess\))h(from)f(the)h
(start)f(of)g(sub)q(op)q(eration)i(1)e(to)g(the)h(completion)h(of)75
778 y(sub)q(op)q(eration)f(4)g(for)f(this)h(handle.)22 b(A)15
b(comm)o(unication)i(is)f Fc(active)f Fg(\(at)g(a)g(pro)q(cess\))h(from)e
(the)i(start)e(of)75 835 y(sub)q(op)q(eration)i(2)f(to)g(the)g(completion)h
(of)f(sub)q(op)q(eration)h(3.)k(I)15 b(suggest)g(the)g(follo)o(wing)h(design)
g(p)q(oin)o(t:)131 941 y(1.)22 b(The)13 b(n)o(um)o(b)q(er)g(of)g(activ)o(e)g
(comm)o(unication)g(handles)i(p)q(er)e(pro)q(cess)g(is)h(\\practically)g(un)o
(b)q(ounded".)131 1035 y(2.)22 b(The)d(n)o(um)o(b)q(er)g(of)f(initiated)j
(comm)o(unications)e(p)q(er)h(pro)q(cessor)f(is)g(\\practically)h(un)o(b)q
(ounded".)189 1091 y(\(Note)12 b(that)h(there)g(ma)o(y)g(b)q(e)g(only)h(one)g
(activ)o(e)f(comm)o(unication)h(op)q(eration)f(p)q(er)h(activ)o(e)f
(handle\).)131 1185 y(3.)22 b(The)16 b(amoun)o(t)g(of)g(a)o(v)m(ailable)i
(system)d(bu\013er)i(space)f(is)h(limited)h({)e(a)g(safe)g(program)f(cannot)h
(rely)189 1241 y(on)f(it.)146 1348 y(This)g(design)h(p)q(oin)o(t)g(has)f(the)
h(follo)o(wing)f(implications:)131 1454 y(1.)22 b(A)11 b(t)o(yp)q(e)g(1)f(or)
h(t)o(yp)q(e)g(2)g(sub)q(op)q(eration)g(will)i(alw)o(a)o(ys)d(complete,)i
(indep)q(enden)o(tl)q(y)h(of)e(other)g(pro)q(cesses)189 1510
y(activities.)21 b(Of)15 b(course,)g(the)g(same)g(is)h(true)f(for)g(a)f(t)o
(yp)q(e)i(4)f(sub)q(op)q(eration.)131 1604 y(2.)22 b(The)15
b(successful)h(completion)h(of)d(a)h(t)o(yp)q(e)g(3)g(sub)q(op)q(eration)h
(ma)o(y)e(dep)q(end)j(on)e(the)g(participation)189 1661 y(of)h(other)g(pro)q
(cesses.)24 b(A)17 b(send)g(ma)o(y)f(b)q(e)h(blo)q(c)o(k)o(ed)g(un)o(til)h(a)
e(matc)o(hing)h(receiv)o(e)g(o)q(ccurs.)24 b(And,)17 b(of)189
1717 y(course,)h(a)g(receiv)o(e)h(ma)o(y)e(not)h(complete)g(un)o(til)i(a)d
(matc)o(hing)h(send)h(o)q(ccurs.)29 b(\(This)18 b(extends)h(to)189
1774 y(collectiv)o(e)e(comm)o(unication.\))146 1880 y(T)l(o)e(this,)h(w)o(e)f
(need)i(add)f(p)q(ositiv)o(e)g(requiremen)o(ts)g(for)f(progress)g(and/or)h
(fairness.)21 b(Let's)16 b(sa)o(y)f(that)75 1936 y(a)k(comm)o(unication)h(is)
f Fc(enable)n(d)f Fg(\(at)h(a)f(pro)q(cess\))h(if)h(a)f(matc)o(hing)g(comm)o
(unication)h(is)f(activ)o(e)h(\(i.e.)31 b(a)75 1993 y(matc)o(hing)16
b(receiv)o(e)h(for)e(a)h(send)g(or)f(a)h(matc)o(hing)g(send)g(for)g(a)f
(receiv)o(e\).)23 b(An)16 b(enabled)h(comm)o(unication)75 2049
y(ma)o(y)g(b)q(ecome)i(disabled)h(either)e(b)q(ecause)h(it)g(completes)f
(successfully)i(\(the)e(comm)o(unication)h(o)q(ccurs)75 2106
y(and)d(sub)q(op)q(eration)h(3)e(terminates\))g(or)h(b)q(ecause)g(the)g(matc)
o(hing)g(comm)o(unication)h(b)q(ecomes)f(inactiv)o(e)75 2162
y(\(e.g.,)e(a)h(receiv)o(e)h(that)e(matc)o(hes)h(one)h(send)g(ma)o(y)e(b)q(e)
i(satis\014ed)g(b)o(y)f(another)g(send,)h(th)o(us)f(disabling)i(the)75
2219 y(\014rst)e(send\).)75 2325 y Ff(progress)21 b Fg(If)14
b(some)f(comm)o(unication)h(in)g(the)f(system)g(is)h(enabled)h(then)e(some)g
(comm)o(unication)h(ev)o(en-)189 2381 y(tually)i(o)q(ccurs)f(in)h(the)g
(system.)75 2475 y Ff(fairness)22 b Fg(An)c(activ)o(e)f(comm)o(unication)h
(either)g(completes)g(successfully)h(or)d(b)q(ecomes)i(p)q(ermanen)o(tly)189
2532 y(disabled.)964 2828 y(5)p eop
%%Page: 6 6
bop 146 45 a Fg(W)l(e)19 b(assume)g(in)h(these)f(de\014nitions)i(that)d(eac)o
(h)h(pro)q(cess)g(in)o(v)o(ok)o(e)g(sub)q(op)q(erations)h(in)g(the)f(correct)
75 102 y(order,)c(i.e.)23 b(1\(23\))393 85 y Fe(\003)411 102
y Fg(4.)f(Of)16 b(course,)f(a)h(program)f(where)h(an)g(activ)o(e)g(comm)o
(unication)g(b)q(ecomes)h(p)q(erma-)75 158 y(nen)o(tly)f(disabled)h(\(e.g.,)c
(a)i(send)h(is)f(left)h(forev)o(er)e(with)i(no)f(matc)o(hing)g(receiv)o(e\))h
(is)f(erroneous,)g(and)g(will)75 214 y(not)g(terminate)g(successfully)l(.)146
271 y(The)20 b(enforcemen)o(t)g(of)g(these)g(t)o(w)o(o)f(conditions)i
(requires)g(a)f(\015o)o(w)g(con)o(trol)g(proto)q(col:)29 b(A)21
b(pro)q(cess)75 327 y(should)c(not)f(b)q(e)h(prev)o(en)o(ted)g(from)e
(accepting)j(one)e(message)g(that)g(w)o(as)f(sen)o(t)h(b)q(ecause)i(its)e
(bu\013ers)g(are)75 384 y(full)21 b(with)f(other)g(messages,)g(p)q(ossibly)h
(sen)o(t)f(earlier.)34 b(When)21 b(a)e(receiv)o(e)i(matc)o(hes)e(sev)o(eral)h
(p)q(ossible)75 440 y(messages)d(\(e.g.,)f(a)h(receiv)o(e)h(with)g(a)f
(\\don't)f(care")h(sender)h(\014eld\))g(then)g(alternativ)o(e)g(options)f
(should)75 497 y(b)q(e)f(considered)g(fairly)g(\(e.g.,)e(b)o(y)h(using)h(an)f
(LR)o(U)h(p)q(olicy)h(when)e(considering)i(matc)o(hing)e(senders\).)146
553 y(A\014cionados)d(of)f(formalism)h(will)i(note)d(that)g(I)h(used)g(the)g
(w)o(eak)o(est)f(de\014nition)j(of)d(fairness)h(\(ev)o(en)o(tual)75
610 y(fairness\),)j(rather)f(than)h(b)q(ounded)i(fairness)f(or)e(other)h
(alternativ)o(es.)146 666 y(Examples:)146 723 y(The)g(follo)o(wing)h
(programs)e(are)h(safe,)f(and)i(should)g(succeed:)75 823 y
Fb(!)24 b(assume)f(only)g(two)h(processes,)e(numbered)h(1)h(and)f(2)75
936 y(IF)h(\(GETID\(\))e(==)i(1\))g(THEN)147 992 y(DO)f(I=0,)g(N)218
1048 y(CALL)g(CSEND\(mode=nonblocking,)e(buf=buf\(I\),)i(dest=2,)f(type=I,)h
(len=1000\))147 1105 y(END)g(DO)75 1218 y(ELSE)g(!)h(\(GETID\(\))f(==)g(2\))
147 1274 y(DO)g(I=0,)g(N)218 1331 y(CALL)g(CRECV\(mode=nonblocking,)e
(buf=buf\(I\),)i(dest=2,)f(type=N-I,)h(len=1000\))147 1387
y(END)g(DO)146 1487 y Fg(Pro)q(cess)16 b(1)g(uses)h(non)o(blo)q(c)o(king)h
(sends)f(to)f(send)h(a)f(sequence)i(of)e(messages)g(to)f(pro)q(cess)i(2;)g
(pro)q(cess)75 1544 y(2)d(receiv)o(es)h(these)f(messages)f(in)i(the)f(rev)o
(erse)g(order,)g(using)h(non)o(blo)q(c)o(king)g(receiv)o(es.)20
b(In)15 b(practice,)g(suc)o(h)75 1600 y(program)e(ma)o(y)g(fail)h(if)g(the)g
(n)o(um)o(b)q(er)g(of)g(p)q(ending)h(messages)f(implied)i(b)o(y)d(this)i
(program)d(is)i(larger)g(than)75 1657 y(the)20 b(system)g(limit.)36
b(But)21 b(the)f(system)g(limit)h(should)h(b)q(e)e(large)h(enough)f(as)g(to)g
(mak)o(e)f(suc)o(h)i(failure)75 1713 y(extremely)16 b(unlik)o(ely)l(.)75
1813 y Fb(!)24 b(Assume)f(a)g(large)h(number)f(of)g(processes)75
1926 y(!)h(Consumer)e(code)75 1983 y(IF)i(\(GETID\(\))e(==)i(1\))g(THEN)123
2039 y(DO)f(I=)h(1,)f(INFOG\(\))194 2095 y(CALL)h(CRECV\(mode=blocking,)d
(buf=buf\(I\),)h(source=I,)h(type=0,)g(len=1000\))123 2152
y(END)g(DO)75 2265 y(!)h(Producers)75 2321 y(ELSE)123 2378
y(CALL)f(CSEND\(mode=blocking,)e(buf=sendbuf,)h(dest=1,)h(type=0,)g
(len=1000\))146 2478 y Fg(All)17 b(pro)q(cesses)f(send)g(a)f(message)h(to)f
(pro)q(cess)h(1.)21 b(Pro)q(cess)15 b(1)h(receiv)o(es)g(these)g(messages)f
(in)i(a)e(\014xed)75 2534 y(order.)31 b(A)20 b(\015o)o(w)e(con)o(trol)h
(proto)q(col)g(is)h(needed)g(to)f(mak)o(e)f(sure)h(that)g(bu\013ers)g(at)f
(pro)q(cess)i(1)f(will)h(not)75 2591 y(o)o(v)o(er\015o)o(w.)e(The)c(sending)h
(pro)q(cesses)f(ma)o(y)g(b)q(e)g(dela)o(y)o(ed)h(un)o(til)g(the)f(receiv)o(e)
g(pro)q(cess)g(is)h(ready)f(to)f(accept)75 2647 y(their)j(message.)146
2704 y(Consider)f(the)h(follo)o(wing)g(implemen)o(tation)g(alternativ)o(es)f
(for)g(this)h(co)q(de:)964 2828 y(6)p eop
%%Page: 7 7
bop 143 45 a Fa(\017)23 b Fg(Messages)18 b(are)h(sen)o(t)g(immediately)i(and)
e(stored)g(in)h(the)f(ph)o(ysical)i(memory)d(of)h(the)g(receiving)189
102 y(no)q(de)g({)g(no)g(pro)o(vision)g(for)g(retry)l(.)31
b(This)19 b(is)h(a)e(bad)i(implemen)o(tation)g(since)g(ph)o(ysical)g(storage)
189 158 y(limits)c(are)f(lik)o(ely)i(to)e(b)q(e)g(encoun)o(tered.)143
252 y Fa(\017)23 b Fg(Messages)c(are)g(sen)o(t)h(immediately)h(and)f(stored)f
(in)i(the)f(receiv)o(er)g(ph)o(ysical)i(memory)l(.)33 b(If)20
b(the)189 308 y(receiv)o(er)e(is)g(unable)h(to)f(receiv)o(e)g(the)g(message,)
g(the)f(send)i(is)f(retried.)28 b(This)19 b(is)f(a)f(correct,)h(but)189
365 y(p)q(ossibly)e(ine\016cien)o(t)h(implemen)o(tation.)143
459 y Fa(\017)23 b Fg(A)16 b(\\request-to-send")h(proto)q(col)g(is)g(used;)h
(the)f(receiv)o(er)g(allo)o(ws)g(the)g(send)g(to)g(pro)q(ceed)g(only)g(if)189
515 y(it)g(has)g(storage)f(for)h(the)g(message.)26 b(The)18
b(receiv)o(ers)g(need)g(to)e(store)h(information)g(on)h(p)q(ending,)189
571 y(unsatis\014ed)13 b(requests)g(to)f(send.)19 b(The)13
b(maxim)o(um)f(n)o(um)o(b)q(er)h(of)f(p)q(ending)j(requests)d(at)g(a)g(no)q
(de)h(is)g(a)189 628 y(system)f(limit)i(that)e(should)i(b)q(e)f(set)f(large)h
(enough)g(as)f(to)g(b)q(e)i(considered)g(\\practically)g(in\014nite".)146
722 y(Opinions?)146 778 y(Should)k(w)o(e)e(b)q(e)h(ev)o(en)h(more)e
(restrictiv)o(e)h(and)g(require)g(that)g(safe)f(programs)f(run)i(correctly)l
(,)h(ev)o(en)75 835 y(when)c(exceeding)h(\\v)o(ery)d(large")h(resource)h
(limits?)21 b(\(Or)13 b(should)i(w)o(e)e(a)o(v)o(oid)g(to)f(burden)j(the)e
(implemen-)75 891 y(tation)i(with)g(requiremen)o(ts)h(to)f(handle)h(what)f
(most)f(lik)o(ely)j(are)e(pathologic)h(programs?\))146 948
y(Should)h(w)o(e)f(try)g(to)g(b)q(e)h(more)f(formal)g(in)h(de\014ning)h(when)
f(some)f(of)g(the)h(\\unsafe")f(programs)f(will)75 1004 y(run)h(to)g
(completions?)24 b(\(Can)16 b(w)o(e)g(do)g(it)g(without)g(b)q(eing)i(more)d
(sp)q(eci\014c)j(ab)q(out)e(the)h(implemen)o(tation)75 1060
y(mo)q(del?\))146 1117 y(Should)f(w)o(e)f(require)h(fairness?)21
b(Should)c(w)o(e)d(ha)o(v)o(e)h(a)g(stronger)f(requiremen)o(t)i(of)f
(fairness?)75 1260 y Fh(What)23 b(are)g(the)g(comm)n(unication)d(parameters?)
75 1363 y Fd(Message)e(data)i(\(bu\013er\))131 1449 y Fg(1.)i(scalar)15
b(\(b)o(yte/halfw)o(ord/w)o(ord/doublew)o(ord\),)e(presumably)j(coming)f
(from)g(a)g(register)131 1543 y(2.)22 b(Con)o(tiguous)15 b(space)g(in)h
(memory)f(\(initial)i(address/length\))131 1637 y(3.)22 b(Bu\013er)15
b(with)g(constan)o(t)g(stride)g(\(initial)i(address/size)f(of)f(eac)o(h)g
(blo)q(c)o(k/stride/n)o(um)o(b)q(er)i(blo)q(c)o(ks\))131 1731
y(4.)22 b(A)15 b(t)o(yp)q(ed)g(message)g(\(of)g(a)f(t)o(yp)q(e)i(supp)q
(orted)g(in)g(the)f(domain)g(language\).)131 1824 y(5.)22 b(A)d(union)i(of)d
(sev)o(eral)i(messages)f(\(p)q(ossibly)i(sp)q(eci\014ed)g(b)o(y)e(an)h(arra)o
(y)e(of)h(p)q(oin)o(ters)h(to)e(message)189 1881 y(descriptors\).)g(The)13
b(seman)o(tics)f(of)f(a)h(union)h(is)f(probably)h(conjunctiv)o(e)f(at)g(the)g
(sender)g(end)h(\(send)189 1937 y(all\);)g(at)f(the)h(receiv)o(e)g(end,)h(it)
f(ma)o(y)e(b)q(e)j(conjunctiv)o(e)f(\(receiv)o(e)g(all\))h(or)e(disjunctiv)o
(e)i(\(receiv)o(e)f(an)o(y\).)146 2044 y(The)j(curren)o(t)g(MPI)f(prop)q
(osal)i(has)e(2)h(and)g(3)g(\(2)f(is)h(really)h(a)f(particular)g(case)g(of)g
(3\).)21 b(Do)15 b(w)o(e)h(w)o(an)o(t)75 2100 y(more?)k(In)c(particular,)g
(do)f(w)o(e)g(w)o(an)o(t)f(t)o(yp)q(ed)h(messages?)20 b(Ho)o(w)15
b(general?)75 2222 y Fd(Groups)k(and)g(con)n(text)75 2307 y
Fg(Messages)c(are)g(tagged)g(b)o(y)g(pro)q(cess)h(names)f(\(sender)h(and)f
(receiv)o(er\))h(and)g(t)o(yp)q(e)f(names.)21 b(Both)15 b(names)75
2364 y(spaces)g(can)f(b)q(e)i(\015at)e(or)g(structured.)20
b(If)14 b(a)h(\015at)f(pro)q(cess)h(name)f(space)h(is)g(used,)g(then)g(a)f
(pro)q(cess)h(names)75 2420 y(is)e(an)f(in)o(teger)g(\(from)f(0)h(to)f(n)o
(um)o(b)q(er)p 687 2420 14 2 v 17 w(of)p 741 2420 V 16 w(pro)q(cesses-1,)i
(for)e(C)h(think)o(ers\).)19 b(If)13 b(a)e(structured)i(pro)q(cess)f(name)75
2477 y(space)18 b(is)g(used)f(then)h(a)f(pro)q(cess)h(name)f(is)h(a)f(pair)h
(of)f(the)g(form)g(\(group,)g(rank\).)26 b(Similarly)19 b(in)f(a)f(\015at)75
2533 y(t)o(yp)q(e)g(name)h(space,)g(a)f(t)o(yp)q(e)g(is)h(a)f(n)o(um)o(b)q
(er)h(in)g(a)f(range;)h(in)g(a)f(structured)g(t)o(yp)q(e)h(name)f(space,)h
(it)f(is)h(a)75 2590 y(pair)e(of)e(the)i(form)e(\(group,)g(lo)q(cal)p
659 2590 V 18 w(t)o(yp)q(e\).)146 2646 y(The)21 b(usefulness)h(of)f(groups)f
(seem)h(clear)h(in)f(the)g(con)o(text)g(of)f(collectiv)o(e)j(op)q(erations,)f
(where)f(a)75 2703 y(groupid)c(is)g(a)f(handle)h(to)f(sp)q(ecify)h(the)g(set)
f(of)f(participan)o(ts)i(in)g(a)f(collectiv)o(e)i(comm)o(unication)f(\(Note:)
964 2828 y(7)p eop
%%Page: 8 8
bop 75 45 a Fg(some)15 b(of)h(the)f(discussions)j(on)d(groups)g(seem)h(to)f
(assume)h(that)f(a)g(group)g(is)i(alw)o(a)o(ys)e(represen)o(ted)h(b)o(y)f(a)
75 102 y(mem)o(b)q(ership)f(list)g(that)f(is)h(presen)o(t)f(at)f(eac)o(h)i
(group)f(mem)o(b)q(er.)19 b(While)14 b(is)g(the)f(represen)o(tation)h(lik)o
(ely)h(to)75 158 y(b)q(e)g(used)h(on)e(small)i(systems,)e(it)h(is)g(b)o(y)g
(no)g(means)f(the)h(unique)h(p)q(ossible)h(one.)j(An)o(y)15
b(connected)g(graph)75 214 y(structure)h(can)h(b)q(e)g(used)g(to)f(k)o(eep)h
(trac)o(k)f(of)g(group)g(mem)o(b)q(ership,)i(with)f(ob)o(vious)f(tradeo\013s)
g(b)q(et)o(w)o(een)75 271 y(storage)h(and)h(p)q(erformance.)28
b(A)18 b(complete)g(list)h(at)e(eac)o(h)h(no)q(de)h(is)f(one)g(extreme)g(of)g
(this,)g(namely)l(,)h(a)75 327 y(complete)g(graph.)28 b(Therefore,)19
b(a)e(group)h(handle)i(is)e(a)g(more)g(abstract)f(and)h(more)g(general)g
(concept)75 384 y(than)d(a)g(list)h(of)f(group)g(mem)o(b)q(ers.\))146
440 y(The)h(collectiv)o(e)j(comm)o(unication)e(sub)q(committee)g(has)g(to)f
(deal)h(with)g(mec)o(hanisms)g(for)f(creating)75 497 y(and)j(destro)o(ying)f
(groups)g(\(for)g(the)g(record,)h(I)g(fa)o(v)o(or)e(dynamic)i(group)g
(creation)f(b)q(oth)h(b)o(y)f(explicitly)75 553 y(listing)j(group)f(mem)o(b)q
(ers)f(and)h(b)o(y)g(partitioning)h(an)e(existing)i(group.)33
b(I)20 b(do)g(not)f(fa)o(v)o(or)g(a)g(complex)75 610 y(stac)o(k)e(or)h(tree)g
(mec)o(hanism)h(to)e(manage)h(groups)f(and)i(na)o(vigate)e(from)h(one)g
(group)g(to)f(another)h({)g(at)75 666 y(least)d(not)g(in)h(the)f(basic)h(MPI)
f(prop)q(osal\).)146 723 y(In)i(the)f(con)o(text)g(of)g(p)q(oin)o(t-to-p)q
(oin)o(t)h(comm)o(unication,)g(the)f(issue)h(is)g(whether)g(w)o(e)f(w)o(an)o
(t)f(to)h(use)g(a)75 779 y(structured)f(name)g(space)h(for)e(t)o(yp)q(e)i
(and)f(pro)q(cess)h(argumen)o(ts)e(and,)h(if)h(so,)e(ho)o(w.)146
835 y(The)21 b(adv)m(an)o(tage)h(of)f(ha)o(ving)h(a)f(structured)h(name)g
(space)f(for)h(pro)q(cesses)g(is)g(that)f(it)h(simpli\014es)75
892 y(com)o(bining)14 b(of)e(distinct)i(parallel)g(co)q(des)f(in)h(a)e(lo)q
(osely)i(coupled)g(application:)20 b(Eac)o(h)13 b(functional)h(subset)75
948 y(can)j(use)h(message)f(passing)h(within)g(its)g(con)o(text,)f(with)g(no)
h(c)o(hanges)f(in)h(the)f(lo)q(cal)i(co)q(de.)27 b(The)17 b(same)75
1005 y(concern)k(for)f(mo)q(dularit)o(y)h(militates)h(for)e(a)g(structured)g
(t)o(yp)q(e)h(space.)36 b(This)21 b(do)q(es)g(not)g(necessarily)75
1061 y(implies)j(or)d(requires)h(a)f(stac)o(k)g(mec)o(hanism)h(for)f
(managing)g(groups,)i(or)e(a)g(tree)g(structure)h(among)75
1118 y(groups.)146 1174 y(First,)14 b(t)o(w)o(o)g(remarks:)143
1268 y Fa(\017)23 b Fg(The)c(preexisting)h(group)f Fb(ALL)f
Fg(that)g(includes)j(all)f(pro)q(cesses)g(pro)o(vides)f(a)g(global)g(con)o
(text.)31 b(If)189 1324 y(all)17 b(comm)o(unications)f(use)h(this)f(con)o
(text,)f(then)i(one)f(defaults)g(to)g(\015at)f(name)h(space.)23
b(With)16 b(the)189 1381 y(righ)o(t)g(syn)o(tax,)h(the)g(existence)h(of)f(a)g
(structured)g(name)g(space)g(can)g(b)q(e)h(ignored)g(b)o(y)f(users)g(that)189
1437 y(prefer)e(a)g(\015at,)f(global)i(name)f(space.)143 1531
y Fa(\017)23 b Fg(A)c(structured)f(name)h(space)g(can)g(alw)o(a)o(ys)g(fak)o
(ed,)g(with)g(no)g(c)o(hanges)g(in)g(the)g(comm)o(unication)189
1588 y(op)q(erations:)g(Replace)d(eac)o(h)e Fb(process)p 868
1588 15 2 v 16 w(id)g Fg(actual)h(parameter)e(b)o(y)h(a)g(a)g(reference)h(to)
e(a)h(function)189 1644 y Fb(process\(rank,)22 b(group)p 646
1644 V 16 w(id\))p Fg(;)c(replace)h(eac)o(h)e Fb(type)h Fg(actual)f
(parameter)g(b)o(y)h(a)f(reference)h(to)f(a)189 1701 y(function)f
Fb(type\(local)p 610 1701 V 15 w(type,)24 b(group)p 889 1701
V 16 w(id\))p Fg(.)146 1794 y(F)l(or)16 b(simplicit)o(y)l(,)j(I)e(shall)h
(assume)f(the)f(same)h(group)f(con)o(text)h(is)g(used)g(b)q(oth)g(for)f
(relativ)o(e)i(pro)q(cess)75 1851 y(n)o(um)o(b)q(ering)h(and)g(for)f(relativ)
o(e)h(t)o(yp)q(e)g(naming.)30 b(I)19 b(b)q(eliev)o(e)h(this)f(simpli\014es)i
(the)d(discussion,)j(without)75 1907 y(in)o(tro)q(ducing)13
b(undue)g(restrictions.)20 b(A)12 b(con)o(text)f(for)g(a)h(comm)o(unication)g
(op)q(eration)h(can)f(b)q(e)g(established)75 1964 y(in)k(t)o(w)o(o)e(w)o(a)o
(ys:)131 2070 y(1.)22 b(The)f(curren)o(t)h(scop)q(e)g(\(curren)o(t)f(group\))
g(of)g(a)g(comm)o(unication)h(op)q(eration)g(is)g(implicit;)27
b(it)21 b(is)189 2126 y(established)16 b(b)o(y)g(the)f(last)g(executed)h(con)
o(text)f(con)o(trolling)h(call)g(\()p Fb(MPI)p 1401 2126 V
17 w(PUSHC)e Fg(and)i Fb(MPI)p 1713 2126 V 16 w(POPC)f Fg(in)189
2183 y(the)e(curren)o(t)h(draft\).)k(Th)o(us,)c(an)o(y)f(pro)q(cess)h(n)o(um)
o(b)q(er)h(is)f(understo)q(o)q(d)g(to)f(b)q(e)i(relativ)o(e)f(rank)f(in)i
(the)189 2239 y(curren)o(t)g(group,)f(and)h(an)o(y)g(t)o(yp)q(e)g(name)g(is)h
(understo)q(o)q(d)f(to)g(b)q(e)g(relativ)o(e)h(to)e(curren)o(t)h(group,)g
(and)189 2296 y(do)q(es)j(not)f(con\015icts)i(with)f(t)o(yp)q(e)h(names)e
(used)i(within)g(other)f(groups.)27 b(Of)18 b(course,)h(the)f(initial)189
2352 y(scop)q(e)d(is)g Fb(ALL)p Fg(,)e(and)i(the)g(system)f(defaults)h(to)f
(a)g(\015at)g(name)h(space)g(if)g(scop)q(e)g(setting)f(commands)189
2409 y(are)h(nev)o(er)g(used.)131 2503 y(2.)22 b(The)g(con)o(text)g(of)f(a)h
(comm)o(unication)h(op)q(erations)f(need)h(to)f(b)q(e)h(explicitly)i(sp)q
(eci\014ed)f(in)f(the)189 2559 y(comm)o(unication)15 b(op)q(eration)f
(itself.)21 b(A)14 b(pro)q(cess)h(ma)o(y)e(b)q(elong)j(to)d(sev)o(eral)i
(groups)f(at)f(an)o(y)h(p)q(oin)o(t)189 2615 y(in)19 b(time,)g(and)g(ma)o(y)f
(use)h(an)o(y)f(of)g(these)h(groups)f(as)g(scop)q(e)h(for)f(a)g(comm)o
(unication)h(op)q(eration.)189 2672 y(Again,)14 b(the)f(initial)j(scop)q(e)e
Fb(ALL)f Fg(is)h(prede\014ned,)h(and)f(can)g(b)q(e)g(used)g(as)g(a)f(\015at)g
(name)h(space.)19 b(\(In)14 b(a)964 2828 y(8)p eop
%%Page: 9 9
bop 189 45 a Fg(language)13 b(where)g(argumen)o(ts)f(are)h(optional,)h(con)o
(text)e(w)o(ould)i(b)q(e)g(an)f(optional)g(parameter)g(with)189
102 y(default)i(v)m(alue)i Fb(ALL)p Fg(.\))146 208 y(The)h(adv)m(an)o(tage)f
(of)g(an)h(explicit)i(con)o(text)d(parameter)g(is)h(that)g(it)g(prev)o(en)o
(ts)f(the)h(confusion)h(that)75 264 y(o)q(ccurs)13 b(when)g(an)g(implicit)i
(con)o(text)d(is)h(c)o(hanged)g(mid)g(comm)o(unication.)20
b(More)12 b(generally)l(,)i(it)f(prev)o(en)o(ts)75 321 y(the)e(confusion)h
(arising)g(when)g(the)f(seman)o(tics)h(of)e(an)i(op)q(eration)f(is)h
(quali\014ed)h(b)o(y)e(a)g(scop)q(e)h(that)e(dep)q(ends)75
377 y(on)18 b(the)g(con)o(trol)g(\015o)o(w)g(of)g(the)g(program,)g(rather)f
(than)h(its)h(static)f(structure.)29 b(The)18 b(disadv)m(an)o(tage)g(is)75
434 y(the)e(need)g(for)f(an)g(additional)i(parameter,)d(in)j(languages)e
(that)g(don't)g(ha)o(v)o(e)g(optional)h(parameters)e(or)75
490 y(o)o(v)o(erloading)h(of)g(pro)q(cedures.)146 547 y(Opinions?)75
690 y Fh(Matc)n(hing)23 b(of)g(send)g(and)h(receiv)n(e)75 793
y Fd(receiv)n(e)18 b(criteria)75 879 y Fg(Messages)c(are)h(matc)o(hed)g(b)o
(y)h(sender)f(and)h(t)o(yp)q(e,)f(where)g(eac)o(h)g(can)h(b)q(e)g(a)e
(\\don't)h(care".)146 935 y(Our)f(exp)q(erience)j(is)e(that)f(matc)o(hing)g
(b)o(y)g(t)o(yp)q(e)h(only)l(,)g(or)f(disallo)o(wing)i(\\don't)e(care")g(in)h
(the)f(sender)75 992 y(\014eld)20 b(signi\014can)o(tly)h(simpli\014es)g(the)e
(implemen)o(tation)i({)d(but)h(some)g(users)g(complained)i(ab)q(out)e(suc)o
(h)75 1048 y(restriction.)146 1105 y(Also,)c(do)g(w)o(e)g(w)o(an)o(t)f(to)g
(b)q(e)i(explicit)i(ab)q(out)d(the)g(don't)g(care)g(v)m(alue,)h(or)e(use)i
(named)f(constan)o(ts?)146 1161 y(Opinions?)75 1283 y Fd(Matc)n(hing)20
b(of)f(data)75 1369 y Fg(F)l(or)c(un)o(t)o(yp)q(ed)g(messages)g(the)g
(options)h(are)131 1462 y(1.)22 b(Send)16 b(and)f(receiv)o(e)h(bu\013er)f(ha)
o(v)o(e)g(same)g(size)131 1556 y(2.)22 b(Receiv)o(e)16 b(bu\013er)g(is)f(no)g
(shorter)g(than)g(send)h(bu\013er)131 1650 y(3.)22 b(No)15
b(constrain)o(ts)f(\(messages)h(ma)o(y)f(b)q(e)i(truncated\).)131
1744 y(4.)22 b(User)15 b(c)o(ho)q(ose)g(one)g(of)g(the)g(ab)q(o)o(v)o(e)g
(options)h(\(one)f(more)f(call)j(parameter,)d(or)g(a)h(global)h(\015ag\).)146
1838 y(Choices)f(should)g(b)q(e)g(the)f(same)g(for)f(all)j(t)o(yp)q(es)e(of)g
(send)h(op)q(eration)f(\(the)g(curren)o(t)g(MPI)g(draft)g(seem)75
1894 y(to)h(allo)o(w)g(truncation)g(for)g(con)o(tiguous)g(data,)f(but)i
(disallo)o(w)g(it)f(for)g(receiv)o(e)h(with)g(stride\))146
1951 y(The)d(EUI)h(prop)q(osal)f(uses)g(option)h(4.)19 b(I)13
b(w)o(ould)h(b)q(e)g(happier)g(with)f(2,)g(but)h(am)e(uncomfortable)i(with)75
2007 y(3)i(\(truncation)h(seems)g(to)f(fall)i(in)f(the)g(category)f(of)g
(comm)o(unication)i(errors,)e(for)g(whic)o(h)h(I)h(assume)e(a)75
2063 y(global)g(exception)g(handling)h(mec)o(hanism\).)146
2120 y(Opinions?)146 2176 y(If)12 b(t)o(yp)q(ed)g(messages)g(are)g(supp)q
(orted)g(then)h(one)f(should)h(sp)q(ell)h(out)e(requiremen)o(ts)g(on)g(t)o
(yp)q(e)g(compat-)75 2233 y(ibilit)o(y)18 b(\(e.g.,)d(can)h(t)o(w)o(o)e(real)
i(n)o(um)o(b)q(ers)g(b)q(e)h(receiv)o(ed)g(in)o(to)f(a)g(complex)g(n)o(um)o
(b)q(er?\))23 b({)16 b(this)g(is)g(probably)75 2289 y(sp)q(eci\014c)h(to)e
(eac)o(h)g(language)g(binding.)146 2346 y(Opinions?)75 2489
y Fh(Syn)n(tax)75 2590 y Fg(This)h(ma)o(y)e(b)q(e,)i(of)f(course,)f(a)h(sub)s
(ject)g(of)g(endless)i(dispute.)k(A)15 b(few)g(ob)o(vious)g(guidelines:)143
2684 y Fa(\017)23 b Fg(Short,)14 b(mnemonic)i(names)964 2828
y(9)p eop
%%Page: 10 10
bop 143 45 a Fa(\017)23 b Fg(Systematic)15 b(naming)h(con)o(v)o(en)o(tion)143
137 y Fa(\017)23 b Fg(Systematic)15 b(ordering)g(of)g(parameters)143
230 y Fa(\017)23 b Fg(Use,)15 b(in)h(languages)g(where)g(this)f(is)h(p)q
(ossible,)h(of)e(optional)h(parameters)f(and)h(k)o(eyw)o(ord)e(param-)189
286 y(eters.)143 379 y Fa(\017)23 b Fg(Use,)15 b(in)h(languages)f(where)g
(this)h(p)q(ossible,)h(of)d(o)o(v)o(erloading.)146 469 y(I)d(heard)g(in)h
(our)f(last)g(meeting)g(a)g(preference)h(for)f(m)o(ultiple)h(function)g
(names,)g(rather)e(than)h(m)o(ultiple)75 525 y(mo)q(des.)146
582 y(Th)o(us,)f(in)h(C++)g(or)f(F90,)f(one)i(could)g(ha)o(v)o(e)f(the)g(c)o
(hoice)h(of)f(the)g(t)o(yp)q(e)g(of)g(datum)g(sen)o(t)g(\(scalar/con)o
(tiguous)75 638 y(v)o(ector/noncon)o(tiguous\))15 b(b)q(e)i(dictated)g(b)o(y)
f(the)h(t)o(yp)q(e)f(and)h(n)o(um)o(b)q(er)f(of)g(parameters,)f(rather)h
(than)g(b)q(e)75 695 y(enco)q(ded)f(in)f(the)g(function)g(name.)19
b(Then)14 b(a)f(p)q(ossible)i(naming)f(c)o(hoice)h(is)f Fb(mode)23
b(|)h(operation)p Fg(,)12 b(where)75 751 y Fb(mode)18 b Fg(=)g
Fb(init)g Fg(\(1\),)f Fb(nonblocking)g Fg(\(1+2\),)h Fb(blocking)f
Fg(\(1+2+3+4,)h(lo)q(cal)h(termination\),)g(or)f Fb(sync)75
808 y Fg(\(1+2+3+4)d(global)h(termination\),)f(and)g Fb(operation)f
Fg(=)h(send,)h(or)e(recv.)146 864 y(In)h(addition,)h(one)f(has)g
Fb(DO\(handle\))p Fg(,)f Fb(START\(handle\))p Fg(,)e Fb(AWAIT\(handle\))i
Fg(and)h Fb(FREE\(handle\))p Fg(.)146 921 y(Another)21 b(issue)i(is)f
(function)g(vs)f(pro)q(cedure)i(call,)h(in)e(F)l(ortran.)38
b(Pro)q(cedure)22 b(calls)h(seem)e(more)75 977 y(natural)15
b(in)h(F)l(ortran,)e(where)h(function)h(in)o(v)o(o)q(cations)g(cannot)f(b)q
(e)h(used)g(as)e(statemen)o(ts.)146 1033 y(Opinions?)22 b(Preferences)16
b(for)f(mnemonics?)21 b(Suggestions)16 b(for)e(F77)h(and)g(C?)75
1176 y Fh(Miscelania)75 1277 y Fg(Do)h(w)o(e)g(w)o(an)o(t)g(a)g
Fb(TEST)p Fg(,)f(a)i(non)o(blo)q(c)o(king)h Fb(AWAIT)d Fg(op)q(eration?)25
b(\(Alw)o(a)o(ys)16 b(returns;)h(a)f(successful)i(return)75
1334 y(is)e(equiv)m(alen)o(t)h(to)d(a)h(successful)i(return)e(of)g(a)f(blo)q
(c)o(king)j Fb(AWAIT)p Fg(\).)146 1390 y(Do)d(w)o(e)h(w)o(an)o(t)f(to)h
Fb(AWAIT)f Fg(sev)o(eral)i(messages?)146 1447 y(Do)h(w)o(e)h(w)o(an)o(t)f(a)g
Fb(PROBE)h Fg(function)h(\(tells)f(me)g(whic)o(h)h(messages)f(are)g(w)o
(aiting)g(to)f(b)q(e)i(receiv)o(ed)g(b)o(y)75 1503 y(me\)?)146
1560 y(Where)12 b(do)h(w)o(e)f(return)h(information)g(on)g(parameters)f(of)g
(receiv)o(ed)i(messages)e(suc)o(h)h(as)f(length,)i(and)75 1616
y(t)o(yp)q(e?)24 b(The)16 b(curren)o(t)g(MPI)h(prop)q(osal)f(has)g(length)h
(b)q(e)g(the)f(v)m(alue)i(returned)e(b)o(y)h(the)f(receiv)o(e)h(function)75
1673 y(and)d(t)o(yp)q(e)g(returned)h(b)o(y)f(a)f(subsequen)o(t)i(call)g(to)e
Fb(MP)p 964 1673 15 2 v 17 w(INFOT)p Fg(.)g(Another)h(natural)g(c)o(hoice)h
(w)o(ould)f(seem)h(to)75 1729 y(b)q(e)f(that)f(that)f(length)i(and)g(t)o(yp)q
(e)f(are)g(returned)h(b)o(y)f(the)h(len)g(and)g(t)o(yp)q(e)f(parameters)f(of)
h(the)h(initial)h(call,)75 1786 y(but)g(this)h(is)g(error)e(prone:)143
1876 y Fa(\017)23 b Fg(The)d(v)m(alues)h(are)e(returned)i(async)o(hronously)f
(for)f(non)o(blo)q(c)o(king)j(receiv)o(es.)35 b(The)20 b(user)g(has)g(to)189
1932 y(remem)o(b)q(er)11 b(not)h(to)f(touc)o(h)g(the)h(actual)g(len)g(and)g
(t)o(yp)q(e)g(parameters,)f(in)h(addition)h(of)e(not)h(touc)o(hing)189
1989 y(the)j(receiv)o(e)h(bu\013er,)f(un)o(til)h(the)f(op)q(eration)h
(completes.)143 2081 y Fa(\017)23 b Fg(A)f(natural)h(implemen)o(tation)h(w)o
(ould)f(b)q(e)g(to)f(alw)o(a)o(ys)g(return)g(the)h(length)g(and)g(t)o(yp)q(e)
g(of)f(the)189 2138 y(receiv)o(ed)f(messages.)36 b(Ho)o(w)o(ev)o(er,)20
b(most)g(users)g(will)i(assume)f(that)e(the)i(actual)g(len)g(and)g(t)o(yp)q
(e)189 2194 y(parameters)14 b(are)h(not)g(up)q(dated)h(when)f(their)h(v)m
(alue)h(is)e(not)g(\\don't)f(care".)143 2286 y Fa(\017)23 b
Fg(The)13 b(user)h(will)h(not)e(b)q(e)h(able)g(to)f(use)h(constan)o(ts)e(as)h
(actual)h(\\don't)f(care")g(parameter)f(v)m(alues)j(\(or)189
2343 y(an)o(ytime,)g(if)g(the)g(\\natural")g(implemen)o(tation)i(is)e(allo)o
(w)o(ed\))143 2435 y Fa(\017)23 b Fg(This)17 b(c)o(hoice)h(b)q(ecomes)g(ev)o
(en)f(less)h(app)q(etizing)h(when)e(a)g(handle)h(is)g(reused;)g(then)g(the)f
(len)h(and)189 2492 y(t)o(yp)q(e)d(v)m(ariables)h(w)o(ould)g(b)q(e)g(reused,)
f(to)q(o.)75 2582 y(It)g(seems)g(safer)f(to)g(return)h(these)g(v)m(alues)h
(with)f(the)g(call)g(that)g(concludes)h(the)f(execution)h(of)e(sub)q(op)q
(er-)75 2638 y(ation)h(3)g({)g(but)g(w)o(e)g(need)h(to)f(think)h(syn)o(tax.)
146 2695 y(Opinions?)952 2828 y(10)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF
From owner-mpi-comm@CS.UTK.EDU  Mon Nov 30 18:08:53 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA22099; Mon, 30 Nov 92 18:08:53 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA03436; Mon, 30 Nov 92 17:54:53 -0500
Received: from THUD.CS.UTK.EDU by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA03434; Mon, 30 Nov 92 17:54:51 -0500
From: Jack Dongarra <dongarra@cs.utk.edu>
Received:  by thud.cs.utk.edu (5.61++/2.7c-UTK)
	id AA26470; Mon, 30 Nov 92 17:54:50 -0500
Date: Mon, 30 Nov 92 17:54:50 -0500
Message-Id: <9211302254.AA26470@thud.cs.utk.edu>
To: mpi-comm@cs.utk.edu
Subject: draft of introduction

Enclosed is a draft the introduction subcommittee has put together.
We would like to get your comments and input. We feel that it is in
a partial state and will be expanded. Hopefully this draft will help keep 
the discussion of goals, target, audience, etc. from becoming fragmented 
in each subcommittee.
Jack


\section{Introduction}
\label{sec:intro}

\subsection{Overview and Goals}

Message passing is a paradigm used
widely on certain classes of parallel machines; especially those with
distributed memory.
Although there are many variations, the basic
concept of processes communicating through messages is well understood.
Over the last ten years, substantial progress has been made in casting
significant applications in this paradigm.  Each vendor
has implemented their own variant.
More recently, several systems \cite{need references} have demonstrated
that a message passing system can be efficiently and
be portably implemented.
It is thus an appropriate time to try to define both the syntax
and semantics of a core of library routines that will be useful to a wide
range of users and efficiently implementable on a wide range of computers.

In designing MPI we have sought to make use of the most attractive features
of a number of existing message passing systems, rather than selecting one
of them and adopting it as the standard. Thus, MPI has been strongly
influenced by work at the IBM T. J. Watson Research Center by
Bala, Kipnis, Snir and colleagues \cite{}, Intel's NX/2 \cite{},
Express \cite{}, nCUBE's Vertex \cite{}, and PARMACS \cite{}.
Other important contributions have come from Zipcode \cite{},
Chimp \cite{}, PVM \cite{}, and PICL \cite{}.

One of the objectives of this paper is to promote a discussion within the
concurrent computing research community of the issues that must be addressed
in establishing a practical, portable, and flexible standard for message
passing. This cooperative process began with a workshop on standards
for message passing held in April 1992 \cite{}.

The main advantages of establishing a message passing standard are portability
and ease-of-use. In a distributed memory communication environment in which
the higher level routines and/or abstractions are build upon lower level
message passing routines the benefits of standardization are particularly
apparent. Furthermore, the definition of a message passing standard, such
as that proposed here, provides vendors with a clearly defined base set of
routines that they can implement efficiently, or in some cases provide
hardware support for, thereby enhancing scalability.

The goal of the Message Passing Interface simply stated is to
develop a \it{de facto} standard for writing message-passing programs.
As such the interface should
establishing a practical, portable, efficient, and flexible standard for message
passing.

\subsection{Who Should Use This Standard?}

This standard is intended for use by all those who want to write portable
message-passing programs in Fortran 77 and/or C.
This includes individual application programmers,
developers software designed to run on parallel machines, and creators of
higher-level programming languages, environments, and tools.  In order to be
attractive to this wide audience, the standard must provide a simple, easy-to-use
interface for the basic user while not semantically precluding the
high-performance message-passing operations available on advanced machines.


\subsection{What Platforms Are Targets For Implementation?}

The attractiveness of the message-passing paradigm at least partially
stems from its wide portability.  Programs expressed this way can run
efficiently on distributed-memory
multiprocessors, networks of workstations, and combinations of all of these.
In addition, shared-memory implementations are possible.
The paradigm will not be made obsolete by architectures combining the shared-
and distributed-memory views, or by increases in network speeds.  It thus
should be both possible and useful to implement this standard on a great
variety of machines, including those "machines" consisting of collections of
other machines, parallel or not, connected by a communication network.

\subsection{What Is Included In The Standard?}

The standard includes (this is temporarily as inclusive as possible):

\begin{itemize}
    \item  Point-to-point communication in a variety of modes, including modes
         that allow fast communication and heterogeneous communication
    \item  Collective operations
    \item  Process groups
    \item  Communication contexts
    \item  A simple way to create processes for the SPMD model
    \item  Bindings for both Fortran and C
    \item  A model implementation
    \item A formal specification.

\end{itemize}

\subsection{What Is Not Included In The Standard?}


The standard does not specify:

\begin{itemize}
    \item  Explicit shared-memory operations
    \item  Operations that require more operating system support than is currently
          standard; for example, interrupt-driven receives, remote execution,
          or active messages
    \item  Program construction tools
    \item  Debugging facilities
    \item  Tracing facilities
\end{itemize}

Features that are not included can always be offered as extensions
by specific
implementations.


From owner-mpi-comm@CS.UTK.EDU  Tue Dec  1 16:39:05 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA17944; Tue, 1 Dec 92 16:39:05 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA27367; Tue, 1 Dec 92 16:14:27 -0500
Received: from relay2.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA27363; Tue, 1 Dec 92 16:14:24 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA00550; Tue, 1 Dec 92 16:14:28 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 161350.23711; Tue, 1 Dec 1992 16:13:50 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-92031301 for <mpi-comm@cs.utk.edu>) id AA22501; Tue, 1 Dec 1992 15:07:53 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA16316; Tue, 1 Dec 92 15:07:51 -0600
Date: Tue, 1 Dec 92 15:07:51 -0600
Message-Id: <9212012107.AA16316@brisk.kai.com>
To: mpi-comm@cs.utk.edu
Subject: A proposal.
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


I've seen several proposals and made a few suggestions myself. I have
now had a chance to look at Gropp and Lusk's Manual for the test
implementation and I like it as a starting point. I propose to all
subcommittees that we use this document as the focus for discussion
along with the introduction Jack sent around yesterday.

This shouldn't be taken as an endorsement by me of the Gropp and Lusk
manual - I have several remarks I would like to make at a later stage.
However, it is clear that we need a well considered and simple starting
point and I see that in this document plus the introduction.

Do I have any seconders?

In the HPFF committe structure description we received a few days ago it
was noted that much success came from someone taking charge of the
central document. I implore someone to do this (Jack?).

Steven

P.S. I am not ignoring the other comments made in the committees - I
think they too can - after debate - be folded into the suggested
starting point.

From owner-mpi-comm@CS.UTK.EDU  Tue Dec  1 19:08:43 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA21233; Tue, 1 Dec 92 19:08:43 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA01862; Tue, 1 Dec 92 18:43:11 -0500
Received: from cunyvm.cuny.edu by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA01858; Tue, 1 Dec 92 18:43:08 -0500
Message-Id: <9212012343.AA01858@CS.UTK.EDU>
Received: from YKTVMV by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 7311;
   Tue, 01 Dec 92 18:42:33 EST
Date: Tue, 1 Dec 92 18:43:02 EST
From: "Marc Snir" <SNIR%YKTVMV.BITNET@utkvm1.utk.edu>
X-Addr: (914) 945-3204  (862-3204)
        28-226 IBM T.J. Watson Research Center
        P.O. Box 218 Yorktown Heights NY 10598
To: mpi-comm@cs.utk.edu
Subject: HPF process
Reply-To: SNIR@watson.ibm.com

The HPF process did not start with a central document.  Various peoples wrote
proposals for various parts of the language design and, after several iterations,
when the number of proposals starting being reasonable and these proposals started
being coherent, they were collated into one document that evolved (mostly by
successive pruning) into a draft. I suppose we can follow the same approach --
with the initial MPI Draft being our first frame of reference.
From owner-mpi-comm@CS.UTK.EDU  Fri Dec  4 16:10:12 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA06597; Fri, 4 Dec 92 16:10:12 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA27740; Fri, 4 Dec 92 15:56:38 -0500
Received: from THUD.CS.UTK.EDU by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA27738; Fri, 4 Dec 92 15:56:36 -0500
From: Jack Dongarra <dongarra@cs.utk.edu>
Received:  by thud.cs.utk.edu (5.61++/2.7c-UTK)
	id AA07974; Fri, 4 Dec 92 15:56:35 -0500
Date: Fri, 4 Dec 92 15:56:35 -0500
Message-Id: <9212042056.AA07974@thud.cs.utk.edu>
To: mpi-comm@cs.utk.edu
Subject: addresses for mpi

I'm trying to put together a complete mailing list for MPI.
Can you fill in the following information and send it to me.
Thanks,
Jack

Name:
Address:
Email:
Fax:
Office phone number:
Home phone number: (I'll use this only in an emergency and won't circulate.)

From owner-mpi-comm@CS.UTK.EDU  Mon Dec  7 21:39:33 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA10542; Mon, 7 Dec 92 21:39:33 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA29754; Mon, 7 Dec 92 21:28:26 -0500
Received: from vnet.ibm.com by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA29750; Mon, 7 Dec 92 21:28:21 -0500
Message-Id: <9212080228.AA29750@CS.UTK.EDU>
Received: from AUSVM6 by vnet.ibm.com (IBM VM SMTP V2R2) with BSMTP id 3637;
   Mon, 07 Dec 92 21:26:25 EST
Date: Mon, 7 Dec 92 14:02:48 CST
From: panda@vnet.ibm.com
To: mpi-comm@cs.utk.edu

To: mpi-comm@cs.utk.edu
Subject: addresses for mpi

I'm trying to put together a complete mailing list for MPI.
Can you fill in the following information and send it to me.
Thanks,
Jack

NAME:    RAJ PANDA
ADDRESS: E39/4305 IBM, 11400 BURNET RD., AUSTIN, TX 78758
EMAIL:   PANDA@VNET.IBM.COM
FAX:     1-512-823-6144
OFFICE PHONE NUMBER: 1-512-838-6632
HOME PHONE NUMBER:   1-512-835-1959                                      e.)

From owner-mpi-comm@CS.UTK.EDU  Mon Dec  7 22:10:17 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA10659; Mon, 7 Dec 92 22:10:17 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA29855; Mon, 7 Dec 92 21:41:36 -0500
Received: from vnet.ibm.com by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA29851; Mon, 7 Dec 92 21:41:26 -0500
Message-Id: <9212080241.AA29851@CS.UTK.EDU>
Received: from AUSVM6 by vnet.ibm.com (IBM VM SMTP V2R2) with BSMTP id 4638;
   Mon, 07 Dec 92 21:39:36 EST
Date: Mon, 7 Dec 92 14:51:31 CST
From: LBWARD@AUSVM6.VNET.IBM.COM
To: mpi-comm@cs.utk.edu
Subject: address for mpi mailing list

Please add my name to the MPI forum.    Linton Ward


Name:  Linton Ward
Address:  11400 Burnet Rd, Austin TX   78758
Email:  lbward@ausvm6.vmnet.ibm.com
Fax: (512) 823-6144
Office phone number: (512) 838-5116
Home phone number: (512) 244-1949

From owner-mpi-comm@CS.UTK.EDU  Thu Dec 10 13:10:06 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA08984; Thu, 10 Dec 92 13:10:06 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA18058; Thu, 10 Dec 92 12:47:20 -0500
Received: from THUD.CS.UTK.EDU by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA18051; Thu, 10 Dec 92 12:47:17 -0500
From: Jack Dongarra <dongarra@cs.utk.edu>
Received:  by thud.cs.utk.edu (5.61++/2.7c-UTK)
	id AA27178; Thu, 10 Dec 92 12:47:15 -0500
Date: Thu, 10 Dec 92 12:47:15 -0500
Message-Id: <9212101747.AA27178@thud.cs.utk.edu>
To: mpi-comm@cs.utk.edu
Subject: Information on the MPI meeting


Here are some details on the MPI meeting which is set for
January 6th-8th 1993 in Dallas.

The meeting site will be the:

 Bristol Suites
 7800 Alpha Road
 Dallas, TX
 214-233-7600
 
The room rate is $89.00. When making a reservation tell them you are
with the MPI meeting.

TBS Shuttle Service will be providing complimentary shuttle service to
and from the airports.  If you fly into DFW, use their courtesy telephone 
and dial 03.  If you fly into Love Field, you'll have to use a pay phone.  
They can be reached at 817-267-5150.  Upon boarding the shuttle, 
refer to the MPI meeting.

The registration fee for the meeting will be $75.  
Please make checks and POs payable to University of Tennessee.
We will collect this at the meeting.
The registration fee will go for coffee breaks, meeting rooms, 
AV and printer rentals. 

We should plan to start at 1:00 pm January 6th and finishing about 
noon on January 8th.

The format of the meeting is:

Wednesday, January 6
1:00 pm to 8:00 pm
2 Breakouts for 10 people
1 Breakout for 20 people
5:00 pm to 6:00 pm--On our own for dinner.

Thursday, January 7
8:00 am to 10:00 pm
1 U-shape room for 40 people
6:00 pm to 8:00 pm--
The group dinner somewhere in the area.  The hotel will provide round trip
van transportation.

Friday, January 8
8:00 am to 12:00 pm
1 U-shape room for 40 people

This is an open meeting and all are welcome.

For future planning here is a tentative list of dates, roughly 6 weeks apart,
for the series of meetings:

   January 6-8
   February 24-26
   April 7-9
   May 19-21
   June 30-July2

If you have any questions, please feel free to contact me.
Jack

From owner-mpi-comm@CS.UTK.EDU Wed Dec 23 16:46:29 1992
Received: from convex.convex.com by mozart.convex.com (5.64/1.28)
	id AA20114; Wed, 23 Dec 92 16:46:25 -0600
Received: from CS.UTK.EDU by convex.convex.com (5.64/1.35)
	id AA05394; Wed, 23 Dec 92 16:46:20 -0600
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA14697; Wed, 23 Dec 92 17:31:12 -0500
X-Resent-To: mpi-comm@CS.UTK.EDU ; Wed, 23 Dec 1992 22:31:10 GMT
Errors-To: owner-mpi-comm@CS.UTK.EDU
Received: from rios2.EPM.ORNL.GOV by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA14687; Wed, 23 Dec 92 17:31:08 -0500
Received: by rios2.epm.ornl.gov (AIX 3.2/UCB 5.64/4.03)
          id AA19206; Wed, 23 Dec 1992 17:29:47 -0500
Date: Wed, 23 Dec 1992 17:29:47 -0500
From: walker@rios2.epm.ornl.gov (David Walker)
Message-Id: <9212232229.AA19206@rios2.epm.ornl.gov>
To: abmacca@cs.sandia.gov, benson@rdvax.enet.dec.com, mpi-comm@cs.utk.edu,
        peter@sun.math.usfca.edu, srwheat@cs.sandia.gov
Subject: MPI Information
Status: RO


Dear MPI committee member or observer,

I need to know how many people to expect at the Dallas so please let me know 
if you intend to show up by sending email to walker@msr.epm.ornl.gov

Please find below s