Direct methods for sparse matrices
Direct methods for sparse matrices
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
PSBLAS: a library for parallel linear algebra computation on sparse matrices
ACM Transactions on Mathematical Software (TOMS)
The C++ Programming Language
Data Structures and Algorithms
Data Structures and Algorithms
Patterns in Scientific Software: An Introduction
Computing in Science and Engineering
An overview of the Trilinos project
ACM Transactions on Mathematical Software (TOMS) - Special issue on the Advanced CompuTational Software (ACTS) Collection
Design patterns and Fortran 90/95
ACM SIGPLAN Fortran Forum
Benchmarking GPUs to tune dense linear algebra
Proceedings of the 2008 ACM/IEEE conference on Supercomputing
Design patterns and Fortran 2003
ACM SIGPLAN Fortran Forum
Implementing sparse matrix-vector multiplication on throughput-oriented processors
Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis
Exploiting the capabilities of modern GPUs for dense matrix computations
Concurrency and Computation: Practice & Experience
Model-driven autotuning of sparse matrix-vector multiply on GPUs
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
An asymmetric distributed shared memory model for heterogeneous parallel systems
Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems
ACM Transactions on Mathematical Software (TOMS)
Improving the Performance of the Sparse Matrix Vector Product with GPUs
CIT '10 Proceedings of the 2010 10th IEEE International Conference on Computer and Information Technology
GPU Computing Gems Emerald Edition
GPU Computing Gems Emerald Edition
Where is the data? Why you cannot debate CPU vs. GPU performance without the answer
ISPASS '11 Proceedings of the IEEE International Symposium on Performance Analysis of Systems and Software
Scientific Software Design: The Object-Oriented Way
Scientific Software Design: The Object-Oriented Way
The university of Florida sparse matrix collection
ACM Transactions on Mathematical Software (TOMS)
Design patterns for scientific computations on sparse matrices
Euro-Par'11 Proceedings of the 2011 international conference on Parallel Processing
Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003
ACM Transactions on Mathematical Software (TOMS)
Journal of Parallel and Distributed Computing
Proceedings of the 21st international conference on Parallel architectures and compilation techniques
Hi-index | 0.00 |
We apply object-oriented software design patterns to develop code for scientific software involving sparse matrices. Design patterns arise when multiple independent developments produce similar designs which converge onto a generic solution. We demonstrate how to use design patterns to implement an interface for sparse matrix computations on NVIDIA GPUs starting from PSBLAS, an existing sparse matrix library, and from existing sets of GPU kernels for sparse matrices. We also compare the throughput of the PSBLAS sparse matrix--vector multiplication on two platforms exploiting the GPU with that obtained by a CPU-only PSBLAS implementation. Our experiments exhibit encouraging results regarding the comparison between CPU and GPU executions in double precision, obtaining a speedup of up to 35.35 on NVIDIA GTX 285 with respect to AMD Athlon 7750, and up to 10.15 on NVIDIA Tesla C2050 with respect to Intel Xeon X5650.