Optimal Sparse Matrix Dense Vector Multiplication in the I/O-Model
Optimal Sparse Matrix Dense Vector Multiplication in the I/O-Model
复制标题
DOI:
10.1007/s00224-010-9285-4
复制
发表时间:
2007-06
影响因子:
0.5
通讯作者:
M. A. Bender;G. Brodal;Rolf Fagerberg;R. Jacob;Elias Vicari
中科院分区:
文献类型:
--
作者:
M. A. Bender;G. Brodal;Rolf Fagerberg;R. Jacob;Elias Vicari
We analyze the problem of sparse-matrix dense-vector multiplication (SpMV) in the I/O-model. The task of SpMV is to computey:=Ax, whereAis a sparseNxNmatrix andxandyare vectors. Here, sparsity is expressed by the parameterkthat states thatAhas a total of at mostkNnonzeros, i.e., an average number ofknonzeros per column. The extreme choices for parameterkare well studied special cases, namely fork=1 permuting and fork=Ndense matrix-vector multiplication.We study the worst-case complexity of this computational task, i.e., what is the best possible upper bound on the number of I/Os depending onkandNonly. We determine this complexity up to a constant factor for large ranges of the parameters. By our arguments, we find that most matrices withkNnonzeros require this number of I/Os, even if the program may depend on the structure of the matrix. The model of computation for the lower bound is a combination of the I/O-models of Aggarwal and Vitter, and of Hong and Kung.We study two variants of the problem, depending on the memory layout ofA.IfAis stored in column major layout, SpMV has I/O complexity Θ(min{kNB(1+logM/BNmax{M,k}),kN}) fork≤N1-εand any constant 1> ε > 0. If the algorithm can choose the memory layout, the I/O complexity of SpMV is Θ(min{kNB(1+logM/BNkM),kN]) fork≤3√N.In the cache oblivious setting with tall cache assumptionM≥B1+ε, the I/O complexity is Ο(kNB(1+logM/BNk)) forAin column major layout.