Parallelism Granules Aggregation with the T-System

  • Alexander Moskovsky
  • Vladimir Roganov
  • Sergei Abramov
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4671)


T-system is a tool for parallel computing developed at the PSI RAS. The most recent implementation is available on both Linux and Windows platforms. The paper is dedicated to one of important T-system aspects — ability to change parallelism granule size at runtime. The technique is available, primarily, for recursive programs, but it’s possible to extent it to non-recursive ones as well. In the latter case, we employ C++ template“traits”for program transformation. The technique is shown to reduce overhead incurred by runtime support library dramatically.


T-system OpenTS parallel programming C++ computational clusters parallel computing 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Chandra, R., Menon, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J.: Parallel Programming in OpenMP. Morgan Kaufmann, San Francisco (2000)Google Scholar
  2. 2.
    Schloegel, K., Karypis, G., Kumar, V.: Graph Partitioning for High-Performance Scientific Simulations. In: Dongarra, J., et al. (eds.) Sourcebook of parallel computing, Morgan Kaufmann, San Francisco (2003)Google Scholar
  3. 3.
    Kranz, D., Halstead, R., Mohr, E.: Mul-T, A High-Performance Parallel Lisp ACM SIGPLAN 1989 Conference on Programming Language Design and Implementation, Portland, OR, pp. 81–90 (June 1989)Google Scholar
  4. 4.
    Mohr, E., Kranz, D., Halstead, R.: Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs IEEE Trans. Parallel Distrib. Syst. 2(3), 264–280 (1991)Google Scholar
  5. 5.
    Wagner, D., Calder, B.: Leapfrogging: a portable technique for implementing efficient futures. In: Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programmingGoogle Scholar
  6. 6.
    Halstead, R.: MULTILISP: a language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems (TOPLAS) 7(4), 501–538 (1985)zbMATHCrossRefGoogle Scholar
  7. 7.
    Zhang, L., Krintz, C., Soman, S.: Efficient Support of Fine-grained Futures in Java International Conference on Parallel and Distributed Computing Systems (PDCS), Dallas, TX (November 2006)Google Scholar
  8. 8.
    Loidl, H-W., Trinder, P.W., Butz, C.: Tuning Task Granularity and Data Locality of Data Parallel GpH Programs. Parallel Processing Letters 11(4), 471–486 (2001)Google Scholar
  9. 9.
    Loidl, H.-W.: Granularity in Large-Scale Parallel Functional Programming PhD. Thesis. University of Glasgow (March 1998) Available online,
  10. 10.
    Alt, M.: Coding Considerations Practical Methods to Maximum Efficiency for Intel Itanium Architecture Intel Corp. (2004)Google Scholar
  11. 11.
    Abramov, S., Adamovich, A.I., Inyukhin, A., Moskovsky, A., Roganov, V., Shevchuk, E., Yu, S., Vodomerov, A.: OpenTS: An Outline of Dynamic Parallelization Approach. In: Malyshkin, V. (ed.) PaCT 2005. LNCS, vol. 3606, pp. 303–312. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  12. 12.
    Talia, D.: Advances in Programming Languages for Parallel Computing in Annual Review of Scalable Computing, Yuen C.K., pp. 28–58 (2000)Google Scholar
  13. 13.
    Stroustrup, B.: The Design and Evolution of C++ Addison-Wesley (2004) (in Russian translation: Piter, St.Petersburg 2007)Google Scholar
  14. 14.
    Intel Thread Building Blocks, Intel Corp.,
  15. 15.
    An, P., et al.: An Adaptive, Generic Parallel C++ Library Wkshp. In: Dietz, H.G. (ed.) LCPC 2001. LNCS, vol. 2624, pp. 193–208. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  16. 16.
    Bischof, H., Gorlatch, S., Leshchinskiy, R.: DatTel: A Data-parallel C++ Template Library. In: HLPP 2003 Second International Workshop on High-Level Parallel Programming and Applications, June 15-17, 2003, Paris, France (2003) Google Scholar
  17. 17.
    Chiba, S.: A Metaobject Protocol for C++. In: Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), pp. 285–299 (October 1995)Google Scholar
  18. 18.
    McNamara, B., Smaragdakis, Y.: Functional Programming in C++. In: The 2000 International Conference on Functional Programming (ICFP), September 2000, Montreal, Canada, pp. 18–20 (2000)Google Scholar
  19. 19.
    Abelson, H., Sussman, G.J.: Structure and Interpretation of Computer Programs. MIT Press, Cambridge (1996)zbMATHGoogle Scholar
  20. 20.
    Randall, K.H.: Cilk: Efficient Multithreaded Computing. Ph. D. Thesis, MIT Department of Electrical Engineering and Computer Science (June 1998)Google Scholar
  21. 21.
    Luszczek, P., Bailey, D., Dongarra, J., Kepner, J., Lucas, R., Rabenseifner, R., Takahashi, D.: The HPC Challenge (HPCC) Benchmark Suite SC06 Conference Tutorial, IEEE, US, Tampa, Florida (November 12, 2006)Google Scholar
  22. 22.
    Kuszmaul, B.: A Cilk Response to the HPC Challenge (Class 2) SC06 Conference, IEEE, USA, Tampa, Florida (November 13-16, 2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Alexander Moskovsky
    • 1
  • Vladimir Roganov
    • 1
  • Sergei Abramov
    • 1
  1. 1.Program System Institute Russian Academy of Science, Pereslavl-Zalessky, 152020, Yaroslavl RegionRussia

Personalised recommendations