Volltext-Downloads (blau) und Frontdoor-Views (grau)

Program Optimization Strategies to Improve the Performance of SpMV-Operations

  • The SpMV operation -- the multiplication of a sparse matrix with a dense vector -- is used in many simulations in natural and engineering sciences as a computational kernel. This kernel is quite performance critical as it is used, e.g.,~in a linear solver many times in a simulation run. Such performance critical kernels of a program may be optimized on certain levels, ranging from using a rather coarse grained and comfortable single compiler optimization switch down to utilizing architecural features by explicitly using special instructions on an assembler level. This paper discusses a selection of such program optimization techniques in this spectrum applied to the SpMV operation. The achievable performance gain as well as the additional programming effort are discussed. It is shown that low effort optimizations can improve the performance of the SpMV operation compared to a basic implementation. But further than that, more complex low level optimizations have a higher impact on the performance, although changing the original program and the readability / maintainability of a program significantly.

Export metadata

Additional Services

Share in Twitter Search Google Scholar Check availability


Show usage statistics
Document Type:Conference Object
Author:Rudolf Berrendorf, Max Weierstall, Florian Mannuss
Parent Title (English):Berrendorf, Nygard (Eds.): FUTURE COMPUTING 2016, The Eighth International Conference on Future Computational Technologies and Applications. March 20-24, 2016, Rome, Italy
First Page:34
Last Page:40
Date of first publication:2016/03/20
Award:Best Paper Award
Keyword:OpenMP, unrolling; Single Instruction Multiple Data (SIMD); Sparse Matrix Vector multiply (SpMV); intrinsics
Departments, institutes and facilities:Fachbereich Informatik
Dewey Decimal Classification (DDC):0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 004 Datenverarbeitung; Informatik
Entry in this database:2016/04/22