Abstract
High-level array processing is characterized by the composition of generic operations, which treat all array elements in a uniform way. This paper proposes a mechanism that allows programmers to direct effects of such array operations to non-scalar subarrays of argument arrays without sacrificing the high-level programming approach. A versatile notation for axis control is presented, and it is shown how the additional language constructs can be transformed into regular SaC code. Furthermore, an optimization technique is introduced which achieves the same runtime performance regardless of whether code is written using the new notation or in a substantially less elegant style employing conventional language features.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
R. Allen and K. Kennedy. Optimizing Compilers for Modern Architectures. Morgan Kaufmann Publishers, 2001. ISBN 1-55860-286-0.
I.P Sharp & Associates. SHARP APL Release 19.0 Guide for APL Programmers. I.P Sharp & Associates, Ltd., 1987.
D.F. Bacon, S.L. Graham, and O.J. Sharp. Compiler Transformations for High-Performance Computing. ACM Computing Surveys, 26(4):345–420, 1994.
J.P. Benkard. Nested Arrays and Operators — Some Issues in Depth. In Proceedings of the International Conference on Array Processing Languages (APL’92), St.Petersburg, Russia, APL Quote Quad, pages 7–21. ACM Press, 1992.
R. Bernecky. An Introduction to Function Rank. In Proceedings of the International Conference on Array Processing Languages (APL’88), Sydney, Australia, volume 18 of APL Quote Quad, pages 39–43. ACM Press, 1988.
D.C. Cann. The Optimizing SISAL Compiler: Version 12.0. Lawrence Livermore National Laboratory, Livermore, California, 1993. part of the SISAL distribution.
J.T. Feo, P.J. Miller, S.K. Skedzielewski, S.M. Denton, and C.J. Solomon. Sisal 90. In A.P.W. Bohm and J.T. Feo, editors, Proceedings of the Conference on High Performance Functional Computing (HPFC’95), Denver, Colorado, USA, pages 35–47. Lawrence Livermore National Laboratory, Livermore, California, USA, 1995.
C. Grelck. Implementing the NAS Benchmark MG in SAC. In Proceedings of the 16th International Parallel and Distributed Processing Symposium (IPDPS’02), Fort Lauderdale, Florida, USA. IEEE Computer Society Press, 2002.
C. Grelck and S.-B. Scholz. HPF vs. SAC — A Case Study. In A. Bode, T. Ludwig, W. Karl, and R. Wismüller, editors, Proceedings of the 6th European Conference on Parallel Processing (Euro-Par’00), Munich, Germany, volume 1900 of Lecture Notes in Computer Science, pages 620–624. Springer-Verlag, Berlin, Germany, 2000.
R.K.W. Hui. Rank and Uniformity. In Proceedings of the International Conference on Array Processing Languages (APL’95), San Antonio, Texas, USA, APL Quote Quad, pages 83–90. ACM Press, 1995.
International Standards Organization. International Standard for Programming Language APL. ISO N8485, ISO, 1984.
International Standards Organization. Programming Language APL, Extended. ISO N93.03, ISO, 1993.
K.E. Iverson. Programming in J. Iverson Software Inc., Toronto, Canada, 1991.
M.A. Jenkins and J.I. Glagow. A Logical Basis for Nested Array Data Structures.Computer Languages Journal, 14(1):35–51, 1989.
M.A. Jenkins and W.H. Jenkins. The Q’Nial Language and Reference Manual. Nial Systems Ltd., Ottawa, Canada, 1993.
J.R. McGraw, S.K. Skedzielewski, S.J. Allan, R.R. Oldehoeft, et al. Sisal: Streams and Iteration in a Single Assignment Language: Reference Manual Version 1.2. M 146, Lawrence Livermore National Laboratory, Livermore, California, USA, 1985.
R.R. Oldehoeft. Implementing Arrays in SISAL 2.0. In Proceedings of the 2nd SISAL Users Conference, San Diego, California, USA, pages 209–222. Lawrence Livermore National Laboratory, 1992.
S.-B. Scholz. With-loop-folding in SAC — Condensing Consecutive Array Operations. In Proc. 9th International Workshop on Implementation of Functional Languages (IFL’97), St. Andrews, Scotland, UK, selected papers, volume 1467 of LNCS, pages 72–92. Springer, 1998.
S.-B. Scholz. Single Assignment C — Efficient Support for High-Level Array Operations in a Functional Setting. Journal of Functional Programming, 2003. Accepted for publication.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Grelck, C., Scholz, SB. (2003). Axis Control in SAC. In: Peña, R., Arts, T. (eds) Implementation of Functional Languages. IFL 2002. Lecture Notes in Computer Science, vol 2670. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44854-3_12
Download citation
DOI: https://doi.org/10.1007/3-540-44854-3_12
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40190-2
Online ISBN: 978-3-540-44854-9
eBook Packages: Springer Book Archive