Software Architectures for Flexible Task-Oriented Program Execution on Multicore Systems

  • Thomas Rauber
  • Gudula Rünger


The article addresses the challenges of software development for current and future parallel hardware architectures which will be dominated by multicore and manycore architectures in the near future. This will have the following effects: In several years desktop computers will provide many computing resources with more than 100 cores per processor. Using these multicore processors for cluster systems will create systems with thousands of cores and a deep memory hierarchy. A new generation of programming methodologies is needed for all software products to efficiently exploit the tremendous parallelism of these hardware platforms.

The article aims at the development of a parallel programming methodology exploiting a two-level task-based view of application software for the effective use of large multicore or cluster systems. Task-based programming models with static or dynamic task creation are discussed and suitable software architectures for designing such systems are presented.


Software Architecture Task Execution Single Task Parallel Execution External Variable 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aldinucci, M., Danelutto, M., Teti, P.: An advanced environment supporting structured parallel programming in Java. Future Generation Computer Systems 19(5), 611–626 (2003)CrossRefGoogle Scholar
  2. 2.
    Allen, E., Chase, D., Hallett, J., Luchangco, V., Maessen, J.-W., Ryo, S., Steele Jr., G.L., Tobin-Hochstadt, S.: The Fortress Language Specification, Version 1.0. Technical report, Sun Microsystems, Inc. (March 2008)Google Scholar
  3. 3.
    Blumofe, R.D., Joerg, C.F., Kuszmaul, B.C., Leiserson, C.E., Randall, K.H., Zhou, Y.: Cilk: An efficient multithreaded runtime system. Journal of Parallel and Distributed Computing 37(1), 55–69 (1996)CrossRefGoogle Scholar
  4. 4.
    Blumofe, R.D., Leiserson, C.E.: Scheduling multithreaded computations by work stealing. J. ACM 46(5), 720–748 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    Chamberlain, B.L., Callahan, D., Zima, H.P.: Parallel Programmability and the Chapel Language. Int. J. High Perform. Comput. Appl. 21(3), 291–312 (2007)CrossRefGoogle Scholar
  6. 6.
    Chapman, B., Haines, M., Mehrota, P., Zima, H., Van Rosendale, J.: Opus: A coordination language for multidisciplinary applications. Sci. Program. 6(4), 345–362 (1997)Google Scholar
  7. 7.
    Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. In: OOPSLA 2005: Proc. of the 20th ACM Conf. on Object-oriented Programming, systems, languages, and applications, pp. 519–538. ACM, New York (2005)CrossRefGoogle Scholar
  8. 8.
    Diaz, M., Romero, S., Rubio, B., Soler, E., Troya, J.M.: An Aspect Oriented Framework for Scientific Component Development. In: Proc. of the 13th Euromicro Conf. on Parallel, Distributed and Network-Based Processing (PDP 2005), pp. 290–296. IEEE, Los Alamitos (2005)CrossRefGoogle Scholar
  9. 9.
    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
  10. 10.
    Dutot, P.-F., N’Takpe, T., Suter, F., Casanova, H.: Scheduling Parallel Task Graphs on (Almost) Homogeneous Multicluster Platforms. IEEE Transactions on Parallel and Distributed Systems 20(7), 940–952 (2009)CrossRefGoogle Scholar
  11. 11.
    Foster, I.T., Chandy, K.M.: Fortran M: A Language for Modular Parallel Programming. J. Parallel Distrib. Comput. 26(1), 24–35 (1995)zbMATHCrossRefGoogle Scholar
  12. 12.
    Ben Hassen, S., Bal, H.E., Jacobs, C.J.H.: A task- and data-parallel programming language based on shared objects. ACM Transactions on Programming Languages and Systems (TOPLAS) 20(6), 1131–1170 (1998)CrossRefGoogle Scholar
  13. 13.
    High Performance Fortran Forum. High Performance Fortran Language Specification 2.0. Technical report, Center for Research on Parallel Computation, Rice University (1997)Google Scholar
  14. 14.
    Kale, L.V., Bohm, E., Mendes, C.L., Wilmarth, T., Zheng, G.: Programming Petascale Applications with Charm++ and AMPI. In: Bader, D. (ed.) Petascale Computing: Algorithms and Applications, pp. 421–441. Chapman & Hall / CRC Press, Boca Raton (2008)Google Scholar
  15. 15.
    Leijen, D., Schulte, W., Burckhardt, S.: The design of a task parallel library. In: OOPSLA 2009: Proceeding of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications, pp. 227–242. ACM, New York (2009)CrossRefGoogle Scholar
  16. 16.
    N’takpé, T., Suter, F., Casanova, H.: A Comparison of Scheduling Approaches for Mixed-Parallel Applications on Heterogeneous Platforms. In: Proc. of the 6th Int. Symp. on Par. and Distrib. Comp. IEEE, Los Alamitos (2007)Google Scholar
  17. 17.
    OpenMP Application Program Interface, Version 3.0 (May 2008),
  18. 18.
    Pelagatti, S.: Task and data parallelism in P3L. In: Rabhi, F.A., Gorlatch, S. (eds.) Patterns and skeletons for parallel and distributed computing, pp. 155–186. Springer, London (2003)Google Scholar
  19. 19.
    Rauber, T., Rünger, G.: A Transformation Approach to Derive Efficient Parallel Implementations. IEEE Transactions on Software Engineering 26(4), 315–339 (2000)CrossRefGoogle Scholar
  20. 20.
    Rauber, T., Rünger, G.: Tlib - A Library to Support Programming with Hierarchical Multi-processor Tasks. Journ. of Parallel and Distrib. Comput. 65(3), 347–360 (2005)Google Scholar
  21. 21.
    Subhlok, J., Yang, B.: A new model for integrated nested task and data parallel programming. In: Proc. of the 6th ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 1–12. ACM Press, New York (1997)CrossRefGoogle Scholar
  22. 22.
    Sutter, H., Larus, J.: Software and the Concurrency Revolution. ACM Queue 3(7), 54–62 (2005)CrossRefGoogle Scholar
  23. 23.
    van Reeuwijk, C., Kuijlman, F., Sips, H.J.: Spar: a Set of Extensions to Java for Scientific Computation. Concurrency and Computation: Practice and Experience 15, 277–299 (2003)zbMATHCrossRefGoogle Scholar
  24. 24.
    Vydyanathan, N., Krishnamoorthy, S., Sabin, G.M., Catalyurek, U.V., Kurc, T., Sadayappan, P., Saltz, J.H.: An Integrated Approach to Locality-Conscious Processor Allocation and Scheduling of Mixed-Parallel Applications. IEEE Transactions on Parallel and Distributed Systems 20(8), 1158–1172 (2009)CrossRefGoogle Scholar
  25. 25.
    West, E.A., Grimshaw, A.S.: Braid: integrating task and data parallelism. In: FRONTIERS 1995: Proceedings of the Fifth Symposium on the Frontiers of Massively Parallel Computation (Frontiers 1995), p. 211. IEEE Computer Society, Los Alamitos (1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Thomas Rauber
    • 1
  • Gudula Rünger
    • 2
  1. 1.University Bayreuth 
  2. 2.Chemnitz University of Technology 

Personalised recommendations