The Journal of Supercomputing

, Volume 58, Issue 2, pp 226–234 | Cite as

Trasgo: a nested-parallel programming system



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.

High-level programming models Parallel compilers 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 2.
    Blumofe RD, Leiserson CE (1994) Scheduling multithreaded computations by work-stealing. In: Proc annual symp on FoCS, pp 356–368 Google Scholar
  3. 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 CrossRefGoogle Scholar
  4. 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. 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. 6.
    Nickolls J, Buck I, Garland M, Skadron K (2008) Scalable parallel programming with CUDA. ACM Queue 6(2):40–53 CrossRefGoogle Scholar
  7. 7.
    Reinders J (2007) Intel threading building blocks: outfitting C++ for multi-core processor parallelism. O’Reilly, Sebastopol Google Scholar
  8. 8.
    Skillicorn DB (1995) A cost calculus for parallel functional programming. J Parallel Distrib Comput 28:65–83 MATHCrossRefGoogle Scholar
  9. 9.
    Skillicorn DB (1996) miniBSP: A BSP language and transformation system. Technical report, Dept of Computing and Information Sciences, Queen’s University, Kingston, Canada Google Scholar
  10. 10.
    Skillicorn DB, Talia D (1998) Models and languages for parallel computation. ACM Comput Surv 30(2):123–169 CrossRefGoogle Scholar
  11. 11.
    Valdés J, Tarjan RE, Lawler EL (1982) The recognition of series parallel digraphs. SIAM J Comput 11(2):298–313 MathSciNetMATHCrossRefGoogle Scholar
  12. 12.
    van Gemund AJC (1997) The importance of synchronization structure in parallel program optimization. In: Proc 11th ACM ICS, Vienna, pp 164–171 Google Scholar
  13. 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. 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 CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2009

Authors and Affiliations

  1. 1.Departamento InformáticaUniversidad de ValladolidValladolidSpain

Personalised recommendations