Rapid advances in hardware technology have made possible computers which depart dramatically from the traditional von Neumann model of computation in that they exhibit very significant degrees of parallelism and very high levels of cost-effective “raw” performance. Such machines are now commercially available. One of the barriers to the widespread usage of these machines is the lack of user-friendly and efficient programming tools, compilers, and debuggers for developing applications on these high performance systems. There are many new and difficult problems associated with programming high-performance computers, which do not concern those who develop software for conventional computers. Examples of such problems are: • how to extract parallelism from a program description? • given a target parallel machine, how should one represent and decompose a problem so as to obtain maximal performance? In this paper, we will focus on the problem of making programs for high performance computers. This means that we view high performance computers through the eyes of programmers of these systems.
[1]
Jonathan M. D. Hill,et al.
Data Parallel Haskell: Mixing Old and New Glue
,
1993
.
[2]
Hesham El-Rewini,et al.
Introduction to Parallel Computing
,
1992
.
[3]
Jack Dongarra,et al.
Pvm 3 user's guide and reference manual
,
1993
.
[4]
Ronald H. Perrott,et al.
Parallel programming
,
1988,
International computer science series.
[5]
Ian Foster,et al.
Designing and building parallel programs
,
1994
.
[6]
J FlynnMichael.
Some computer organizations and their effectiveness
,
1972
.
[7]
Michael Wolfe,et al.
High performance compilers for parallel computing
,
1995
.
[8]
Nicholas Carriero,et al.
How to write parallel programs: a guide to the perplexed
,
1989,
CSUR.
[9]
James C. Browne,et al.
Complete parallelization of computations: integration of data partitioning and functional parallelism for dynamic data structures
,
1996,
Proceedings of International Conference on Parallel Processing.