[PDF][PDF] Para-functional programming
P Hudak - Computer, 1986 - scholar.archive.org
Computer, 1986•scholar.archive.org
Theimportanceofparallelcomputing hardly needs emphasis. Many physical problems and
abstract models are seriously compute-bound, since se-quential computer technology now
faces seemingly insurmountable physicallimita-tions. It is widely believed that the only
feasible path toward higher performance is to consider radically different computer
organizations, in particular ones ex-ploiting parallelism. This argument is indeed rather old
now, and considerable progress has been made in the construc-tion of highlyparallel …
abstract models are seriously compute-bound, since se-quential computer technology now
faces seemingly insurmountable physicallimita-tions. It is widely believed that the only
feasible path toward higher performance is to consider radically different computer
organizations, in particular ones ex-ploiting parallelism. This argument is indeed rather old
now, and considerable progress has been made in the construc-tion of highlyparallel …
Theimportanceofparallelcomputing hardly needs emphasis. Many physical problems and abstract models are seriously compute-bound, since se-quential computer technology now faces seemingly insurmountable physicallimita-tions. It is widely believed that the only feasible path toward higher performance is to consider radically different computer organizations, in particular ones ex-ploiting parallelism. This argument is indeed rather old now, and considerable progress has been made in the construc-tion of highlyparallel computers. One of the simplest and most promising types of parallel machines is the well-known multiprocessor architecture, a collection of autonomous processors with either shared or distributed memory that are interconnected by a homogeneous communications network and usually communicate by sending messages. The interest in machines of this type is not sur-prising, since not only do they avoid the classic" von Neumann bottleneck" by being effectively decentralized, but they are also extensible and in general quite easy to build. Indeed, more than a dozen commercial multiprocessors either are now or will soon be available. Although designing and building multiprocessors has proceeded at a dramatic pace, the development of effective ways to program them has generally not. This is an unfortunate state of affairs, since ex-perience with sequential machines tells us that software development, not hardware development, is themost critical element in a system's design. The immense com-plexity of parallel computation can only increase our dependence on software. Clearly we needeffective ways to program the new generation of parallel machines. In this article I introducepara-function-al programming, a methodology for programming multiprocessor computing systems. It is based on a functional pro-gramming model augmented with features that allow programs to be mapped to specific multiprocessor topologies. The most significant aspect of the methodol-ogy is that it treats the multiprocessor as a singleautonomous computer ontowhicha program is mapped, rather than as a group of independent processors that carry out complex communication and requirecomplex synchronization. In more conven-tional approaches to parallel program-ming, the latter method of treatment is often manifested as processes that cooperate by message-passing. However, such notions are absent in para-functional programming; indeed, a single language and evaluation model can be used from
scholar.archive.org