[comp.parallel] Review of Pancake and Bergmark's Do Parallel Languages ....

eugene@orville.nas.nasa.gov (Eugene N. Miya) (12/20/90)

Here is an interesting paper which I read and people have asked a ref about.
I've reproduced the critical table which summarizes the issues of the paper.
There are other good papers in this issue, but the paper immediately following
this paper has a hard act to follow(see annontation).

--eugene
============================================================================
%A Cherri M. Pancake
%A Donna Bergmark
%T Do Parallel Languages Respond to the Needs of Scientific Programmers?
%J Computer
%I IEEE
%V 23
%N 12
%D December 1990
%P 13-23
%K fortran, shared memory, concurrency,
%X This article is a must read about the problems of designing, programming,
and "marketing" parallel programming languages.
It does not present definitive solutions but is a descriptive
"state-of-the-art" survey of the semantic problem.  The paper reads like
the "war of the sexes."  Computer scientist versus computational scientist,
some subtle  topics (like shared memory models) are mentioned.  An excellent
table summarizes the article, but I think there is one format error.
[e.g. of barriers versus subroutines.]
It is ironically followed for an article by computer scientists typifying
the author's thesis.
%X Table 1:
Category	For scientific researcher	For computer scientist
*
Convenience
		Fortran 77 syntax		Structured syntax and abstract
						  data types
		Minimal number of new		Extensible constructs
		  constructs to learn
		Structures that provide		Less need for fine-grain
		  low-overhead parallelism	  parallelism
Reliability
		Minimal number of changes to	Changes that provide
		  familiar constructs		  clarification
		No conflict with Fortran models	Support for nested scoping
		  of data storage and use	  and packages
		Provision of deterministic	Provision of non-deterministic
		  high-level constructs		  high-level constructs
		  (like critical sections,	  (like parallel sections,
		   barriers)			   subroutine invocations)
		Syntax that clearly		Syntax distinctions less
		  distinguishes parallel from	  critical
		  serial constructs
Expressiveness
		Conceptual models that support	Conceptual models adaptable to
		  common scientific programming	  wide range of programming
		  strategies			  strategies
		High-level features for 	High-level features for 
		  distributing data across	  distributing work across
		  processors			  processors
		Parallel operators for array/	Parallel operators for abstract
		  vector operands		  data types
		Operators for regular patterns	Operators for irregular
		  of process interaction	  patterns of process
						  interaction
Compatibility
		Portability across range of	Vendor specificity or
		  vendors, product lines	  portability to related
						  machine models
		Conversion/upgrading of		Conversion less important
		  existing Fortran code		  (formal maintenance
						   procedures available)
		Reasonable efficiency on most	Tailorability to a variety of
		  machine models		  machine models
		Interfacing with visualization	Minimal visualization
		  support routines		  support
		Compatibility with parallel	Little need for "canned"
		  subroutine libraries		  routines