Skip to main content
Log in

Transforming powerlist-based divide-and-conquer programs for an improved execution model

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

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.

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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

References

  1. Achatz K, Schulte W (1995) Architecture independent massive parallelization of divide-and-conquer algorithms. Fakultaet fuer Informatik, Universitaet Ulm, Ulm

    Book  Google Scholar 

  2. Bertot Y, Casteran P (2004) Interactive theorem proving and program development. Springer, Berlin

    Book  Google Scholar 

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

    Chapter  Google Scholar 

  4. Chin W (1992) Safe fusion of functional expressions. In: Proc. Conference on Lisp and Functional Programming, San Francisco, California

  5. Chin W (1993) Towards an automated tupling strategy. In: Proc Conference on Partial Evaluation and Program Manipulation. ACM Press, Copenhagen, pp 119–132

  6. Cole M (1989) Algorithmic skeletons: structured management of parallel computation. MIT Press, Cambridge

    MATH  Google Scholar 

  7. Cooley JW, Tukey JW (1965) An algorithm for the machine calculation of complex Fourier series. Math Comput 19:297–301

    Article  MathSciNet  Google Scholar 

  8. Cousineau G, Mauny M (1998) The functional approach to programming. Cambridge University Press, Cambridge

    Book  Google Scholar 

  9. Gesbert L, Gava F, Loulergue F, Dabrowski F (2010) Bulk synchronous parallel ML with exceptions. Future Gener Comput Syst 26:486–490

    Article  Google Scholar 

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

    Chapter  Google Scholar 

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

  12. Kornerup J (1997) Data structures for parallel recursion. In: Ph.D. dissertation, University of Texas

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

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

  15. Misra J (1994) Powerlist: a structure for parallel recursion. ACM Trans Program Lang Syst 16(6):1737–1767

    Article  Google Scholar 

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

  17. Niculescu V (2011) PARES—a model for parallel recursive programs. Rom J Inf Sci Technol 14(2):159–182

    Google Scholar 

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

  19. Valiant LG (1990) A bridging model for parallel computation. Commun ACM 33(8):103–111

    Article  Google Scholar 

  20. Wadler P (1990) Deforestation: transforming programs to eliminate trees. Theor Comput Sci 73:231–248

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Virginia Niculescu.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-019-02820-x

Keywords

Navigation