[comp.parallel] Original producer-consumer question

zenith@ensmp.fr (Steven Ericsson Zenith) (02/06/91)

Vince Fernando was kind enough to forward the original question, which I
discussed in previous mail. I think it raises some interesting points.
Taken in the full context the part quoted by Phillip Hallam-Baker (and
which I interpreted) makes more sense.

My answer to Vince's question remains essentially the same except, in
light of the more detailed explination, I think it is important to
consider Harry Jordan's points and the implications there of.

Steven.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
From: "Vince Fernando"@nsfnet-relay.ac.uk

The following was extracted from the article:
Jaap Hollenberg
"People are getting more comfortable with parallelism" - an interview
with Harry Jordan
Supercomputer (P O Box 4613, 1009 AP Amsterdam, The Netherlands), 
vol. 40, November 1980, pages 8-12 
....
 Languages
 How about parallel languages, could Fortran be parallel ?
 ....
 The major difference between something like occam and parallel Fortran is the
 distinction I try to draw between the communication of the information from
 a process which produces it to one that consumes it by either producer-
 or consumer-initiated transmission paradigm, that is the producer is 
 responsible for sending information, specifically to the processor that
 will use it. So the binding must be done in such a way that the producer can
 predict the receiver well enough in advance, that the program will scale
 effectively, that means there must be a large amount of buffering because 
 otherwise if you scale up the size the amount of this buffer time is
 reduced and eventually the communication dominates the whole system. In the
 parallel Fortran area (anybody's standard, IBM, PCF) it is a receiver-initiated
 transmission.You can assume that the data is somehow left behind by name by the
 producers (we typically associate that with a storage cell in a shared-memory)
 and the consumer then names the data and retrieves it under its own-initiative.
 To me the two programming paradigms are very different. One of them leaves the
 management of latency to the user. The user spends a good deal of time trying
 to map data so that very little communication takes place; he tries to arrange
 the sends and the receiver so that the send takes place well ahead of the
 receive so that there is no waiting. There is a tremendous amount of 
 management function placed on him. In the parallel Fortran paradigm the user
 has very little management requirement, he can write an algorithm that - apart
 from the fact that he must use the number of processors - works very much like
 the programming paradigm he is used to.  ... 

Does anybody have any comments regarding this article ? Particularly, can we say
that occam is a producer-initiated language  and Fortran is a 
consumer-initiated language ?


Vince Fernando
NAG
Jordan Hill, Oxford OX2, UK
Eamil: nagkvf@uk.ac.oxford.vax
       na.fernando@na-net.ornl.gov

eugene@nas.nasa.gov (Eugene N. Miya) (02/07/91)

<Reference and quote to Harry Jordan removed for brevity>.
>Does anybody have any comments regarding this article ?
>Particularly, can we say that occam is a producer-initiated language
>and Fortran is a consumer-initiated language ?

I've not read the article, but it sounds interesting.  Harry is an
articulate fellow.  My problem comes with "consumer-initiated language" as
'consumer' can be taken two ways.  The ambiguity of natural
language makes this difficult for a 'naive' user to distinguish.
Comes with the producer-consumer terminology (jargon) in concurrent computing.
One can argue dataflow languages "sort of" fit this model, but in
a different framework.  One can ALSO argue that Fortran is used by
'consumers' and if the marketing types ever got ahold of this, we would
be in trouble. (Yes it's a semantic argument, but that's where the
misunderstanding lies.)

Jordan's article and the misquote on Sacrifice [8^)] reinforce
the Dec. Pancake and Bergmark paper.  Perhaps we should all
label our articles:
COMPUTATIONAL SCIENTIST or COMPUTER SCIENTIST
[by then we would argue the difference of those....]

I have to go find the article as my subscription to this has lapsed.

Summary: I am saying judging on the basis of this one quote is difficult.

--e. nobuo miya, NASA Ames Research Center, eugene@orville.nas.nasa.gov
  {uunet,mailrus,other gateways}!ames!eugene
  AMERICA: CHANGE IT OR LOSE IT.