Models and languages for parallel computation

被引:153
作者
Skillicorn, DB [1 ]
Talia, D
机构
[1] Queens Univ, Kingston, ON K7L 3N6, Canada
[2] Univ Calabria, DEIS, CNR, ISI, I-87036 Arcavacata Di Rende, CS, Italy
关键词
general-purpose parallel computation; logic programming languages; object-oriented languages; parallel programming languages; parallel programming models; software development methods; taxonomy;
D O I
10.1145/280277.280278
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
We survey parallel programming models and languages using six criteria to assess their suitability for realistic portable parallel programming. We argue that an ideal model should be easy to program, should have a software development methodology, should be architecture-independent, should be easy to understand, should guarantee performance, and should provide accurate information about the cost of programs. These criteria reflect our belief that developments in parallelism must be driven by a parallel software industry based on portability and efficiency. We consider programming models in six categories, depending on the level of abstraction they provide. Those that are very abstract conceal even the presence of parallelism at the software level. Such models make software easy to build and port, but efficient and predictable performance is usually hard to achieve. At the other end of the spectrum, low-level models make all of the messy issues of parallel programming explicit (how many threads, how to place them, how to express communication, and how to schedule communication), so that software is hard to build and not very portable, but is usually efficient. Most recent models are near the center of this spectrum, exploring the best tradeoffs between expressiveness and performance. A few models have achieved both abstractness and efficiency. Both kinds of models raise the possibility of parallelism as part of the mainstream of computing.
引用
收藏
页码:123 / 169
页数:47
相关论文
共 214 条
[1]  
AGHA G, 1993, SIGPLAN NOTICES, V28, P23, DOI 10.1145/173284.155335
[2]  
Agha Gul, 1986, Actors: A Model of Concurrent Computation in Distributed Systems
[3]  
AHMED S, 1994, DIMACS WORKSH SPEC P, P161
[4]   MATCHING LANGUAGE AND HARDWARE FOR PARALLEL COMPUTATION IN THE LINDA MACHINE [J].
AHUJA, S ;
CARRIERO, NJ ;
GELERNTER, DH ;
KRISHNASWAMY, V .
IEEE TRANSACTIONS ON COMPUTERS, 1988, 37 (08) :921-929
[5]  
AMERICA P, 1987, OBJECT ORIENTED CONC, P199
[6]  
ANDRE F, 1994, PI869 IRISA
[7]  
ANDRE F, 1989, IFIP WORK C DEC SYST
[8]   AN OVERVIEW OF THE SR LANGUAGE AND IMPLEMENTATION [J].
ANDREWS, GR ;
OLSSON, RA ;
COFFIN, M ;
ELSHOFF, I ;
NILSEN, K ;
PURDIN, T ;
TOWNSEND, G .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1988, 10 (01) :51-86
[9]  
Andrews Gregory R., 1993, SR PROGRAMMING LANGU
[10]  
[Anonymous], TR103 ICOT