This Article 
 Bibliographic References 
 Add to: 
The Classification, Fusion, and Parallelization of Array Language Primitives
October 1994 (vol. 5 no. 10)
pp. 1113-1120

We present a classification scheme for array language primitives that quantifies the variation in parallelism and data locality that results from the fusion of any two primitives. We also present an algorithm based on this scheme that efficiently determines when it is beneficial to fuse any two primitives. Experimental results show that five LINPACK routines report 50% performance improvement from the fusion of array operators.

[1] T. Budd,An APL Compiler. New York: Springer-Verlag, 1988.
[2] S. Chatterjee, G. E. Blelloch, and A. L. Fisher, "Size and access inference for data-parallel programs,"Proc. ACM SIGPLAN'91 Conf. Programming Language Design and Implementation. 1991, pp. 130-144.
[3] J. J. Dongarra, C. B. Moler, J. R. Bunch, and G. W. Stewart,LINPACK: Users' Guide. Philadelphia, PA: Society for Industrial and Applied Mathematics, 1979.
[4] Fortran 90 Standard, ISO/IEC 1539: 1991(E).
[5] S. Fortune and J. Wyllie, "Parallelism in random access machines," inProc. 10th Annu. ACM Symp. Theory Comput., 1978, pp. 114-118.
[6] L. J. Guibas and D. K. Wyatt, "Compilation and delayed evaluation in APL,"Proc. 5th Ann. ACM Symp. Principles of Programming Languages, 1978, pp. 1-8.
[7] W. D. Hillis and G. L. Steele, Jr., "Data parallel algorithms,"Commun. ACM, vol. 29, no. 12, pp. 1170-1183, Dec. 1986.
[8] "High-performance Fortran forum,"High-Performance Fortran Language Specification, Version 1.0 (draft), Sept. 1992.
[9] IBM, APL2 "Programming: Language reference," Tech. Rep. SH20- 9227-1, IBM Corp., available documentation, 1985.
[10] K. Iverson,A Programming Language. New York: Wiley, 1962.
[11] K. Iverson,Algebra: An Algorithmic Treatment. Pleasantville, NY: APL, 1972.
[12] D.-C. Ju and W.-M. Ching, "Exploitation of APL data parallelism on a shared-memory MIMD machine,"Proc. 3rd ACM SIGPLAN Symp. Principles and Practice of Parallel Programming, 1991, pp. 61-72.
[13] D. A. Padua and M. J. Wolfe, "Advanced compiler optimizations for supercomputers,"Common. ACM, vol. 29, no. 12, pp. 1184- 1201, Dec. 1986.
[14] J.R. Rose and G. L. Steele, "C*: An extended C language for data parallel programming," Tech. Rep. PL 87-5, Thinking Machine Corp., Cambridge, MA, 1987.
[15] L. W. Tucker and G. G. Robertson, "Architecture and applications of the connection machine,"IEEE Comput., pp. 26-39, Aug. 1988.
[16] R. G. Willhoft, "Parallel expression in the APL2 language,"IBM Syst. J., vol. 30, pp. 498-512, 1991.
[17] M. Wolfe,Optimizing Supercompilers for Supercomputers. Cambridge MA: MIT Press, 1989.

Index Terms:
Index Termsparallel programming; program compilers; parallel languages; optimisation; programming theory; array language primitives; classification; loop fusion; parallelization; classification scheme; data locality; LINPACK routines; performance improvement; array operators; compiler optimisation; data parallelism
D.C.R. Ju, C.L. Wu, P. Carini, "The Classification, Fusion, and Parallelization of Array Language Primitives," IEEE Transactions on Parallel and Distributed Systems, vol. 5, no. 10, pp. 1113-1120, Oct. 1994, doi:10.1109/71.313127
Usage of this product signifies your acceptance of the Terms of Use.