Run - Time Optimization of Sparse Matrix - Vector Multiplication onSIMD
نویسندگان
چکیده
Sparse matrix-vector multiplication forms the heart of iterative linear solvers used widely in scientiic computations (e.g., nite element methods). In such solvers, the matrix-vector product is computed repeatedly, often thousands of times, with updated values of the vector until convergence is achieved. In an SIMD architecture, each processor has to fetch the updated oo-processor vector elements while computing its share of the product. In this paper, we report on run-time optimization of array distribution and oo-processor data fetching to reduce both the communication and computation time. The optimization is applied to a sparse matrix stored in a compressed sparse row-wise format. Actual runs on test matrices produced up to a 35 percent relative improvement over a block distribution with a naive multiplication algorithm while simulations over a wider range of processors indicate that up to a 60 percent improvement may be possible in some cases.
منابع مشابه
Run-Time Optimization of Sparse Matrix-Vector Multiplication on SIMD Machines
Sparse matrix-vector multiplication forms the heart of iterative linear solvers used widely in scientific computations (e.g., finite element methods). In such solvers, the matrix-vector product is computed repeatedly, often thousands of times, with updated values of the vector until convergence is achieved. In an SIMD architecture, each processor has to fetch the updated off-processor vector el...
متن کاملOptimization by Run-time Specialization for Sparse Matrix-Vector Multiplication (Submitted for publication)
Run-time specialization is the process of generating programs based on information available only at run time. This technique has the potential of generating highly efficient codes, at the expense of the overheads of the run-time code generation. It is applicable when some input data is used repeatedly while other input data varies. In this paper we explore the potential for obtaining speedups ...
متن کاملOptimization of Sparse Matrix-Vector Multiplication by Specialization
Program specialization is the process of generating optimized programs based on available inputs. It is particularly applicable when some input data are used repeatedly while other input data vary. Specialization can be employed at compile-time as well as at run-time, depending on when the inputs become available. In this paper we explore the potential for obtaining speed-ups for sparse matrix-...
متن کاملSpMV Profiling and Optimization Analysis
Sparse matrix-vector multiplication is an important operation when it comes to sparse matrix computations. Very large and sparse matrices are used in many engineering and scientific operations. Hence the matrix needs to be partitioned properly. Even though the matrix is partitioned and stored appropriately there still exists a possibility, the performance achieved is not significant. Thus, the ...
متن کاملCache-Oblivious Sparse Matrix--Vector Multiplication by Using Sparse Matrix Partitioning Methods
In this article, we introduce a cache-oblivious method for sparse matrix vector multiplication. Our method attempts to permute the rows and columns of the input matrix using a hypergraph-based sparse matrix partitioning scheme so that the resulting matrix induces cache-friendly behaviour during sparse matrix vector multiplication. Matrices are assumed to be stored in row-major format, by means ...
متن کامل