Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/322917.323045acmconferencesArticle/Chapter ViewAbstractPublication PagescscConference Proceedingsconference-collections
Article
Free access

A functional language architecture that supports fine-grain parallelism (extended abstract)

Published: 01 February 1987 Publication History

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

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
CSC '87: Proceedings of the 15th annual conference on Computer Science
February 1987
473 pages
ISBN:0897912187
DOI:10.1145/322917
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

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

ICMI05
Sponsor:

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 159
    Total Downloads
  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)1
Reflects downloads up to 28 Dec 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media