Abstract
Powerlists are data structures that can be successfully used for defining parallel programs based on divide-and-conquer paradigm. These parallel recursive data structures and their algebraic theories offer both a methodology to design parallel algorithms and parallel programming abstractions to ease the development of parallel applications. The paper presents a technique for speeding up the parallel recursive programs defined based on powerlists. The improvements are achieved by applying transformation rules that introduce tuple functions and prefix operators, for which a more efficient execution model is defined. Together with the execution model, a cost model is also defined in order to allow a proper evaluation. The treated examples emphasise the fact that the transformation leads to important improvements of the programs. The speeding up is achieved by reducing the number of recursive calls, and also by enable the fusion of splitting/combining operations on different data structures. In addition, enhancing the function that has to be computed to other useful functions using a tuple, could improved the cost reduction even more.
Similar content being viewed by others
References
Achatz K, Schulte W (1995) Architecture independent massive parallelization of divide-and-conquer algorithms. Fakultaet fuer Informatik, Universitaet Ulm, Ulm
Bertot Y, Casteran P (2004) Interactive theorem proving and program development. Springer, Berlin
Bird R (1987) An introduction to the theory of lists. In: Broy M (ed) Logic of programming and calculi of discrete design. Springer, Berlin, pp 5–42
Chin W (1992) Safe fusion of functional expressions. In: Proc. Conference on Lisp and Functional Programming, San Francisco, California
Chin W (1993) Towards an automated tupling strategy. In: Proc Conference on Partial Evaluation and Program Manipulation. ACM Press, Copenhagen, pp 119–132
Cole M (1989) Algorithmic skeletons: structured management of parallel computation. MIT Press, Cambridge
Cooley JW, Tukey JW (1965) An algorithm for the machine calculation of complex Fourier series. Math Comput 19:297–301
Cousineau G, Mauny M (1998) The functional approach to programming. Cambridge University Press, Cambridge
Gesbert L, Gava F, Loulergue F, Dabrowski F (2010) Bulk synchronous parallel ML with exceptions. Future Gener Comput Syst 26:486–490
Gorlatch S (2003) SAT: a programming methodology with skeletons and collective operations. In: Rabhi FA, Gorlatch S (eds) Patterns and skeletons for parallel and distributed computing. Springer, Berlin, pp 29–64
Hu Z, Iwasaki H, Takeichi M (1996) Construction of list homomorphisms by tupling and fusion. In: Penczek W, Szalas A (eds) Mathematical Foundations of Computer Science (Lecture Notes in Computer Science), vol 1113. Springer, Berlin, pp 407–418
Kornerup J (1997) Data structures for parallel recursion. In: Ph.D. dissertation, University of Texas
Loulergue F, Niculescu V, Tesson J (2014) Implementing powerlists with bulk synchronous parallel ML. In: 16th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC2014), Timisoara, Romania, 22–25 Sept. IEEE Computer Society 2014, pp 325–332
Loulergue F, Niculescu V, Robillard S. (2013) Powerlists in Coq: programming and reasoning. In: First International Symposium on Computing and Networking (CANDAR 2013) Matsuyama, Japan, Dec. 4–6, 2013, pp 57–65. IEEE Computer Society
Misra J (1994) Powerlist: a structure for parallel recursion. ACM Trans Program Lang Syst 16(6):1737–1767
Niculescu V (2007) Data-distributions in powerlist theory. In: Jones CB, Liu Z, Woodcock J (eds) Theoretical aspects of computing (ICTAC) (Ser LNCS) vol. 4711. Springer, pp 396–409
Niculescu V (2011) PARES—a model for parallel recursive programs. Rom J Inf Sci Technol 14(2):159–182
Niculescu V, Loulergue F, Bufnea D, Sterca A (2017) A java framework for high level parallel programming using powerlists. In: 18th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT) 18–20, pp 255–262
Valiant LG (1990) A bridging model for parallel computation. Commun ACM 33(8):103–111
Wadler P (1990) Deforestation: transforming programs to eliminate trees. Theor Comput Sci 73:231–248
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Niculescu, V., Loulergue, F. Transforming powerlist-based divide-and-conquer programs for an improved execution model. J Supercomput 76, 5016–5037 (2020). https://doi.org/10.1007/s11227-019-02820-x
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-019-02820-x