Abstract
In this paper we present a novel transformation technique which, given a program defined on any data-type, automatically derives conversion functions for data of that type to and from well-partitioned join-lists. Using these conversion functions we employ existing program transformation techniques in order to redefine the given program into an implicitly parallel one defined in terms of well-partitioned data.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Blelloch, G.E.: Scans as primitive operations. IEEE Trans. Comput. 38(11), 1526–1538 (1989)
Chin, W.-N., Khoo, S.-C., Hu, Z., Takeichi, M.: Deriving parallel codes via invariants. In: Palsberg, J. (ed.) SAS 2000. LNCS, vol. 1824, pp. 75–94. Springer, Heidelberg (2000)
Chin, W.N., Takano, A., Hu, Z., Chin, W., Takano, A., Hu, Z.: Parallelization via context preservation. In: IEEE International Conference on Computer Languages, IEEE CS Press, pp. 153–162 (1998)
Gibbons, J.: The third homomorphism theorem. J. Funct. Program. 6(4), 657–665 (1996). Earlier version appeared in Jay, C.B., (ed.), Computing: The Australian Theory Seminar, Sydney, pp. 62–69, December 1994
Gorlatch, S.: Systematic efficient parallelization of scan and other list homomorphisms. In: Fraigniaud, P., Mignotte, A., Robert, Y., Bougé, L. (eds.) Euro-Par 1996. LNCS, vol. 1124, pp. 401–408. Springer, Heidelberg (1996)
Gorlatch, S.: Systematic extraction and implementation of divide-and-conquer parallelism. In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 274–288. Springer, Heidelberg (1996)
Hamilton, G., Jones, N.: Distillation and labelled transition systems. In: Proceedings of the ACM Workshop on Partial Evaluation and Program Manipulation, pp. 15–24, January 2012
Hu, Z., Iwasaki, H., Takechi, M.: Formal derivation of efficient parallel programs by construction of list homomorphisms. ACM Trans. Program. Lang. Syst. 19(3), 444–461 (1997)
Hu, Z., Takeichi, M., Chin, W.-N.: Parallelization in calculational forms. In: Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, POPL 1998, pp. 316–328, ACM, New York (1998)
Hu, Z., Takeichi, M., Iwasaki, H.: Diffusion: calculating efficient parallel programs. In: 1999 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pp. 85–94(1999)
Hu, Z., Yokoyama, T., Takeichi, M.: Program optimizations and transformations in calculation form. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2005. LNCS, vol. 4143, pp. 144–168. Springer, Heidelberg (2006)
Huet, G.: The zipper. J. Funct. Program. 7(5), 549–554 (1997)
Iwasaki, H., Hu, Z.: A new parallel skeleton for general accumulative computations. Int. J. Parallel Prog. 32, 389–414 (2004)
Meertens, L.: Paramorphisms. Formal Aspects Comput. 4(5), 413–424 (1992)
Morihata, A., Matsuzaki, K., Hu, Z., Takeichi, M.: The third homomorphism theorem on trees: downward & upward lead to divide-and-conquer. In: Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of programming languages, POPL 1909, pp. 177–185. ACM, New York (2009)
Skillicorn, D.: Foundations of Parallel Programming. Cambridge International Series on Parallel Computation. Cambridge University Press, Cambridge (2005)
Skillicorn, D.B.: Architecture-independent parallel computation. Computer 23, 38–50 (1990)
Skillicorn, D.B.: The bird-meertens formalism as a parallel model. In: Kowalik, J.S., Grandinetti, L. (eds.) Software for Parallel Computation. NATO ASI Series F, vol. 106, pp. 120–133. Springer, Heidelberg (1993)
Teo, Y.M., Chin, W.-N., Tan, S.H.: Deriving efficient parallel programs for complex recurrences. In: Proceedings of the Second International Symposium on Parallel symbolic computation, PASCO 1997, pp. 101–110. ACM, New York (1997)
Acknowledgements
This work was supported, in part, by Science Foundation Ireland grant 10/CE2/I303_1 to Lero - the Irish Software Engineering Research Centre.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dever, M., Hamilton, G.W. (2015). Automatically Partitioning Data to Facilitate the Parallelization of Functional Programs. In: Voronkov, A., Virbitskaite, I. (eds) Perspectives of System Informatics. PSI 2014. Lecture Notes in Computer Science(), vol 8974. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-46823-4_5
Download citation
DOI: https://doi.org/10.1007/978-3-662-46823-4_5
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-46822-7
Online ISBN: 978-3-662-46823-4
eBook Packages: Computer ScienceComputer Science (R0)