ABSTRACT
Although multicomputers are becoming feasible for solving large problems, they are difficult to program: Extraction of parallelism from scalar languages is possible, but limited. Parallelism in algorithm design is difficult for those who think in von Neumann terms. Portability of programs and programming skills can only be achieved by hiding the underlying machine architecture from the user, yet this may impact performance on a specific host.APL, J, and other applicative array languages with adequately rich semantics can do much to solve these problems. The paper discusses the value of abstraction and semantic richness, performance issues, portability, potential degree of parallelism, data distribution, process creation, communication and synchronization, frequency of program faults, and clarity of expression. The BLAS are used as a basis for comparison with traditional supercomputing languages.
- Abr70.Philip Abrams. An APL Machine. PhD thesis, Stanford University, 1970. Google ScholarDigital Library
- AKPW83.j.R. Allen, K. Kennedy, C. Porterfield, and J. Warren. Conversion of control dependence; to data dependence. In Proceedings of the Principles of Programming Languages Conference, 1983. Google ScholarDigital Library
- APL87.APL2 Programming: Language Reference. 1987. SH20-9227.Google Scholar
- Ben83a.Jon Bentley. Programming pearls. Communications of the ACM, 20(8), July 1983.Google Scholar
- Ben83b.Jon Bentley. Programming pearls. Communications of the A CM, 20(9), August 1983. Google ScholarDigital Library
- Ber84.Robert Bernecky. Function arrays. ACM SIGAPL Quote Quad, 14(4), June 1984. Google ScholarDigital Library
- Ber86.Robert Bernecky. APL: a prototyping language. A CM SIGAPL Quote Quad, 16(4), July 1986. Google ScholarDigital Library
- Ber87.Robert Bernecky. An introduction to function rank. A CM SIGAPL Quote Quad, 18(2), December 1987. Google ScholarDigital Library
- Ber91a.Robert Bernecky. Fortran 90 arrays. ACM SIGPLAN Notices, 26(2), February 1991. Google ScholarDigital Library
- Ber91b.Robert Bernecky. Fortran 90 arrays. APL- CAM Journal, 13(4), October 1991. Originally appeared in ACM SIGPLAN Notices, 26(2), February 1991. Google ScholarDigital Library
- Ber93.Robert Bernecky. Array morphology. ACM SIGAPL Quote Quad, 24(1), August 1993. Google ScholarDigital Library
- BH91.Robert Bernecky and R.K.W. Hui. Gerunds and representations. ACM SIGAPL Quote Quad, 21(4), July 1991. Google ScholarDigital Library
- BI80.Robert Bernecky and Kenneth E. Iverson. Operators and enclosed arrays. In APL Users Meeting 1980, I.P. Sharp Associates Limited, 1980.Google Scholar
- Cam89.Lloyd W. Campbell, editor. Fortran 88: A Proposed Revision of FORTRAN 77. ISO/IEC JTCI/SC22/WG5-N357, March 1989.Google Scholar
- Can92.David Cann. Retire Fortran? A debate rekindled. Communications of the A CM, 35(8), August 1992. Google ScholarDigital Library
- DD90.M.J. Dayd6 and I.S. Duff. Use of parallel level 3 BLAS in LU factorization on three vector multiprocessors- the Alliant FX/80, the CRAY-2, and the IBM 3090VF. 1990 h~ternational Conference on Supercomputing, June 1990. Google ScholarDigital Library
- DDHD90.J.J. Dongarra, Jeremy Decroz, Sven Hammarlung, and Ian Duff. A set of level 3 basic linear algebra subprograms. A CM Transactions on Mathematical Software, 16(1 ), March 1990. Google ScholarDigital Library
- HIM91.Roger K.W. Hui, Kenneth E. Iverson, and Eugene E. McDonnell. Tacit programming. ACM SIGAPL Quote Quad, 21 (4), August 1991. Google ScholarDigital Library
- HP90.John L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kauffman, 1990. Google ScholarDigital Library
- HSF92.Susan Flynn Hummel, Edith Schonberg, and Lawrence E. Flynn. Factoring: a method for scheduling parallel loops. Communications of the A CM, 35(8), August 1992. Google ScholarDigital Library
- Ive62.Kenneth E. Iverson. A Programming Language. Wiley, 1962. Google ScholarDigital Library
- Ive91.Kenneth E. Iverson. Programming in J. 1991.Google Scholar
- Ive92.Kenneth E. Iverson. A Dictionary of J. J version 5 edition, 1992.Google Scholar
- JSA*85.McGraw J.R, S.K. Skedzielewski, S.J. Allen, R.R. Oldehoeft, J. Glauert, C. Kirkham, W. Noyce, and R. Thomas. SISAL: Streams and Iterations in a Single-Assignment Language, Language Reference Manual. Technical Report M-146, Revision 1, Lawrence Livermore National Laboratory, March 1985.Google Scholar
- Lei92.F. Thomson Leighton. Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes. Morgan Kaufmann, 1992. Google ScholarDigital Library
- LHKK79.C.L. Lawson, R.J. Hanson, D.R. Kincaid, and F.T. Krogh. Basic linear algebra subroutines for FORTRAN usage. A CM Transactions on Mathematical Software, 5(3), September 1979. Google ScholarDigital Library
- McI91.D.B. McIntyre. Language as an intellectual tool: from hieroglyphics to APL. IBM Systems Journal, 30(4), 1991. Google ScholarDigital Library
- MI89.Eugene E. McDonnell and Kenneth E. Iverson. Phrasal forms. A CM SIGAPL Quote Quad, 19(4), August 1989. Google ScholarDigital Library
- MM89.M.V. Morreale and M. Van Der Meulen. Primitive Function Performance of APL2 Version 1 Release 3 (with SPE PL34409) on the IBM 3090/S Vector Facility. Technical Report Technical Bulletin No. GG66-3130-00, IBM Washington Systems Center, IBM Corporation, May 1989.Google Scholar
- Per79.Alan J. Perlis. Programming with idioms in APL. A CM SIGAPL Quote Quad, 9(4), June 1979. Google ScholarDigital Library
- SHA91.SHARP APL Reference Manual. Reuters Information Services (Canada) Limited, Toronto, Canada, 2nd edition, 1991.Google Scholar
- SHA93.SHARP APL Reference Manual. iverson Software Inc., 33 Major St., Toronto, Canada, 2nd edition, 1993.Google Scholar
- Smi81.Bob Smith. Nested arrays, operators, and fufictions. ACM SIGAPL Quote Quad, 12(1), September 1981. Google ScholarDigital Library
- Ste93.Guy L. Steele Jr. High performance Fortran: status report. A CM SIGPLAN Notices, 28(1), January 1993. Google ScholarDigital Library
- Sto87.Harold S. Stone. High-Performance Computer Architecture. Addison-Wesley, 1987. Google ScholarDigital Library
- Wal91.David W. Wall. Limits of instruction-level parallelism. In Proceedings ofASPLOS, 1991. Google ScholarDigital Library
- Wil91.R.G. Willhoft. Parallel expression in the APL2 language. IBM Systems Journal, 30(4), 1991. Google ScholarDigital Library
Index Terms
- The role of APL and J in high-performance computation
Recommendations
The role of APL and J in high-performance computation
Although multicomputers are becoming feasible for solving large problems, they are difficult to program: Extraction of parallelism from scalar languages is possible, but limited. Parallelism in algorithm design is difficult for those who think in von ...
High-Performance Languages for Parallel Computing
For the first 10 years of parallel computing, no high-level software infrastructure was commercially available for parallel architectures, forcing users to adopt a programming paradigm similar to assembly-language programming. In the 1980s, research ...
Comments