Skip to main content
Log in

Tools and techniques for non-invasive explicit parallelization

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

Abstract

This paper presents an overview of our experiments in integrating modern software engineering tools and techniques with the process of developing parallel applications for distributed memory architectures. The main goal was to determine the methods that have the potential of reducing the complexities associated with explicit parallelization. We experimented with template metaprogramming, aspect-oriented programming, program transformation engine, and a domain-specific language called Hi-PaL. The pros and cons of using each technique for explicit parallelization are presented in this paper. Our experiments demonstrate that through a combination of modern software engineering tools and techniques, the effort involved in explicit parallelization can be reduced by 90 % without any significant loss in performance.

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
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20

Similar content being viewed by others

References

  1. Charles P, Grothoff C, Saraswat VA, Donawa C, Kielstra A, Ebcioglu K, von Praun C, Sarkar V (2005) X10: an object-oriented approach to non-uniform cluster computing. In: OOPSLA 2005, pp 519–538

    Chapter  Google Scholar 

  2. Bal HE, Frans Kaashoek M, Tanenbaum AS (1992) Orca: a language for parallel programming of distributed systems. IEEE Trans Softw Eng 18(3):190–205

    Article  Google Scholar 

  3. Feo JT, Cann DC, Oldehoeft RR (1990) A report on the Sisal language project. J Parallel Distrib Comput 10(4):349–366

    Article  Google Scholar 

  4. Steele G (2006) Parallel programming and parallel abstractions in Fortress. In: Functional and logic programming, 8th international symposium (FLOPS 2006). LNCS, vol 3945. Springer, Berlin, p 1

    Chapter  Google Scholar 

  5. Freeh VW (1996) A comparison of implicit and explicit parallel programming. J Parallel Distrib Comput 34(1):50–65

    Article  Google Scholar 

  6. Gropp W, Lusk E, Skjellum A (1999) Using MPI: portable parallel programming with the message-passing interface. MIT Press, Cambridge, pp 1–371

    Google Scholar 

  7. The OpenMP API specification for parallel programming (2012) Access date: August 3, 2012, latest version date: September 2011. http://openmp.org/wp/

  8. Arora R, Bangalore P, Mernik M (2010) Raising the level of abstraction for developing message passing applications. J Supercomput. doi:10.1007/s11227-010-0490-3

    Google Scholar 

  9. Czarnecki K, Eisenecker U (2000) Generative programming: methods, tools, and applications Addison-Wesley, Reading, pp 1–832

    Google Scholar 

  10. Mernik M, Heering J, Sloane AM (2005) When and how to develop domain-specific languages. ACM Comput Surv 37(4):316–344

    Article  Google Scholar 

  11. Veldhuizen T (2012) Template metaprograms. http://www10.informatik.uni-erlangen.de/~pflaum/pflaum/ProSeminar/meta-art.html. Access date: August 3, 2012, latest revision date: October 3rd 1995

  12. Arora R (2012) FraSPA: A framework for synthesizing parallel applications. Ph.D. dissertation, University of Alabama at Birmingham, 2010, pp 1–203. http://www.cis.uab.edu/sites/default/files/pubs/RituArora_Dissertation.pdf. Access date: August 3, 2012

  13. Kiczales G, Lamping J, Mendhekar A, Maeda C, Lopes C, Loingtier J-M, Irwin J (1997) Aspect-oriented programming. In: European conference on object-oriented programming. LNCS, vol 1241. Springer, Berlin, pp 220–242

    Google Scholar 

  14. AspectC++ (2012) http://www.aspectc.org/. Access date: August 3, 2012, latest release date: 8th March 2012

  15. AspectC++ (2012) https://sites.google.com/a/gapp.msrg.utoronto.ca/aspectc/. Access date: August 3, 2012, latest release date: August 12th 2010

  16. Bangalore P (2007) Generating parallel applications for distributed memory systems using aspects, components, and patterns. In: 6th Workshop on aspects, components, and patterns for infrastructure software (ACP4IS ’07), Article 3. doi:10.1145/1233901.1233904

    Google Scholar 

  17. Arora R, Bangalore P (2008) Using aspect-oriented programming for checkpointing a parallel application. In: Parallel and distributed processing techniques and applications (PDPTA 2008), pp 955–961

    Google Scholar 

  18. Baxter I (1992) Design maintenance systems. Commun ACM 35(4):73–89

    Article  Google Scholar 

  19. Koelbel C, Loveman DB, Steele GL, Zosel ME (1994) High performance FORTRAN handbook. MIT Press, Cambridge, pp 1–329

    Google Scholar 

  20. The AMMA Platform (2012) http://atlanmod.emn.fr/AMMAROOT/. Access date: August 3, 2012, revision date: September 18th 2008

  21. Mattson TG, Sanders BA, Massingill BL (2004) Patterns for parallel programming. Addison-Wesley Professional, Reading, pp 1–384. ISBN-10: 0321228111

    Google Scholar 

  22. Zhang C, Chen X (2005) Region based image clustering and retrieval using multiple instance learning. In: Lecture notes in computer science, image/video annotation and clustering. Springer, Berlin, pp 194–204

    Google Scholar 

  23. Pescio C (1997) Template metaprogramming: make parameterized integers portable with this novel technique. C++ Report 9(7). http://www.eptacom.net/pubblicazioni/pub_eng/paramint.html

  24. Harbulot B, Gurd J (2004) Using AspectJ to separate concerns in a parallel scientific Java code. In: International conference on aspect-oriented software development, pp 122–131

    Chapter  Google Scholar 

  25. Harbulot B, Gurd J (2005) A join point for loops in AspectJ. In: Workshop on foundations of aspect-oriented languages. doi:10.1145/1119655.1119666

    Google Scholar 

  26. Chalabine M, Kessler C (2006) Crosscutting concerns in parallelization by invasive software composition and aspect weaving. In: 39th Hawaii international conference on system sciences. doi:10.1109/HICSS.2006.106

    Google Scholar 

  27. ROSE Compiler (2012) http://www.rosecompiler.org/. Access date: August 3, 2012, revision date: August 2nd 2012

  28. Roychoudhury S., Jouault F, Gray J (2007) Model-based aspect weaver construction. In: International workshop on language engineering, pp 117–126

    Google Scholar 

  29. Dean J, Ghemawat S (2008) MapReduce: simplifed data processing on large clusters. Commun ACM 51(1):107–113

    Article  Google Scholar 

  30. Goswami D, Singh A, Preiss BR (2002) Building parallel applications using design patterns. In: Advances in software engineering: topics in comprehension, evolution and evaluation. Springer, Berlin, pp 243–265

    Google Scholar 

  31. Mehta P, Amaral JN, Szafron D (2006) Is MPI suitable for a generative design-pattern system? Parallel Comput 32(7–8):616–626

    Article  Google Scholar 

  32. Püschel M, Moura JMF, Johnson J, Padua D, Veloso M, Singer B, Xiong J, Franchetti F, Gacic A, Voronenko Y, Chen K, Johnson RW, Rizzolo N (2005) SPIRAL: code generation for DSP transforms. Proc IEEE 93(2) 232–275. Special issue on program generation, optimization and adaptation

    Article  Google Scholar 

  33. DeVito Z, Joubert N, Palacios F, Oakley S, Medina M, Barrientos M, Elsen E, Ham F, Aiken A, Duraisamy K, Darve E, Alonso J, Hanrahan P (2011) Liszt: a domain specific language for building portable mesh-based PDE solvers. In: Proceedings of 2011 international conference for high performance computing, networking, storage and analysis (SC ’11). Article 9, 12 pages

    Google Scholar 

  34. Arora R, Bangalore P, Mernik M (2011) A technique for non-invasive application-level checkpointing. J Supercomput 57(3):227–255. doi:10.1007/s11227-010-0383-5

    Article  Google Scholar 

Download references

Acknowledgements

We would like to thank Dr. Jeff Gray, Dr. Frédéric Jouault, and Dr. Suman Roychoudhury for their guidance on the software engineering techniques used in this research. This work was made possible in part by a grant of high performance computing resources from the Department of Computer and Information Sciences at the University of Alabama at Birmingham, the School of Natural Sciences and Mathematics at the University of Alabama at Birmingham, and the National Science Foundation Award CNS-0420614.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ritu Arora.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Arora, R., Bangalore, P. & Mernik, M. Tools and techniques for non-invasive explicit parallelization. J Supercomput 62, 1583–1608 (2012). https://doi.org/10.1007/s11227-012-0822-6

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-012-0822-6

Keywords

Navigation