A functional language architecture that supports fine-grain parallelism (extended abstract)
Page 384
Abstract
This abstract introduces a research project at Iowa State University whose goal is to produce a high-speed computing system by combining a multiprocessor configuration with a software paradigm based on the functional programming language SASL. The underlying architecture will evaluate combinatory code produced by the SASL compiler by graph reduction, in a manner similar to that of other proposed SKIM combinator machines. Fine-grain parallelism is supported by concurrently evaluating the body and parameters of functions, by “unrolling” recursive algorithms when possible, and by application of high-level user-defined data shaping operations, such as “map.” A simple dynamic load balancing scheme is used to evenly distribute the work of reducing the graph over all processors.
The current design, under construction, is a tightly-coupled 16 processor system. Each processor has a private program memory that contains a complete copy of the program graph. The rules that specify and control the parallel reduction of the graph guarantee that the correct value will eventually be returned to the processor assigned to the root of the graph, and that inconsistencies in copies at various processors due to local reductions are of no concern. The data memory is global, but is physically organized so that a segment of the memory is located next to each processor. We expect that once the data is distributed through the graph during reduction, there will be some degree of locality of reference that will ease bus traffic. The typical bus bandwidth limitations that degrade performance in a fine-grain architecture are mitigated somewhat by employing a locally-developed high-speed (up to 100Mb/s per channel) “party line” serial bus for data references and interprocessor messages. The bus design allows for parallel data transfers, and can exchange processor load information in broadcast mode in one bus cycle.
We have chosen to base the design of the architecture on the functional language SASL: the desire to exploit fine-grain parallelism necessitated that we abandon sequential programming languages and adopt one that shows promise of supporting parallelism through referential transparency. Because SASL does not allow side-effects (including assignment) when evaluating an expression, sub-expressions do not interfere with one another and we are free to compute their values in parallel. The degree and sources of parallelism are under investigation by us and others. A second, equally important, issue centers around the ease of which a functional language can be used to program “every day” non-recursive problems. We are addressing this problem by investigating the translation of standard FORTRAN programs into SASL prior to execution.
The object code produced by the SASL compiler is a directed graph containing combinatory code. The graph is then traversed in normal order (preorder) until the first redex is found. The node containing the redex is evaluated and the process is repeated until the graph cannot be reduced further. Combinators are instructions for a hypothetical machine sometimes called a SKIM reduction machine. We are currently using the standard combinators found in the literature, but we plan to augment that set with special purpose combinators that better support parallelism.
References
[1]
Backus, j. "Can Programming be Liberated from the yon Neumann Style? A Functional Style and its Algebra of Programs," Communications of the ACM, Vol. 21, No. 8, August 1978, pp. 613-641.
[2]
Clarke, T.J.W., et.al. "SKIM - The S,K,I reduction Machine," Proceedings of the LISP Conference, Stanford University, Stanford, CA, 1980, pp. 128-135.
[3]
Turner, D.A. "A New Implementation Technique for Applicative Languages," Software- Practice and Experience, Vol. 9, 1979, pp. 31-49.
[4]
Turner, D.A. The SASL Language t~eference Manual, Research Software Limited, Canterbury, Kent, England
Index Terms
- A functional language architecture that supports fine-grain parallelism (extended abstract)
Recommendations
Language support for multi-paradigm and multi-grain parallelism on SMP-Cluster
The characteristics of large-scale parallel applications are multi-paradigm and multi-grain parallel in essence. The key factor in improving the performance of parallel application systems is to determine suitable parallel paradigms and grains according ...
Comments
Information & Contributors
Information
Published In
Copyright © 1987 ACM.
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]
Sponsors
Publisher
Association for Computing Machinery
New York, NY, United States
Publication History
Published: 01 February 1987
Check for updates
Qualifiers
- Article
Conference
ICMI05
Sponsor:
Contributors
Other Metrics
Bibliometrics & Citations
Bibliometrics
Article Metrics
- 0Total Citations
- 159Total Downloads
- Downloads (Last 12 months)11
- Downloads (Last 6 weeks)1
Reflects downloads up to 28 Dec 2024
Other Metrics
Citations
View Options
Login options
Check if you have access through your login credentials or your institution to get full access on this article.
Sign in