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