Auto-tuning of Numerical Programs by Block Multi-color Ordering Code Generation and Job-Level Parallel Execution

  • Tatsuya Abe
  • Mitsuhisa Sato
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7851)


Multi-color ordering is a parallel ordering that allows programs to be parallelized by application to sequentially executed parts of the programs. While multi-color ordering parallelizes sequentially executed parts with data dependences and increases the number of parts executed in parallel, improved performance by multi-color ordering is sensitive to differences in the architectures and systems on which the programs are executed. This sensitivity requires us to tune the numbers of colors; i.e., modify programs for each architecture and system. In this work, we develop a code generator based on multi-color ordering and automatically tune the number of colors using a job-level parallel scripting language Xcrypt. Furthermore, we support block multi-color ordering that avoids the disadvantage of stride accesses in the original multi-color ordering, and evaluate and clarify the effectiveness of block multi-color ordering.


Block multi-color ordering source-to-source code generation job-level parallel execution scripting parallel language 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Duff, I.S., Meurant, G.A.: The effect of ordering on preconditioned conjugate gradient. BIT Numerical Mathematics 29(4), 635–657 (1989)MathSciNetzbMATHCrossRefGoogle Scholar
  2. 2.
    Hiraishi, T., Abe, T., Miyake, Y., Iwashita, T., Nakashima, H.: Xcrypt: Flexible and intuitive job-parallel script language. In: The 8th Symposium on Advanced Computing Systems and Infrastructures, pp. 183–191 (2010) (in Japanese)Google Scholar
  3. 3.
    Iwashita, T., Shimasaki, M.: Block red-black ordering: A new ordering strategy for parallelization of ICCG method. International Journal of Parallel Programming 31(1), 55–75 (2003)zbMATHCrossRefGoogle Scholar
  4. 4.
    Kawai, M., Iwashita, T., Nakashima, H.: Parallel multigrid Poisson solver based on block red-black ordering. In: High Performance Computing Symposium, Information Processing Society of Japan, pp. 107–116 (2012) (in Japanese)Google Scholar
  5. 5.
    Doi, S., Washio, T.: Ordering strategies and related techniques to overcome the trade-off between parallelism and convergence in incomplete factorizations. Parallel Computing 25(13-14), 1995–2014 (1999)MathSciNetCrossRefGoogle Scholar
  6. 6.
    Chandra, R., Menon, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J., Holzmann, G.J.: Parallel Programming in OpenMP. Morgan Kaufmann (2000)Google Scholar
  7. 7.
    Quinlan, D.J.: Rose: Compiler support for object-oriented frameworks. Parallel Processing Letters 10(2), 215–226 (2000)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Tatsuya Abe
    • 1
  • Mitsuhisa Sato
    • 2
    • 1
  1. 1.Advanced Institute for Computational ScienceRIKENHyogoJapan
  2. 2.Center for Computational SciencesUniversity of TsukubaIbarakiJapan

Personalised recommendations