Abstract
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.
This work has been partially supported by: JCyL under contract number VA-053A05, the EC (FEDER) and the Spanish MCyT (Plan Nacional de I+D+I, TIC2002-04498-C05-05 and TIC2002-04400-C03). A preliminary version of this paper was presented at the 11th Int. Workshop on Compilers for Parallel Computers.
Chapter PDF
Similar content being viewed by others
Keywords
- Task Graph
- Task Decomposition
- Parallel Programming Model
- Coordination Language
- Sequential Code Optimization
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Blumofe, R.D., Leiserson, C.E.: Scheduling multithreaded computations by work stealing. In: Proc. Annual Symp. on FoCS, November 1994, pp. 356–368 (1994)
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)
Brinch Hansen, P.: An evaluation of high performance Fortran. ACM SigPlan 33(3), 57–64 (1998)
Cole, M.: Frame: An imperative coordination language for parallel programming. Technical Report EDI-INF-RR-0026, Div. Informatics, Univ. of Edinburgh (September 2000)
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)
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)
Finta, L., Liu, Z., Milis, I., Bampis, E.: Scheduling UET–UCT series–parallel graphs on two processors. Theoretical Computer Science 162, 323–340 (1996)
Gelernter, D., Carriero, N.: Coordination languages and their significance. Communications of the ACM 35(2), 97–107 (1992)
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)
González-Escribano, A.: Synchronization Architecture in Parallel Programming Models. Phd thesis, Dpto. Informática, University of Valladolid (July 2003)
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)
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)
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)
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)
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)
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)
OpenMP ARB. OpenMP version 2.5 specification. WWW. On http://www.openmp.org/ (last access May 2005)
Pelagatti, S.: Structured Development of Parallel Programs. Taylor & Francis (1998)
Sahner, R.A., Trivedi, K.S.: Performance and reliability analysis using directed acyclic graphs. IEEE Trans. on Software Eng. 13(10), 1105–1114 (1987)
Skillicorn, D.B.: A cost calculus for parallel functional programming. Journal of Parallel and Distributed Computing 28, 65–83 (1995)
Skillicorn, D.B., Talia, D.: Models and languages for parallel computation. ACM Computing Surveys 30(2), 123–169 (1998)
Valdés, J., Tarjan, R.E., Lawler, E.L.: The recognition of series parallel digraphs. SIAM Journal of Computing 11(2), 298–313 (1982)
Valiant, L.G.: A bridging model for parallel computation. Comm.ACM 33(8), 103–111 (1990)
Wilson, G.: Extensible programming fot the 21st century. ACM Queue 2(9), 48–57 (2004-2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
González-Escribano, A., van Gemund, A.J.C., Cardeñoso-Payo, V. (2005). SPC-XML: A Structured Representation for Nested-Parallel Programming Languages. In: Cunha, J.C., Medeiros, P.D. (eds) Euro-Par 2005 Parallel Processing. Euro-Par 2005. Lecture Notes in Computer Science, vol 3648. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11549468_85
Download citation
DOI: https://doi.org/10.1007/11549468_85
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28700-1
Online ISBN: 978-3-540-31925-2
eBook Packages: Computer ScienceComputer Science (R0)