|
ABSTRACT
It is difficult to achieve elegance, efficiency, and parallelism simultaneously in functional programs that manipulate large data structures. We demonstrate this through careful analysis of program examples using three common functional data-structuring approaches-lists using Cons, arrays using Update (both fine-grained operators), and arrays using make-array (a “bulk” operator). We then present I-structure as an alternative and show elegant, efficient, and parallel solutions for the program examples in Id, a language with I-structures. The parallelism in Id is made precise by means of an operational semantics for Id as a parallel reduction system. I-structures make the language nonfunctional, but do not lose determinacy. Finally, we show that even in the context of purely functional languages, I-structures are invaluable for implementing functional data abstractions.
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
|
ALLEN, J., AND KENNEDY, K. PFC: A program to convert FORTRAN to parallel form. Tech. Rep. MASC-TR82-6, Rice University, Houston, Tex., March 1982.
|
| |
3
|
ARIOLA, Z., AND ARVIND. P-TAC: A parallel intermediate language. Tech. Rep. CSG Memo 295, MIT Lab. for Computer Science, Massachusetts ilnstitute of Technology, Cambridge, Jan. 1989.
|
| |
4
|
|
| |
5
|
|
| |
6
|
ARVIND, NIKHIL, R. S., AND PINGALI, K.K. Id nouveau reference manual, part II: Semantics. Tech. Rep., Computation Structures Group, MIT Lab. for Computer Science, Massachusetts Institute of Technology, Cambridge, 1987.
|
| |
7
|
ARVIND, AND THOMAS, R.E. I-Structures: An efficient data structure for functional languages. Tech. Rep. MIT/LCS/TM-178, MIT Lab. for Computer Science, Massachusetts Institute of Technology, Cambridge, 1981.
|
| |
8
|
BARENDREGT, H., AND VAN LEEUWEN, M. Functional programming and the language TALE. Tech. Rep. TR 412, Mathematical Institute, Utrecht, The Netherlands, 1985.
|
| |
9
|
CULLER, D.E. Effective datafiow execution of scientific applications. Ph.D. dissertation, MIT Lab. for Computer Science, Massachusetts Institute of Technology, Cambridge. To appear.
|
| |
10
|
|
 |
11
|
|
 |
12
|
J R Driscoll , N Sarnak , D D Sleator , R E Tarjan, Making data structures persistent, Proceedings of the eighteenth annual ACM symposium on Theory of computing, p.109-121, May 28-30, 1986, Berkeley, California, United States
[doi> 10.1145/12130.12142]
|
| |
13
|
GOSTELOW, K. P., AND THOMAS, R.E. A view of datafiow. In AFIPS Conference Proceedings, vol. 48, 1979, pp. 629-636.
|
 |
14
|
|
| |
15
|
|
| |
16
|
|
| |
17
|
KELLER, R. M. FEL (function equation language) programmer's guide. Tech. Rep., AMPS Tech. Memo. 7, Dept. of Computer Science, University of Utah, Salt Lake City, April 1983.
|
 |
18
|
D. J. Kuck , R. H. Kuhn , D. A. Padua , B. Leasure , M. Wolfe, Dependence graphs and compiler optimizations, Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.207-218, January 26-28, 1981, Williamsburg, Virginia
[doi> 10.1145/567532.567555]
|
 |
19
|
|
| |
20
|
NIKHIL, R.S. Id (version 88.1) reference manual. Tech. Rep. CSG Memo 284, MIT Lab. for Computer Science, Massachusetts Institute of Technology, Cambridge, Aug. 1988.
|
| |
21
|
NIKHIL, R. S., PINGALI, K., AND ARVlND. Id nouveau. Tech. Rep. CSG Memo 265, Computation Structures Group, MIT Lab. for Computer Science, Massachusetts Institute of Technology, Cambridge, July 1986.
|
 |
22
|
|
| |
23
|
|
| |
24
|
|
| |
25
|
|
| |
26
|
TRAUB, K.R. Sequential implementation of lenient progr ~mming languages. Ph.D. dissertation, Tech. Rep. TR-417, MIT Laboratory for Computer ScierLce, Massachusetts Institute of Technology, Cambridge, May 1988.
|
| |
27
|
|
 |
28
|
|
CITED BY 76
|
|
Vijay A. Saraswat , Martin Rinard , Prakash Panangaden, The semantic foundations of concurrent constraint programming, Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.333-352, January 21-23, 1991, Orlando, Florida, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Guy E. Blelloch , Phillip B. Gibbons , Yossi Matias, Provably efficient scheduling for languages with fine-grained parallelism, Proceedings of the seventh annual ACM symposium on Parallel algorithms and architectures, p.1-12, June 24-26, 1995, Santa Barbara, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
Anant Agarwal , Ricardo Bianchini , David Chaiken , Kirk L. Johnson , David Kranz , John Kubiatowicz , Beng-Hong Lim , Kenneth Mackenzie , Donald Yeung, The MIT Alewife machine: architecture and performance, ACM SIGARCH Computer Architecture News, v.23 n.2, p.2-13, May 1995
|
|
|
Anant Agarwal , Ricardo Bianchini , David Chaiken , Kirk L. Johnson , David Kranz , J. Kubiatowicz , B.-H. Lim , K. Mackenzie , D. Yeung, The MIT Alewife machine: architecture and performance, 25 years of the international symposia on Computer architecture (selected papers), p.509-520, June 27-July 02, 1998, Barcelona, Spain
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Guy E. Blelloch , Phillip B. Gibbons , Girija J. Narlikar , Yossi Matias, Space-efficient scheduling of parallelism with synchronization variables, Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures, p.12-23, June 23-25, 1997, Newport, Rhode Island, United States
|
|
|
|
|
|
Tyng-Ruey Chuang , Benjamin Goldberg, Real-time deques, multihead Turing machines, and purely functional programming, Proceedings of the conference on Functional programming languages and computer architecture, p.289-298, June 09-11, 1993, Copenhagen, Denmark
|
|
|
|
|
|
Shail Aditya , Joseph E. Stoy , Arvind, Semantics of barriers in a non-strict, implicitly-parallel language, Proceedings of the seventh international conference on Functional programming languages and computer architecture, p.204-215, June 26-28, 1995, La Jolla, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Anant Agarwal , John Kubiatowicz , David Kranz , Beng-Hong Lim , Donald Yeung , Godfrey D'Souza , Mike Parkin, Sparcle: An Evolutionary Processor Design for Large-Scale Multiprocessors, IEEE Micro, v.13 n.3, p.48-61, May 1993
|
|
|
Shigeru Kusakabe , Eiichi Takahashi , Rin-ichiro Taniguchi , Makoto Amamiya, Dataflow-Based Lenient Implementation of a Functional Language, Valid, on Conventional Multi-processors, Proceedings of the IFIP WG10.3 Working Conference on Parallel Architectures and Compilation Techniques, p.279-288, August 24-26, 1994
|
|
|
|
|
|
|
|
|
|
|
|
Keshav Pingali , Micah Beck , Richard Johnson , Mayan Moudgill , Paul Stodghill, Dependence flow graphs: an algebraic approach to program dependencies, Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.67-78, January 21-23, 1991, Orlando, Florida, United States
|
|
|
|
|
|
Eun Ha Rho , Sang Yong Han , Heung Hwan Kim , Dae Joon Hwang, Effects of data bundling in non-strict data structures, Proceedings of the IFIP WG10.3 working conference on Parallel architectures and compilation techniques, p.140-148, June 27-29, 1995, Limassol, Cyprus
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Osamu Tatebe , Umpei Nagashima , Satoshi Sekiguchi , Hisayoshi Kitabayashi , Yoshiyuki Hayashida, Design and implementation of FMPL, a fast message-passing library for remote memory operations, Proceedings of the 2001 ACM/IEEE conference on Supercomputing (CDROM), p.15-15, November 10-16, 2001, Denver, Colorado
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yao Guo , Vladimir Vlassov , Raksit Ashok , Richard Weiss , Csaba Andras Moritz, Synchronization coherence: A transparent hardware mechanism for cache coherence and fine-grained synchronization, Journal of Parallel and Distributed Computing, v.68 n.2, p.165-181, February, 2008
|
|
|
Steven Swanson , Andrew Schwerin , Martha Mercaldi , Andrew Petersen , Andrew Putnam , Ken Michelson , Mark Oskin , Susan J. Eggers, The WaveScalar architecture, ACM Transactions on Computer Systems (TOCS), v.25 n.2, p.4-es, May 2007
|
|
|
Andrew Petersen , Andrew Putnam , Martha Mercaldi , Andrew Schwerin , Susan Eggers , Steve Swanson , Mark Oskin, Reducing control overhead in dataflow architectures, Proceedings of the 15th international conference on Parallel architectures and compilation techniques, September 16-20, 2006, Seattle, Washington, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Daniel Spoonhower , Guy E. Blelloch , Phillip B. Gibbons , Robert Harper, Beyond nested parallelism: tight bounds on work-stealing overheads for parallel futures, Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures, August 11-13, 2009, Calgary, AB, Canada
|
|