Toward Automatic Performance Tuning for Numerical Simulations in the SILC Matrix Computation Framework

  • Tamito Kajiyama
  • Akira Nukada
  • Reiji Suda
  • Hidehiko Hasegawa
  • Akira Nishida


This chapter presents a performance modeling method for numerical simulations in the SILC matrix computation framework. An application program of SILC is a client of a SILC server that provides the client with access to matrix computation libraries in an environment- and language-independent manner. The scope of the present study is to model the performance of a SILC client conducting a numerical simulation by means of a parallel SILC server running on a shared-memory parallel machine. The proposed method employs a simple performance model that describes the execution time of a SILC client as a function of the number of threads on which a parallel SILC server runs. The obtained performance model is then used to determine the optimal number of threads for the particular combination of the SILC client and server. The proposed method was applied to three application programs in combination with an OpenMP-based parallel SILC server running on SGI Altix 3700. Experimental results showed that the proposed method yields accurate estimates of the execution time in most cases. Based on the proposed performance modeling method, an automatic performance tuning mechanism for numerical simulations in SILC is also presented.


Execution Time Application Program Linear Solver Sparse Linear System Pressure Poisson Equation 
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.



We would like to thank anonymous reviewers for their careful review and valuable comments on the manuscript. This research was supported by a grant-in-aid project [19] in the Core Research for Evolutional Science and Technology (CREST) program of the Japan Science and Technology Agency.


  1. 1.
    Dongarra JJ, Ltaief H (2009) Freely available software for linear algebra on the web.
  2. 2.
    Whaley RC, Petitet A, Dongarra JJ (2001) Automated empirical optimization of software and the ATLAS project. Parallel Comput 27:3–35MATHCrossRefGoogle Scholar
  3. 3.
    Blackford LS, Choi J, Cleary A, D’Azevedo E, Demmel J, Dhillon I, Dongarra J, Hammarling S, Henry G, Petitet A, Stanley K, Walker D, Whaley RC (1997) ScaLAPACK users’ guide. SIAM, PAMATHCrossRefGoogle Scholar
  4. 4.
    Li XS, Demmel JW (2003) SuperLU_DIST: A scalable distributed-memory sparse direct solver for unsymmetric linear systems. ACM Trans Math Software 29:110–140MathSciNetMATHCrossRefGoogle Scholar
  5. 5.
    Balay S, Buschelman K, Eijkhout V, Gropp WD, Kaushik D, Knepley MG, McInnes LC, Smith BF, Zhang H (2008) PETSc users manual. Technical Report ANL-95/11 – Revision 3.0.0, Argonne National LaboratoryGoogle Scholar
  6. 6.
    The SSI Project (2006) User’s Manual for Lis 1.0.2.
  7. 7.
    Kajiyama T, Nukada A, Hasegawa H, Suda R, Nishida A (2006) SILC: A flexible and environment independent interface for matrix computation libraries. In: Proceedings of the PPAM 2005, LNCS 3911. Springer, Heidelberg, pp 928–935Google Scholar
  8. 8.
    Kajiyama T, Nukada A, Suda R, Hasegawa H, Nishida A (2007) Distributed SILC: An easy-to-use interface for MPI-based parallel matrix computation libraries. In: Proceedings of the PARA’06, LNCS 4699. Springer, Heidelberg, pp 860–870Google Scholar
  9. 9.
    Lawson CL, Hanson RJ (1995) Solving least squares problems. SIAM, PAMATHCrossRefGoogle Scholar
  10. 10.
    Kreyszig E (1999) Advanced engineering mathematics, 8th edn. Wiley, New YorkGoogle Scholar
  11. 11.
    Baraff D, Witkin A (1998) Large steps in cloth simulation. In: Proceedings of the ACM SIGGRAPH ’98, pp 43–54Google Scholar
  12. 12.
    Kajiyama T, Nukada A, Suda R, Hasegawa H, Nishida A (2008) Cloth simulation in the SILC matrix computation framework: A case study. In: Proceedings of the PPAM 2007, LNCS 4967. Springer, Heidelberg, pp 1086–1095Google Scholar
  13. 13.
    Koshizuka S, Oka Y (1996) Moving-particle semi-implicit method for fragmentation of incompressible fluid. Nucl Sci Eng 123:421–434Google Scholar
  14. 14.
    Lang S (1979) Calculus of several variables, 2nd edn. Addison-Wesley, MAMATHGoogle Scholar
  15. 15.
    Hestenes MR, Stiefel E (1952) Methods of conjugate gradients for solving linear systems. J Res Natl Bur Stand 49:409–436MathSciNetMATHCrossRefGoogle Scholar
  16. 16.
    Barrett R, Berry M, Chan TF, Demmel J, Donato J, Dongarra J, Eijkhout V, Pozo R, Romine C, van der Vorst H (1994) Templates for the solution of linear systems: Building blocks for iterative methods, 2nd edn. SIAM, PACrossRefGoogle Scholar
  17. 17.
    Kajiyama T, Nukada A, Hasegawa H, Suda R, Nishida A (2005) LAPACK in SILC: Use of a flexible application framework for matrix computation libraries. In: Proceedings of the HPC Asia 2005, IEEE Computer Society, pp 205–212Google Scholar
  18. 18.
    Kerbyson D, Papaefstathiou E, Nudd G (1998) Application execution steering using on-the-fly performance prediction. In: Proceedings of the HPCN’98, LNCS 1401. Springer, Heidelberg, pp 718–727Google Scholar
  19. 19.
    Nishida A, Kotakemori H, Kajiyama T, Nukada A (2006) Scalable software infrastructure project. In: Proceedings of the SC06, poster.

Copyright information

© Springer New York 2011

Authors and Affiliations

  • Tamito Kajiyama
    • 1
  • Akira Nukada
  • Reiji Suda
  • Hidehiko Hasegawa
  • Akira Nishida
  1. 1.CITI, DI/FCTUniversidade Nova de LisboaCaparicaPortugal

Personalised recommendations