Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!gatech!hubcap!boulder!boulder!adamb
From: boulder!boulder!adamb@ncar.UCAR.EDU (Adam 'Velvis' Beguelin)
Newsgroups: comp.parallel
Subject: Determinacy Issues in Parallel Programs
Keywords: determinacy parallel programming
Message-ID: <6243@hubcap.clemson.edu>
Date: 11 Aug 89 13:10:00 GMT
Sender: fpst@hubcap.clemson.edu
Lines: 35
Approved: parallel@hubcap.clemson.edu


I would like to discuss the value of determinacy in parallel programming.

If you knew a parallel program was determinate or nondeterminate
before you ran it, then it would make writing and 
debugging the program easier.  If the program was determinate
you would know that errors produced by the
program were not an artifacts of race conditions in your program.
If you knew that the program may be nondeterminate, you could look
to those portions of the program which may cause nondeterminacy
to see if these sections of the code contribute to the incorrectness
of the computation.  If you expected the program to be determinate 
and were told that it was nondeterminate, this would also be 
useful information.

Does anyone have any comments on the above argument?

Also related to determinacy, some languages (i.e. functional languages)
enforce determinacy, while most parallel languages do not.   Enforcing
determinacy restricts the number of computations one may easily express.
A client server model is naturally nondeterministic, for instance.
Does the average Joe parallel programmer need the ability of writing
nondeterministic programs?  Would he be better off with a language
that encouraged or enforced determinacy, even though the set of computations
expressible in such a language may be smaller?

Finally, does anyone have references to papers that discuss such topics?
I know of a papers on the Blaze and Linda languages which touch on these
issues but I'm not aware of anything that explicitly discusses the pros
and cons of determinacy in parallel programming.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Adam Beguelin 			Computer Science Department Box 430 
adamb@boulder.Colorado.Edu		     University of Colorado
303/492-7906				      Boulder, CO 80309-430