Skip to main content
Log in

Trasgo: a nested-parallel programming system

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

Abstract

Programming models of pure nested-parallelism are appealing due to their ease of programming and good analysis and debugging properties. Although their simple synchronization structure is appropriate to represent abstract parallel algorithms, it does not take into account many implementation issues. In this work we present Trasgo, a programming system based on high-level, nested-parallel specifications. We show how it allows to easily express complex combinations of data and task parallelism with a common scheme, hiding the layout and scheduling details. The approach allows the development of a modular compiler where automatic transformation techniques may exploit lower level and more complex synchronization structures, unlocking the limitations of pure nested-parallel programming. This article presents an overview of the features of Trasgo, and its architecture. We present some performance results using well-known parallel algorithms, and a roadmap of improvements and new features to be added to Trasgo.

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.

Institutional subscriptions

Similar content being viewed by others

References

  1. Bikshandi G, Guo J, Hoeflinger D, Almasi G, Fraguela BB, Garzarn MJ, Padua D, von Praun C (2006) Programming for parallelism and locality with hierarchical tiled arrays. In: PPoPP’06. ACM, New York, pp 48–57

    Google Scholar 

  2. Blumofe RD, Leiserson CE (1994) Scheduling multithreaded computations by work-stealing. In: Proc annual symp on FoCS, pp 356–368

  3. González-Escribano A, van Gemund AJC, Cardeñoso-Payo V (2005) SPC-XML: A structured representation for nested-parallel programming languages. In: Medeiros PD, Cunha JC (eds) Euro-par 2005, parallel processing. LNCS, vol 3648. ACM, New York, pp 782–792

    Chapter  Google Scholar 

  4. Gorlatch S, (2001) Send-Recv considered harmful? Myths and truths about parallel programming. In: Malyshkin V (ed) PaCT’2001. LNCS, vol 2127. Springer, Berlin, pp 243–257

    Google Scholar 

  5. Lodaya K, Weil P (1998) Series-parallel posets: Algebra, automata, and languages. In: Proc STACS’98, Paris, France. LNCS, vol 1373. Springer, Berlin, pp 555–565

    Google Scholar 

  6. Nickolls J, Buck I, Garland M, Skadron K (2008) Scalable parallel programming with CUDA. ACM Queue 6(2):40–53

    Article  Google Scholar 

  7. Reinders J (2007) Intel threading building blocks: outfitting C++ for multi-core processor parallelism. O’Reilly, Sebastopol

    Google Scholar 

  8. Skillicorn DB (1995) A cost calculus for parallel functional programming. J Parallel Distrib Comput 28:65–83

    Article  MATH  Google Scholar 

  9. Skillicorn DB (1996) miniBSP: A BSP language and transformation system. Technical report, Dept of Computing and Information Sciences, Queen’s University, Kingston, Canada

  10. Skillicorn DB, Talia D (1998) Models and languages for parallel computation. ACM Comput Surv 30(2):123–169

    Article  Google Scholar 

  11. Valdés J, Tarjan RE, Lawler EL (1982) The recognition of series parallel digraphs. SIAM J Comput 11(2):298–313

    Article  MathSciNet  MATH  Google Scholar 

  12. van Gemund AJC (1997) The importance of synchronization structure in parallel program optimization. In: Proc 11th ACM ICS, Vienna, pp 164–171

  13. VanderWiel SP, Nathanson D, Lilja DJ (1997) Complexity and performance in parallel programming. In: Proc HIPS’97, Geneva, Switzerland. IEEE Comput. Soc, Los Alamitos

    Google Scholar 

  14. Varbanescu AL, Nijhuis M, González-Escribano A, Sips H, Bos H, Bal H (2007) SP@CE-An SP-based programming model for consumer electronics streaming applications. Lect Notes Comput Sci 4382:33–48

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Diego R. Llanos.

Rights and permissions

Reprints and permissions

About this article

Cite this article

González-Escribano, A., Llanos, D.R. Trasgo: a nested-parallel programming system. J Supercomput 58, 226–234 (2011). https://doi.org/10.1007/s11227-009-0367-5

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-009-0367-5

Navigation