Skip to main content
Log in

Parallel Sparse Supports for Array Intrinsic Functions of Fortran 90

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. 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.

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

    Google Scholar 

  10. 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.

  11. 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.

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

  15. 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.

    Google Scholar 

  16. 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.

  17. 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.

  18. 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.

    Google Scholar 

  19. J. Li and M. Chen. Compiling communication-efficient programs for massively parallel machines, IEEE Transactions on Parallel and Distributed Systems, 2:361-376, 1991.

    Google Scholar 

  20. 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.

  21. 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.

  22. OpenMP Architecture Review Board. OpenMP Fortran Application Program Interface, Version 1.1, 1999.

  23. 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.

  24. M. Philippsen and M. U. Mock. Data and process alignment in Modula-2*. In Automatic Parallelization: New Approaches, pp. 177-191. Verlag Vieweg, 1994.

  25. 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.

  26. 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.

  27. Y. Saad. SPARSKIT: a basic tool kit for sparse computations (Version 2). Technical report, Computer Science Department, University of Minnesota, USA, 1994.

  28. S. D. Stearns and R. A. David. Signal Processing Algorithms Using Fortran and C. Prentice-Hall, 1993.

  29. 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.

    Google Scholar 

  30. 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.

  31. 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.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008113800183

Navigation