SPC-XML: A Structured Representation for Nested-Parallel Programming Languages

  • Arturo González-Escribano
  • Arjan J. C. van Gemund
  • Valentín Cardeñoso-Payo
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3648)


Nested-parallelism programming models, where the task graph associated to a computation is series-parallel, present good analysis properties that can be exploited for scheduling, cost estimation or automatic mapping to different architectures.

In this paper we present an XML intermediate representation for nested-parallel programming languages from which the application task-graph can be easily derived. We introduce some design principles oriented to allow the compiler to exploit information about the task synchronization structure, automatically determine implicit communication structures, apply different scheduling policies, and generate lower-level code using different models or communication tools. Results obtained for simple applications, using an extensible prototype compiler framework, show how this flexible approach can lead to portable and efficient implementations.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Blumofe, R.D., Leiserson, C.E.: Scheduling multithreaded computations by work stealing. In: Proc. Annual Symp. on FoCS, November 1994, pp. 356–368 (1994)Google Scholar
  2. 2.
    Bonorden, O., Juurlink, B., von Otte, I., Rieping, I.: The Paderborn University BSP (PUB) library - design, implementation, and performance. In: Proc. IPPS/SPDP 1999, San Juan, Puerto Rico, April 1999, IEEE Computer Society, Los Alamitos (1999)Google Scholar
  3. 3.
    Brinch Hansen, P.: An evaluation of high performance Fortran. ACM SigPlan 33(3), 57–64 (1998)CrossRefGoogle Scholar
  4. 4.
    Cole, M.: Frame: An imperative coordination language for parallel programming. Technical Report EDI-INF-RR-0026, Div. Informatics, Univ. of Edinburgh (September 2000)Google Scholar
  5. 5.
    Darlington, J., Guo, Y., To, H.W., Yang, J.: Functional skeletons for parallel coordination. In: Haridi, S., Ali, K., Magnusson, P. (eds.) Euro-Par 1995. LNCS, vol. 966, pp. 55–69. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  6. 6.
    Dorta, A.J., González, J.A., Rodríguez, C., de Sande, F.: LLC: a parallel skeletal language. Parallel Processing Letters 13(3), 437–448 (2003)CrossRefMathSciNetGoogle Scholar
  7. 7.
    Finta, L., Liu, Z., Milis, I., Bampis, E.: Scheduling UET–UCT series–parallel graphs on two processors. Theoretical Computer Science 162, 323–340 (1996)MATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Gelernter, D., Carriero, N.: Coordination languages and their significance. Communications of the ACM 35(2), 97–107 (1992)CrossRefGoogle Scholar
  9. 9.
    van Gemund, A.J.C.: The importance of synchronization structure in parallel program optimization. In: Proc. 11th ACM ICS, Vienna, July 1997, pp. 164–171 (1997)Google Scholar
  10. 10.
    González-Escribano, A.: Synchronization Architecture in Parallel Programming Models. Phd thesis, Dpto. Informática, University of Valladolid (July 2003)Google Scholar
  11. 11.
    González-Escribano, A., van Gemund, A.J.C., Cardeñoso, V.: Predicting the impact of implementation level aspects on parallel application performance. In: Proc. CPC 2001 Ninth Int. Workshop on Compilers for Parallel Computing, Edinburgh, Scotland UK, June 2001, pp. 367–374 (2001)Google Scholar
  12. 12.
    González-Escribano, A., van Gemund, A.J.C., Cardeñoso-Payo, V., Portales- Fernández, R., Caminero-Granja, J.A.: A preliminary nested-parallel framework to efficiently implement scientific applications. In: Daydé, M., Dongarra, J., Hernández, V., Palma, J.M.L.M. (eds.) VECPAR 2004. LNCS, vol. 3402, pp. 541–555. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  13. 13.
    González-Escribano, A.J.C., van Gemund, V.: Cardeñoso-Payo, and R. Portales- Fernández. SPC-XML(v0.4): An intermediate structured language for nestedparallel programming environments. Technical Report IT-DI-2005-0001, Dept. Computer Science, Univ. of Valladolid (January 2005)Google Scholar
  14. 14.
    Gorlatch, S.: Send-Recv considered harmful? myths and truths about parallel programming. In: Malyshkin, V.E. (ed.) PaCT 2001. LNCS, vol. 2127, pp. 243–257. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  15. 15.
    Kessler, C.W.: NestStep: nested parallelism and virtual shared memory for the BSP model. In: Int. Conf. on Parallel and Distributed Processing Techniques and Applications (PDPTA 1999), Las Vegas,USA, (June-July 1999)Google Scholar
  16. 16.
    Lodaya, K., Weil, P.: Series-parallel posets: Algebra, automata, and languages. In: Meinel, C., Morvan, M. (eds.) STACS 1998. LNCS, vol. 1373, pp. 555–565. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  17. 17.
    OpenMP ARB. OpenMP version 2.5 specification. WWW. On http://www.openmp.org/ (last access May 2005)
  18. 18.
    Pelagatti, S.: Structured Development of Parallel Programs. Taylor & Francis (1998)Google Scholar
  19. 19.
    Sahner, R.A., Trivedi, K.S.: Performance and reliability analysis using directed acyclic graphs. IEEE Trans. on Software Eng. 13(10), 1105–1114 (1987)CrossRefGoogle Scholar
  20. 20.
    Skillicorn, D.B.: A cost calculus for parallel functional programming. Journal of Parallel and Distributed Computing 28, 65–83 (1995)MATHCrossRefGoogle Scholar
  21. 21.
    Skillicorn, D.B., Talia, D.: Models and languages for parallel computation. ACM Computing Surveys 30(2), 123–169 (1998)CrossRefGoogle Scholar
  22. 22.
    Valdés, J., Tarjan, R.E., Lawler, E.L.: The recognition of series parallel digraphs. SIAM Journal of Computing 11(2), 298–313 (1982)MATHCrossRefGoogle Scholar
  23. 23.
    Valiant, L.G.: A bridging model for parallel computation. Comm.ACM 33(8), 103–111 (1990)CrossRefGoogle Scholar
  24. 24.
    Wilson, G.: Extensible programming fot the 21st century. ACM Queue 2(9), 48–57 (2004-2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Arturo González-Escribano
    • 1
  • Arjan J. C. van Gemund
    • 2
  • Valentín Cardeñoso-Payo
    • 1
  1. 1.Dept. de InformáticaUniversidad de Valladolid, E.T.I.T. Campus Miguel DelibesValladolidSpain
  2. 2.Embedded Software Lab, Software Technology DepartmentFaculty of Electrical Engineering, Mathematics and Computer ScienceDelftThe Netherlands

Personalised recommendations