Design Patterns for Scientific Computations on Sparse Matrices

  • Davide Barbieri
  • Valeria Cardellini
  • Salvatore Filippone
  • Damian Rouson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7155)


We discuss object-oriented software design patterns in the context of scientific computations on sparse matrices. Design patterns arise when multiple independent development efforts produce very similar designs, yielding an evolutionary convergence onto a good solution: a flexible, maintainable, high-performance design. We demonstrate how to engender these traits by implementing an interface for sparse matrix computations on NVIDIA GPUs starting from an existing sparse matrix library. We also present initial performance results.


Design Pattern Sparse Matrix Storage Format Sparse Matrice Dynamic Type 
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.
    Balay, S., Gropp, W., McInnes, L.C., Smith, B.: PETSc 2.0 user manual. Tech. Rep. ANL-95/11 - Revision 2.0.22, Argonne National Laboratory (1995)Google Scholar
  2. 2.
    Barbieri, D., Cardellini, V., Filippone, S.: Generalized GEMM applications on GPGPUs: Experiments and applications. In: ParCo 2009. IOS Press (2009)Google Scholar
  3. 3.
    Barrachina, S., Castillo, M., Igual, F.D., Mayo, R., Quintana-Ortí, E.S., Quintana-Ortí, G.: Exploiting the capabilities of modern gpus for dense matrix computations. Concurr. Comput.: Pract. Exper. 21, 2457–2477 (2009)CrossRefGoogle Scholar
  4. 4.
    Baskaran, M.M., Bordawekar, R.: Optimizing sparse matrix-vector multiplication on GPUs. Tech. Rep. RC24704, IBM Research (April 2009)Google Scholar
  5. 5.
    Bell, N., Garland, M.: Implementing sparse matrix-vector multiplication on throughput-oriented processors. In: Supercomputing 2009. ACM (2009)Google Scholar
  6. 6.
    Choi, J.W., Singh, A., Vuduc, R.W.: Model-driven autotuning of sparse matrix-vector multiply on GPUs. SIGPLAN Not. 45, 115–126 (2010)CrossRefGoogle Scholar
  7. 7.
    D’Ambra, P., di Serafino, D., Filippone, S.: MLD2P4: a package of parallel algebraic multilevel domain decomposition preconditioners in Fortran 95. ACM Trans. Math. Softw. 37(3) (2010)Google Scholar
  8. 8.
    Filippone, S., Colajanni, M.: PSBLAS: a library for parallel linear algebra computations on sparse matrices. ACM Trans. on Math Software 26, 527–550 (2000)CrossRefGoogle Scholar
  9. 9.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)Google Scholar
  10. 10.
    Gardner, H., Manduchi, G.: Design Patterns for e-Science. Springer (2007)Google Scholar
  11. 11.
    Heroux, M.A., Bartlett, R.A., Howle, V.E., Hoekstra, R.J., Hu, J.J., Kolda, T.G., Lehoucq, R.B., Long, K.R., Pawlowski, R.P., Phipps, E.T., Salinger, A.G., Thornquist, H.K., Tuminaro, R.S., Willenbring, J.M., Williams, A., Stanley, K.S.: An overview of the Trilinos project. ACM Trans. Math. Softw. 31(3), 397–423 (2005)MathSciNetzbMATHCrossRefGoogle Scholar
  12. 12.
    Lindholm, E., Nickolls, J., Oberman, S., Montrym, J.: NVIDIA Tesla: a unified graphics and computing architecture. IEEE Micro. 28, 39–55 (2008)CrossRefGoogle Scholar
  13. 13.
    NVIDIA Corp.: CUDA CUSPARSE library version 4.0 (2011)Google Scholar
  14. 14.
    Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The Object-Oriented Way. Cambridge University Press (2011)Google Scholar
  15. 15.
    Vazquez, F., Ortega, G., Fernández, J.J., Garzon, E.M.: Improving the performance of the sparse matrix vector product with GPUs. In: CIT 2010, pp. 1146–1151 (2010)Google Scholar
  16. 16.
    Volkov, V., Demmel, J.W.: Benchmarking GPUs to tune dense linear algebra. In: Supercomputing 2008 (2008)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Davide Barbieri
    • 1
  • Valeria Cardellini
    • 1
  • Salvatore Filippone
    • 1
  • Damian Rouson
    • 2
  1. 1.University of Rome “Tor Vergata”Italy
  2. 2.Sandia National LaboratoriesAlbuquerqueUSA

Personalised recommendations