Abstract
The data-parallel programming model is currently the most successful model for programming massively parallel computers. Unfortunately, it is, in its present form, restricted to exploiting flat data parallelism, which is not suitable for some classes of algorithms, e.g. those operating on irregular structures. Recently, some effort has been made to implement nested data-parallel programs efficiently by compiling them into equivalent flat programs using a transformation called flattening. However, previous translations of nested into flat data-parallel programs have proved unwieldy when it comes to inventing and specifying optimizations and verifying the translation. This paper presents a new formalization of the flattening transformation in a calculational style. The formalization is easily verified and provides a good starting point for the development of new optimizations. Some optimizations invented on the basis of this new formalism are described. Furthermore, we present practical evidence obtained by experimenting with an implementation of the transformation.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
P. K. T. Au, M. M. T. Chakravarty, J. Darlington, Y. Guo, S. Jährlichen, G. Keller, M. Köhler, M. Simons, and W. Pfannenstiel. Enlarging the scope of vector-based computations: extending Fortran 90 with nested data parallelism. In W. Giloi, ed., Intl. Conf. on Advances in Parallel and Distributed Computing. IEEE Computer Society, 1997.
R. Backhouse. The calulational method. Inf. Process. Lett., 53, 1995.
R. Bird. An introduction to the theory of lists. In M. Broy, ed., Logic of Programming and Calculi of Discrete Design, pp. 3–42. Springer, 1986.
G. E. Blelloch. Vector Models for Data-Parallel Computing. The MIT Press, 1990.
G. E. Blelloch. Nesl: A nested data-parallel language. TR CMU-CS-95-170, CMU, 1995.
G. E. Blelloch. Programming parallel algorithms. Commun. ACM, 39(3):85–97, 1996.
G. E. Blelloch, S. Chatterjee, J. C. Hardwick, M. Reid-Miller, J. Sipelstein, and M. Zagha. CVL: A C vector library. TR CMU-CS-93-114, CMU, 1993.
G. E. Blelloch, S. Chatterjee, J. C. Hardwick, J. Sipelstein, and M. Zagha. Implementation of a portable nested data-parallel language. J. Par. Distr. Comput., 21(1):4–14, 1994.
M. M. T. Chakravarty, F.-W. Schröer, and M. Simons. V—Nested parallelism in C. In Giloi et al. [10], pp. 167–174.
W. K. Giloi, S. Jähnichen, and B. D. Shriver, eds. Programming Models for Massively Parallel Computers. IEEE Computer Society, 1995.
D. Gries and F. B. Schneider. Avoiding the undefined by underspecification. In J. van Leeuwen, ed., Computer Science Today, LNCS 1000, pp. 366–373. Springer, 1996.
HPF Forum. HPF language specification (Version 1.0). Tech. rep., Rice University, 1993.
C. B. Jay. A semantics for shape. Sci. Comput. Programming, 25:251–283, 1995.
S. Liang and P. Hudak. Modular denotational semantics for compiler construction. In H. R. Nielson, ed., Europ. Symp. on Programming (ESOP'96), LNCS 1058. Springer, 1996.
D. Palmer, J. Prins, and S. Westfold. Work-efficient nested data-parallelism. In 5th Symp. on the Front. of Massively Parallel Processing. IEEE Computer Society, 1995.
J. Prins and D. Palmer. Transforming high-level data-parallel programs into vector operations. In 4th ACM Symp. on Princ. and Pract. of Parall. Programming, pp. 119–128, 1993.
J. W. Riely, J. Prins, and S. P. Iyer. Provably correct vectorization of nested-parallel programs. In Giloi et al. [10], pp. 213–222.
G. W. Sabot. The Paralation Model: Architecture-Independent Parallel Programming. The MIT Press, 1988.
Thinking Machines Corporation. C * Language Reference Manual, 1991.
P. Wadler. Comprehending monads. Math. Struct. in Comp. Sci., 2:461–493, 1992.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Keller, G., Simons, M. (1996). A calculational approach to flattening nested data parallelism in functional languages. In: Jaffar, J., Yap, R.H.C. (eds) Concurrency and Parallelism, Programming, Networking, and Security. ASIAN 1996. Lecture Notes in Computer Science, vol 1179. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0027796
Download citation
DOI: https://doi.org/10.1007/BFb0027796
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-62031-0
Online ISBN: 978-3-540-49626-7
eBook Packages: Springer Book Archive