Abstract
Fortran 90 provides a rich set of array intrinsic functions. Each of these array intrinsic functions operates on the elements of multi-dimensional array objects concurrently. They provide a rich source of parallelism and play an increasingly important role in automatic support of data parallel programming. However, there is no such support if these intrinsic functions are applied to sparse data sets. In this paper, we address this open gap by presenting an efficient library for parallel sparse computations with Fortran 90 array intrinsic operations. Our method provides both compression schemes and distribution schemes on distributed memory environments applicable to higher-dimensional sparse arrays. This way, programmers need not worry about low-level system details when developing sparse applications. Sparse programs can be expressed concisely using array expressions, and parallelized with the help of our library. Our sparse libraries are built for array intrinsics of Fortran 90, and they include an extensive set of array operations such as CSHIFT, EOSHIFT, MATMUL, MERGE, PACK, SUM, RESHAPE, SPREAD, TRANSPOSE, UNPACK, and section moves. Our work, to our best knowledge, is the first work to give sparse and parallel sparse supports for array intrinsics of Fortran 90. In addition, we provide a complete complexity analysis for our sparse implementation. The complexity of our algorithms is in proportion to the number of nonzero elements in the arrays, and that is consistent with the conventional design criteria for sparse algorithms and data structures. Our current testbed is an IBM SP2 workstation cluster. Preliminary experimental results with numerical routines, numerical applications, and data-intensive applications related to OLAP (on-line analytical processing) show that our approach is promising in speeding up sparse matrix computations on both sequential and distributed memory environments if the programs are expressed with Fortran 90 array expressions.
Similar content being viewed by others
References
J. C. Adams, W. S. Brainerd, J. T. Martin, B. T. Smith, and J. L. Wagener. Fortran 90 Handbook, Intertext Publications/McGraw-Hill Inc., 1992.
A. J. C. Bik and H. A. G. Wijshoff. Automatic data structure selection and transformation for sparse matrix computations. IEEE Transactions on Parallel and Distributed Systems, 7:109-126, 1996.
R.-G. Chang, C.-W. Chen, T.-R. Chuang, and J. K. Lee. Towards automatic supports of parallel sparse computation in Java with continuous compilation. Concurrency: Practice and Experience, 9:1101-1111, 1997.
R.-G. Chang, T.-R. Chuang, and J. K. Lee. Efficient support of parallel sparse computation for array intrinsic functions of Fortran 90. In Proceedings of the 1998 ACM International Conference on Supercomputing, Melbourne, Australia, pp. 45-52, 1998.
R.-G. Chang, T.-R. Chuang, and J. K. Lee. Compiler optimizations for parallel sparse programs with array intrinsics of Fortran 90. In Proceedings of the 1999 International Conference on Parallel Processing, Aizu-Wakamatsu City, Japan, pp. 103-110, 1999.
S. Chatterjee, J. Gilbert, R. Schreiber, and S. H. Teng. Automatic array alignment in data-parallel programs. In Proceedings of 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, pp. 16-28, 1993.
W.-M. Ching and A. Katz. An experimental APL compiler for a distributed memory parallel machine. In Proceedings of Supercomputing, Washington, D.C., pp. 59-68, 1994.
T.-R. Chuang, R.-G. Chang, and J. K. Lee. Sampling and analytical techniques for data distribution of parallel sparse computation. In 8th SIAM Conference on Parallel Processing for Scientific Computing, Minneapolis, 8 pp., 1997.
J. R. Gilbert, C. Moler, and R. Schreiber. Sparse matrices in MATLAB: Design and implementation. SIAM Journal on Matrix Analysis and Applications, 13:333-356, 1992.
S. Goil and A. Choudhary. High performance OLAP and data mining on parallel computers. In Proceedings of 12th International Parallel Processing Symposium & 9th Symposium on Parallel and Distributed Processing, Orlando, Fl., pp. 548-555, 1998.
G.-H. Hwang, J. K. Lee, and D. C. Ju. An array operation synthesis scheme to optimize Fortran 90 programs. In Proceedings of the 5th ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming, Santa Barbara, Calif., pp. 112-122, 1995.
G.-H. Hwang, J. K. Lee, and D. C. Ju. Array operation synthesis to optimize HPF programs. In Proceedings of the 1996 International Conference on Parallel Processing, Bloomingdale, Ill., Vol. 3, pp. 1-8, 1996.
G.-H. Hwang, J. K. Lee, and D. C. Ju. A function-composition approach to synthesize Fortran 90 array operations. Journal of Parallel and Distributed Computing, 54:1-47, 1998.
M. V. Joshi, G. Karypis, and V. Kumar. ScalParC: a new scalable and efficient parallel classification algorithm for mining large datasets. In Proceedings of 12th International Parallel Processing Symposium and 9th Symposium on Parallel and Distributed Processing, Orlando, Fl., pp. 573-579, 1998.
K. Knobe, J. D. Lukas, and G. L. Steele. Data optimization: allocation of arrays to reduce communication on SIMD machines. Journal of Parallel and Distributed Computing, 8:102-118, 1990.
C. H. Koelbel, D. B. Loveman, R. S. Schreiber, G. L. Steele Jr., and M. E. Zosel. The High Performance Fortran Handbook. The MIT Press, 1994.
V. Kotlyar, K. Pingali, and P. Stodghill. Compiling parallel sparse code for user-defined data structures. In 8th SIAM Conference on Parallel Processing for Scientific Computing, Minneapolis, 8 pp. 1997.
J. Li and M. Chen. The data alignment phase in compiling programs for distributed-memory machines. Journal of Parallel and Distributed Computing, 13:213-221, 1991.
J. Li and M. Chen. Compiling communication-efficient programs for massively parallel machines, IEEE Transactions on Parallel and Distributed Systems, 2:361-376, 1991.
T. M. Lin, Y.-C. Chuang, J. K. Lee, K. L. Wu, and C. A. Lin. Parallelisation of pressure correction method on unstructured grids, In Parallel Computational Fluid Dynamics: Development and Applications of Parallel Technology, pp. 451-458, 1998.
L. M. Ni, H. Xu, and E. T. Kalns. Issues in scalable library design for massively parallel computers. In Proceedings of Supercomputing, Portland, Ore., pp. 181-190, 1993.
OpenMP Architecture Review Board. OpenMP Fortran Application Program Interface, Version 1.1, 1999.
M. Philippsen Automatic alignment of array data and process to reduce communication time on.parallel sparse supports 339 DMPPs. In Proceedings of the 5th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Santa Barbara, Calif., pp. 112-122, 1995.
M. Philippsen and M. U. Mock. Data and process alignment in Modula-2*. In Automatic Parallelization: New Approaches, pp. 177-191. Verlag Vieweg, 1994.
W. H. Press, S. A. Teukolsky, W. T. Vetterling, and B. P. Flannery. Numerical Recipes in Fortran 90: The Art of Parallel Scientific Computing. Cambridge University Press, 1996.
L. D. Rose and D. Padua. A MATLAB to Fortran 90 translator and its effectiveness. In Proceedings of the 1996 ACM International Conference on Supercomputing, Philadelphia, pp. 309-316, 1996.
Y. Saad. SPARSKIT: a basic tool kit for sparse computations (Version 2). Technical report, Computer Science Department, University of Minnesota, USA, 1994.
S. D. Stearns and R. A. David. Signal Processing Algorithms Using Fortran and C. Prentice-Hall, 1993.
M. Ujaldon, S. D. Sharma, J. Saltz, and E. L. Zapata. Run-time techniques for parallelizing sparse matrix problems. In Parallel Algorithms for Irregularly Structured Problems: 2nd International Workshop, Lyon, France, 1995. Lecture Notes in Computer Science, Vol. 980, pp. 43-57. Springer-Verlag, 1995.
M. Ujaldon and E. Zapata. Efficient resolution of sparse indirections in data-parallel compilers. In Proceedings of the 1995 ACM International Conference on Supercomputing, Barcelona, Spain, pp. 117-126, 1995.
M. Ujaldon, E. Zapata, B. M. Chapman, and H. P. Zima. New data-parallel language features for sparse matrix computations. In Proceedings of the 9th International Parallel Processing Symposium, Santa Barbara, Calif., pp. 742-749, 1995.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Chang, RG., Chuang, TR. & Lee, J.K. Parallel Sparse Supports for Array Intrinsic Functions of Fortran 90. The Journal of Supercomputing 18, 305–339 (2001). https://doi.org/10.1023/A:1008113800183
Issue Date:
DOI: https://doi.org/10.1023/A:1008113800183