Experiences with Implementing Task Pools in Chapel and X10

  • Claudia Fohry
  • Jens Breitbart
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8385)


The Partitioned Global Address Space (PGAS) model is a promising approach to combine programmability and performance in an architecture-independent way. Well-known representatives of PGAS languages include Chapel and X10. Both languages incorporate object orientation, but fundamentally differ in their way of accessing remote memory as well as in synchronization constructs and other issues of language design.

This paper reports on and compares experiences in using the languages. We concentrate on the interplay between object orientation and parallelism/distribution, and other issues of coding task parallelism. In particular, we discuss the realization of patterns such as objects that internally contain distributed arrays, and suggest improvements such as support for activity-local and place-local data, as well as scalar variable-based reduction. Our study is based on Unbalanced Tree Search (UTS), a well-known benchmark that uses task pools.


Chapel X10 PGAS UTS Task pool 


  1. 1.
    Agha, G., Wegner, P., Yonezawa, A. (eds.): Research Directions in Concurrent Object-Oriented Programming. MIT Press, Cambridge (1993)Google Scholar
  2. 2.
    Chapel Language Specification, Version 0.94. (2013)
  3. 3.
    Dinan, J., et al.: Unbalanced Tree Search (UTS) benchmark in Chapel. Program source (2007)
  4. 4.
    Khaldi, D., Jouvelot, P., Ancourt, C., Irigoin, F.: Task parallelism and data distribution: an overview of explicit parallel programming languages. In: Kasahara, H., Kimura, K. (eds.) LCPC 2012. LNCS, vol. 7760, pp. 174–189. Springer, Heidelberg (2013)Google Scholar
  5. 5.
    Kumar, V., et al.: Work-stealing by stealing states from live stack frames of a running application. In: Proceedings of the ACM SIGPLAN X10 Workshop (2011)Google Scholar
  6. 6.
    Olivier, S., Huan, J., Liu, J., Prins, J., Dinan, J., Sadayappan, P., Tseng, C.-W.: UTS: an unbalanced tree search benchmark. In: Almási, G., Caşcaval, C., Wu, P. (eds.) LCPC 2006. LNCS, vol. 4382, pp. 235–250. Springer, Heidelberg (2007)Google Scholar
  7. 7.
    OpenMP Application Program Interface, Version 3.1. (2011)
  8. 8.
    Philippsen, M.: A survey on concurrent object-oriented languages. Concurr. Pract. Exp. 12(10), 917–980 (2000)CrossRefzbMATHGoogle Scholar
  9. 9.
    Publications Using X10. (2013)
  10. 10.
    Ravichandran, K., Lee, S., Pande, S.: Work stealing for multi-core HPC clusters. In: Jeannot, E., Namyst, R., Roman, J. (eds.) Euro-Par 2011, Part I. LNCS, vol. 6852, pp. 205–217. Springer, Heidelberg (2011) CrossRefGoogle Scholar
  11. 11.
    Saraswat, V., et al.: Lifeline-based global load balancing. In: Proceedings of the ACM Symposium on Principles and Practice of Parallel Programming, pp. 201–212 (2011)Google Scholar
  12. 12.
    Shet, A.G., et al.: Programmability of the HPCS languages: a case study with a quantum chemistry kernel. In: Proceedings of the International Parallel and Distributed Processing Symposium. IEEE (2007)Google Scholar
  13. 13.
    Tardieu, O., et al.: X10 for productivity and performance at scale: a submission to the 2012 HPC Class II challenge. In: Proceedings of the SC Conference on High Performance Computing, Networking, Storage and Analysis. (2012)
  14. 14.
  15. 15.
  16. 16.
    Weiland, M.: Chapel, Fortress and X10: novel languages for HPC. Technical report, HPCx Consortium (2007)Google Scholar
  17. 17.
    X10 Language Specification, Version 2.4. (2013)

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  1. 1.Research Group Programming Languages/MethodologiesUniversity of KasselKasselGermany
  2. 2.Engineering Mathematics and Computing Lab (EMCL)Heidelberg UniversityHeidelbergGermany

Personalised recommendations