|
ABSTRACT
One of the most important pragmatic advantages of functional languages is that concurrency in a program is <i>implicit</i> -- there is no need for special constructs to express parallelism as is required in most conventional languages. Furthermore, it is fairly easy for compilers to automatically determine the concurrency as a step toward decomposing a program for execution on a suitable parallel architecture. Yet it is often the case that one knows precisely the <i>optimal decomposition</i> for execution on a particular machine, and one can never expect a compiler to determine such optimal mappings in all cases. This paper is concerned with ways to allow the programmer to <i>explicitly</i> express this mapping of program to machine, by using annotations that, given a few minor constraints, cannot alter the functional semantics of the program. We show through several detailed examples the expressiveness and conciseness of the resulting "para-functional" programming methodology, using an experimental language called <i>ParAlfl</i> based on our ideas. We also give a formal denotational description of the mapping semantics using a notion of <i>execution trees.</i>This research was supported in part by NSF Grants DCR-8403304 and DCR-8451415, and a Faculty Development Award from IBM.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
Arvind and Gostelow, K. P. "The U-interpreter". <i>Computer 15,</i> 2 (Feb. 1982), 42--50.
|
| |
3
|
|
 |
4
|
|
| |
5
|
Burn, G. L., Hankin, C. L., and Abramsky, S. The theory and practice of strictness analysis for higher order functions. DoC 85/6, Imperial College of Science and Technology, Department of Computing, April, 1985.
|
 |
6
|
|
 |
7
|
|
| |
8
|
Davis, A. L. Data driven nets: A maximally concurrent, procedural, parallel pocess representation for distributed control systems. UUCS-78--108, Univ. of Utah, July, 1978.
|
| |
9
|
Deminet, J. "Experience with multiprocessor algorithms". <i>IEEE Trans. on Computers C-41,</i> 4 (April 1982), 278--287.
|
 |
10
|
|
 |
11
|
|
| |
12
|
|
 |
13
|
|
 |
14
|
|
 |
15
|
|
 |
16
|
|
| |
17
|
Hudak, P. ALFL Reference Manual and Programmers Guide. Research Report YALEU/DCS/RR-322, Second Edition, Yale University, Oct., 1984.
|
| |
18
|
|
| |
19
|
|
| |
20
|
Hudak, P. and Young, J. A set-theoretic characterization of function strictness in the Lambda Calculus. Research Report YALEU/DCS/RR-391, Yale University, June, 1985.
|
 |
21
|
|
 |
22
|
|
| |
23
|
Intel Corporation. IPSC User's Guide -- Preliminary. 176455--001. Intel Corporation, July, 1985.
|
| |
24
|
Johnsson. T. The G-machine: an abstract machine for graph reduction. PMG. Dept. of Computer Science, Chalmers Univ. of Tech., Feb., 1985.
|
| |
25
|
Keller, R. M., Lindstrom, G., and Patil, S. A loosely-coupled applicative multi-processing system. AFIPS, AFIPS, June, 1979, pp. 613--622.
|
| |
26
|
Keller, R. M., Jayaraman. B., Rose, D., Lindstrom, G. FGL programmer's guide. AMPS Technical Memo 1, Department of Computer Science, University of Utah, July, 1980.
|
| |
27
|
Keller, R. M. FEL programmer's guide. AMPS TR 7. University of Utah. March, 1982.
|
| |
28
|
Keller, R. M. and Lin, F.C.H. "Simulated performance of a reduction-based multiprocessor". <i>IEEE Computer 17,</i> 7 (July 1984), 70--82.
|
| |
29
|
Keller, R. M. and Lindstrom, G. Approaching distributed database implementations through functional programming concepts. Int'l Conf. on Distributed Systems, May, 1985.
|
 |
30
|
|
 |
31
|
|
| |
32
|
Mycroft. A. <i>Abstract Interpretation and Optimizing Transformations for Applicative Programs.</i> Ph.D. Th., Univ. of Edinburgh, 1981.
|
| |
33
|
|
 |
34
|
|
| |
35
|
Shapiro, E. Systolic programming: a paradigm of parallel processing. Dept. of Applied Mathematics CS84-21. The Weizmann Institute of Science. Aug., 1984.
|
 |
36
|
|
| |
37
|
|
| |
38
|
Turner, D. A. SASL language manual. University of St. Andrews, 1976.
|
| |
39
|
|
CITED BY 12
|
|
|
|
|
Eric Mohr , David A. Kranz , Robert H. Halstead, Jr., Lazy task creation: a technique for increasing the granularity of parallel programs, Proceedings of the 1990 ACM conference on LISP and functional programming, p.185-197, June 27-29, 1990, Nice, France
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|