[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/312627.312713acmconferencesArticle/Chapter ViewAbstractPublication PagesaplConference Proceedingsconference-collections
Article
Free access

Regions: an abstraction for expressing array computation

Published: 01 December 1998 Publication History

Abstract

Most array languages, including Fortran 90, Matlab, and APL, provide support for referencing arrays by extending the traditional array subscripting construct found in scalar languages. We present an alternative to subscripting that exploits the concept of regions---an index set representation that can be named, manipulated with high-level operators, and syntactically separated from array references. This paper develops the concept of region-based programming and describes its benefits in the context of an idealized array language called RL. We show that regions simplify programming, reduce the likelihood of errors, and enable code reuse. Furthermore, we describe how regions accentuate the locality of array expressions and how this locality is important when targeting parallel computers. We also show how the concepts of region-based programming have been used in ZPL, a fully-implemented practical parallel programming language in use by scientists and engineers. In addition, we contrast region-based programming with the array reference constructs of other array languages.

References

[1]
Jeanne C. Adams, Walter S. Brainerd, Jean T. Martin, Brian T. Smith, and Jerrold L. Wagener. Fortran 90 Handbook. McGraw-Hill, 1992.
[2]
Thomas Brtiunl. ParaUaxis-iII: A language for structured data-parallel programming. In Proceedings of the IEEE First International Conference on Algorithms and Architectures for Parallel Processing, pages 43-52. IEEE, April 1995.
[3]
Bradford L. Chamberlain, Sung-Eun Choi, E Christopher Lewis, Calvin Lin, Lawrence Snyder, and W. Derrick Weathersby. ZPL's WYSIWYG performance model. In Proceedings of the Third International Workshop on High-Lea,el Parallel Programming Models and Supportive Environments, pages 50-61. IEEE, March 1998.
[4]
S. J. Fink, S. R. Kohn, and S. B. Baden. Efficient run-time support for irregular block-structured applications. Journal of Parallel and Distributed Computing, 50(1-2):61-82, April- May 1998.
[5]
Raymond Greenlaw and Lawrence Snyder. Achieving speedups for APL on an SIMD distributed memory machine. International Journal of Parallel Programming, 19(2):111- 127, April 1990.
[6]
Duane Hanselman and Bruce Littlefield. Mastering MATLAB. Prentice-Hall, 1996.
[7]
High Performance Fortran Forum. High Performance Fortran Langauge Specification, Version 2.0. January 1997.
[8]
Kenneth E. Iverson. A Programming Language. John Wiley and Sons, 1962.
[9]
S. C. Johnson and C. Mohler. Compiling MATLAB. In Proceedings of the USENIX Symposium on Very High Level Languages (VHLL), pages 119-27, Santa Fe, New Mexico, October 1994. USENIX Association.
[10]
Calvin Lin and Lawrence Snyder. ZPL: An array sublanguage. In Uptal Banerjee, David Gelemter, Alexandru Nicolau, and David Padua, editors, Workshop on Languages and Compilers for Parallel Computing, pages 96-114. Springer- Verlag, 1993.
[11]
Bruce J. MacLennan. Principles of Programming Languages. Saunders College Publishing, 2nd edition, 1987.
[12]
L. De Rose, K. GaUivan, E. Gallopoulos, B. Marsolf, and D. Padua. FALCON: A MATLAB interactive restructuring compiler. In C. H. Huang, p. Sadayappan, U. Banerjee, S. Gelernter, A. Nicolau, and D. Padua, editors, Proceedings of the 8th Iternational Workshop on Languages and Compiler for Parallel Computing, pages 269-88, Columbus, Ohio, August 1995. Springer-Verlag.
[13]
Sven-Bodo Scholz. On programming scientific application in SAC -- a functional language extended by a subsystem for high-level array operations. In Wemer Kluge, editor, Proceedings of the 8th International Workshop on the Implementation of Functional Languages (IFL '96), pages 85-104, Bad Godesberg, Germany, September 1996. Springer-Vedag.
[14]
Luigi Semenzato and Paul Hilfinger. Arrays in FID1L. In Robert Grossman, editor, Symbolic Computation: Applications to Scientific Computing, pages 155-169. SIAM, 1989.
[15]
Lawrence Snyder. A Programmer's Guide to ZPL. M1T Press, 1999.
[16]
C* Programming Guide, Version 6.0.2. Thinking Machines Corporation, Cambridge, Massachusetts, June 1991.

Cited By

View all

Index Terms

  1. Regions: an abstraction for expressing array computation

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    APL '99: Proceedings of the conference on APL '99 : On track to the 21st century: On track to the 21st century
    August 1999
    108 pages
    ISBN:1581131267
    DOI:10.1145/312627

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 December 1998

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    APL99
    Sponsor:
    APL99: 1999 Conference on APL
    Pennsylvania, Scranton, USA

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)63
    • Downloads (Last 6 weeks)9
    Reflects downloads up to 18 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2007)Parallel Programmability and the Chapel LanguageInternational Journal of High Performance Computing Applications10.1177/109434200707844221:3(291-312)Online publication date: 1-Aug-2007
    • (2006)SACInternational Journal of Parallel Programming10.1007/s10766-006-0018-x34:4(383-427)Online publication date: 1-Aug-2006
    • (2004)The cascade high productivity languageNinth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.10.1109/HIPS.2004.1299190(52-60)Online publication date: 2004
    • (2004)Abstractions for dynamic data distributionNinth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.10.1109/HIPS.2004.1299189(42-51)Online publication date: 2004
    • (2003)Simulation of a cellular landslide model with CAMELOT on high performance computersParallel Computing10.1016/j.parco.2003.05.00229:10(1403-1418)Online publication date: 1-Oct-2003
    • (2002)Porting the parallel array programming language ZPL to an embedded multicomputing systemACM SIGAPL APL Quote Quad10.1145/604444.60225132:4(168-175)Online publication date: 1-Jun-2002
    • (2002)Porting the parallel array programming language ZPL to an embedded multicomputing systemProceedings of the 2002 conference on APL: array processing languages: lore, problems, and applications10.1145/602231.602251(168-175)Online publication date: 22-Jul-2002
    • (2002)High-level Language Support for User-defined ReductionsThe Journal of Supercomputing10.1023/A:101578101844923:1(23-37)Online publication date: 1-Aug-2002
    • (2001)Array language support for parallel sparse computationProceedings of the 15th international conference on Supercomputing10.1145/377792.377820(133-145)Online publication date: 17-Jun-2001
    • (2000)ZPLIEEE Transactions on Software Engineering10.1109/32.84294726:3(197-211)Online publication date: 1-Mar-2000
    • Show More Cited By

    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