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

Parallel destructive updating in strict functional languages

Published: 01 July 1994 Publication History

Abstract

In our recent paper, we gave an efficient interprocedural update analysis algorithm for strict functional languages with flat arrays and sequential evaluation. In this paper, we show that the same algorithm extends to a parallel functional language with additional constructs for partitioning and combining arrays. Even with parallel evaluation, the complexity of the analysis remains polynomial. The analysis has been implemented and the results show that several numerical algorithms such as direct and iterative methods for solving linear equations, LU, Cholesky, and QR factorizations, multigrid methods for solving partial differential equations, and non-numeric algorithms such as sorting can be implemented functionally with all updates made destructive. We describe a new array construct to specify a collection of updates on an array and show that problems like histogram, inverse permutation, and polynomial multiplication have efficient parallel functional solutions. Monolithic array operators can be considered as a special case of this new construct.

References

[1]
Arvind, R. Nikhil, and K. Pingali. I-structures ' Data structures for parallel computing. In Graph {reduction, pages 336-369. Springer-Verlag, LNCS 279, 1986.
[2]
G. Blelloch. Vector Models for Data-Parallel Computing. The MiT Press, 1990.
[3]
A. Bloss. Path Analysis and Optimization of Non-strict Functional Languages. PhD thesis, Yale University, Dept. of Computer Science, 1989.
[4]
A. Bloss. Update analysis and efficient implementation of functional aggregates. In The Fourth International Conference on Functional Programming Languages and Computer Architecture, pages 26-38, 1989.
[5]
D. Cann. Compilation Techniques .for High Performance Applicative Computation. PhD thesis, Colorado State University, Dept. of Computer Science, 1989.
[6]
D. Cann. Retire Fortran? a debate rekindled. Communications of the A CM, 35(8):81-89, 1992.
[7]
A. Deutsch. On determining the lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In A CM Symposium on Principles of Programming Languages, pages 157-168, 1990.
[8]
M. Draghicescu and S. Purushothaman. A compositional analysis of evaluation-order and its applications. In A CM Conference on Lisp and Functional Programming, pages 242-249, 1990.
[9]
P. Fradet. Syntactic detection of single-threading using continuations. In Functional Programming Languages and Computer Architecture, pages 241-258. Springer Verlag LNCS 523, 1991.
[10]
G. H. Golub. Matrix Computations. The Johns Hopkins University Press, 1988.
[11]
G. H. Golub and J. M. Ortega. Scientific Computing' An Introduction with Parallel Compuhng. Academic Press, inc., 1993.
[12]
C. Gomard and P. Sestoft. Globahzation and live variables. In Proceedings of the Symposium on Partial Evaluation and Semantic Based Program Manipulation (PEPM), pages 166-176, 1991.
[13]
K. Gopinath. Copy Elimination in Single Assignment Languages. PhD thesis, Stanford University, Computer Systems Laboratory, 1988.
[14]
K. Gopinath. Copy elimination in functional languages. In A CM Symposium on Principles of Programming Languages, 1989.
[15]
J. Guzman. On Expressing the Mutation of State in a Functional Programming Language. PhD thesis, Yale University, Dept. of Computer Science, 1993.
[16]
J. Guzm~n and P. Hud~k. Singlo-three~ded polymorphic lambda calculus. In IEEE Symposium on Logic in Computer Science, 1990.
[17]
P. Hudak. Arrays, non-determinism, side-effects, and parallehsm' A functional perspective. In Graph Reduction, pages 312-327. Springer-Verlag, LNCS 279, 1986.
[18]
P. Hudak. A semantic model of reference counting and its abstraction. In A CM Conference on Lisp and Functional Programming, 1986.
[19]
P. Hudak. Mutable abstract datatypes or how to have your state and munge it too. Technical report, Department of Computer Science, Yale University, 1993.
[20]
R. Nikhil. Id (version 90.0) reference manual. Technical Report CSG Memo 284-1, MIT, 545 Technology Square, Cambridge, MA 02139, August 1990.
[21]
A. Sastry. Ej~cient Array Update Analysis oi' Strict Functional Languages. PhD thesis, University of Oregon, Dept. of Computer Science, June 1994. (in preparation).
[22]
A. Sastry, W. Clinger, and Z. Ariola. Order-ofevaluation analysis for destructive updates in strict functional languages with flat aggregates. In Conference on Functional Programming Languages and Computer Architecture, pages 266-275, 1993.
[23]
D. Schmidt. Detecting global variables in denotationai specifications. A CM TOPLAS, 7(2):299-310, 1985.
[24]
P. Sestoft. Replacing function parameters with global variables. Master's thesis, DIKU, University of Copenhagen, Oct. 1988.
[25]
P. Sestoft. Replacing function parameters by global variables. In The Fourth International Conference on Functional Programming Languages and Computer Architecture, pages 39-53, 1989.
[26]
G. L. Steele Jr. and W. Hillis. Connection machine lisp: fine grained parallel symbolic processing. In A CM Symposium on Lisp and Functional Programming, pages 279-297, 1986.
[27]
V. Swarup, U. Reddy, and E. Ireland. Assignments for applicative languages. In Conference on Functional Programming Languages and Computer Architecture, pages 192-214. Springer Verlag LNCS 523, 1991.
[28]
P. Wadler. A new array operation. In Graph Reduction, pages 328-335. Springer-Verlag, LNCS 279, 1986.
[29]
P. Wadler. Comprehending monads. In Proceedings of A CM Symposium on Lisp and Functional Programming~ pages 6t-78, 1990.
[30]
P. Wadler. Linear types can change the world! In M. Broy and C. B. Jones, editors, Programming Concepts and Methods. North Holland, 1990. Presented at IFiP TC2 Working Conference on Programming Concepts and Methods, Sea of Galilee, Israel, April 1990.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
LFP '94: Proceedings of the 1994 ACM conference on LISP and functional programming
July 1994
327 pages
ISBN:0897916433
DOI:10.1145/182409
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 July 1994

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

LFP94
LFP94: ACM Conference on Lisp and Functional Programming
June 27 - 29, 1994
Florida, Orlando, USA

Acceptance Rates

LFP '94 Paper Acceptance Rate 30 of 109 submissions, 28%;
Overall Acceptance Rate 30 of 109 submissions, 28%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)28
  • Downloads (Last 6 weeks)4
Reflects downloads up to 22 Sep 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media