I'm looking for a library to do huge Sparse Matrix x Vector multiplication. The matrix itself will almost fill the RAM.

I've found Eigen3, OSKI and some basic Sparse BLAS implementations.

Are there other options? How can I choose between them ?

Edit: There is also Intel's MKL

There are the linear algebra routines in Trilinos and Petsc. Also, most finite element libraries like deal.II or Dune have this capability.

Similar Questions

I work on converting a large Matlab code to C++ and CUDA. I have problems converting some sparse matrix operations like: 1. full_Matrix * sparse_Matrix 2. sparse_Matrix * full_Matrix 3. sparse_Matrix

I have some code, using the class vector, which I want to implement with a vector that implements sparse vectors (i.e. instead of recording the elements in an array of the vector's length, including 0

I have a 3d (or in general n-dimensional) matrix A with dimensions size(A) = [d1 d2 d3 ... dn]. Now I want to do a vector multiplication with a column vector v over one of the dimensions (as I would

Could anyone recommend set of tools to perform standard NMF application onto sparse input data [ matrix of size 50kx50k ], thanks!

I have written an MPI routine to parallelize matrix-vector multiplication. The speed up has been disappointing to non-existent. I have found a lot of routines on the net, and I am handling this about

I'm looking for any standard C program that uses OpenMP APIs for a sparse matrix-vector or matrix-matrix multiplications. Can anyone let me know if there are any such programs.

I have a m x n matrix where each row consists of zeros and same values for each row. an example would be: M = [-0.6 1.8 -2.3 0 0 0; 0 0 0 3.4 -3.8 -4.3; -0.6 0 0 3.4 0 0] In this example the first co

I have sparse CSR matrices (from a product of two sparse vector) and I want to convert each matrix to a flat vector. Indeed, I want to avoid using any dense representation or iterating over indexes. S

I have to perform this operation: N = A'*P*A The structure of the P matrix is block diagonal while the A matrix is largely sparse (also in a banded structure). The multiplication is performed in blo

I need help, I am trying to make use of Lattice Multiplication in java for use in a BigInt class I am having to write for a class. Right now I have the code storing the digits needed for the adding p

I'm implementing some iterative algorithms for calculating the PageRank of a webgraph, and I'm having some trouble finding the best way to store in memory some matrixes. I have a B n x n matrix, which

I am working on a project that involves the computation of the eigenvectors of a very large sparse matrix. To be more specific I have a Matrix that is the laplacian of a big graph and I am interested

i am new to cuda c..i wrote a basic matrix multiplication programme using shared memory..but the problem is i cannot increase the matrix size beyond 288 and if i does so i get stack overflow error..i

I am trying to cPickle a large scipy sparse matrix for later use. I am getting this error: File tfidf_scikit.py, line 44, in <module> pickle.dump([trainID, trainX, trainY], fout, protocol=-1)

I am trying to multiply a vector (1 line, 4 columns) with a matrix (4x4); the vector represents some coordinates of a point, and, in my application, it is intended to have a lot of them (points). I wr

I'm having difficulty with my matrix multiplication here. for(i=0;i<row;i++){ /* matrix multiplication process */ for(j=0;j<col;j++){ matrix3[i][j]=0; the problem is with this part right here.

I'm looking for a Sparse Matrix library I can use from Ruby. I'm currently using the GNU Scientific Library bindings provided by the gsl gem, but my application would be better optimized if I used a

I have a large 500x53380 sparse matrix and trying to dichotomize it. I have tried using event2dichot under sna package but no success because it requires an adjacency matrix or network object. I al

Strassen's algorithm for matrix multiplication just gives a marginal improvement over the conventional O(N^3) algorithm. It has higher constant factors and is much harder to implement. Given these sho

I have a sparse matrix: from scipy import sparse a = sparse.diags([1,4,9],[-1,0,1],shape =(10,10),format =csr) I want to take the square root of each of the elements in the sparse matrix I look up

I'm trying to multiply two matrices. I'm using transpose taken from this post: Help me to explain the F# Matrix transpose function let rec transpose = function | (_::_)::_ as M -> List.map List.hea

I am using Python with numpy, scipy and scikit-learn module. I'd like to classify the arrays in very big sparse matrix. (100,000 * 100,000) The values in the matrix are equal to 0 or 1. The only thing

Is it possible to express Matlab operation A.*B (multiplication element by element) A.*B = [a11 * b11, a12 * b12, ..., a1n * b1n; ...; am1 * bm1, ..., amn * bmn] by a common matrix algebra?

I have 2 big matrices: Xn = np.matrix(X) Xnt = Xn.transpose() Then Xn is like this: >>> Xn matrix([['0,208', '0,22', '0,208', ..., '0,194', '0,205', '0,205'], ['0,22', '0,208', '0,214', ..

I have an array of high dimensional however very sparse matrices. I want to normalize them so that column sums of all matrices sum to one. Here is the sample code I use: bg = matrices{1}; for i = 2:le

in a current project I have a large multidimensional array of shape (I,J,K,N) and a square matrix of dim N. I need to perform a matrix vector multiplication of the last axis of the array with the squa

How can I avoid using a double for loop in order to build a matrix pos like this code does: pos=[0 0]; for i=1:m; for j=1:n; pos=[pos; i j]; end end m and n are numbers such as 500 and 900. I have to

I have this sparse matrix of size 20 millionx20million in matlab. I want to get around 40000 specific rows from this matrix. If I do new_data = data_original(index,:) where index consists of the rows

I read through this page on assigning a sparse matrix. Unfortunately, I do not understand it. Can anyone help me out with an example? For instance, how should I assign the following 10 by 8 sparse mat

What do you think? What would be faster and how much faster: Doing sparse matrix (CSR) multiplication (with a vector) on the GPU or the CPU (multithreaded)?

I am trying to generate two matrices A&B of size n, partition them into s*s sub-matrices and after scattering them through the processors, perform a multiplication between the block matrices. I ha

I am trying to learn CUDA and using PyCUDA to write a simple matrix multiplication code. For two 4x4 randomly generated matrices I get the following solution: Cuda: [[ -5170.86181641 -21146.49609375 2

I am creating a matrix from a Pandas dataframe as follows: dense_matrix = numpy.array(df.as_matrix(columns = None), dtype=bool).astype(np.int) And then into a sparse matrix with: sparse_matrix = scip

I previously posted a question regarding matrix-vector multiplication in CUDA and about writing my own kernel. After doing this, I decided to implement my problem using CUBLAS as suggested by some use

After implementing matrix multiplication with CUDA. I tried to implement it with CUBLAS(thanks to the advice of some people here in the forum). I can multiply square matrices but (yes once again...) I

I have a data file storing a large matlab sparse matrix (matlab 7.3) that needs to be used in my python program. I use h5py to load this sparse matrix and find there are 3 data structures associated w

I have googled around but havnt found an answer that suits me for OpenGL. I want to construct a sparse matrix with a single diagonal and around 9 off-diagonals. These diagonals arent necessarily next

I am trying to compare sequantial and concurent matrix multiplication.Everytime sequential is more fast.For example 60 x 60 matrix sequantial find 4 ms while concurent 277 ms.In my code is something w

Assume that the dimensions are very large (up to 1 billion elements in a matrix). How would I implement a cache oblivious algorithm for matrix-vector product? Based on wikipedia I will need to recursi

I have a large scipy sparse symmetric matrix which I need to condense by taking the sum of blocks to make a new smaller matrix. For example, for a 4x4 sparse matrix A I will like to make a 2x2 matrix

I have to implement a sparse matrix (a matrix that has predominantly zeroes, so you only record values different than 0), but I have to implement it using a binary search tree. EDIT: So now I'm thinki

I've a Sparse matrix in CSR Sparse format in python and I want to import it to MATLAB. MATLAB does not have a CSR Sparse format. It has only 1 Sparse format for all kind of matrices. Since the matrix

I an using a data structure for storing sparse matrices as follow. Like if I am having a matrix as follows I am using a vector of pairs to store the data. So is it better to store these value in a si

I have an original matrix that looks something like this: (32, 69901) 1 (108, 69901) 1 (32, 69902) 1 (108, 69903) 1 (108, 69904) 1 (432, 69905) 1 (432, 69906) 1 (432, 69907) 1 I want to separate the

I don`t know how to solve this problem in Fundamentals of data structure in C ed.2nd ch2.5 On a computer with w bits per word, how much storage is needed to represent a sparse matrix, A, with t nonzer

I tried to implement the Strassen algorithm for matrix multiplication with C++, but the result isn't that, what I expected. As you can see strassen always takes more time then standard implementation

I'm doing some tests clustering a big number of very large sparse vectors representing term-frequency-inverse-document-frequency of various hypertextual documents. What algorithm would you suggest for

I have a 1034_by_1034 sparse matrix (scipy.sparse.csr.csr_matrix), which basically represents the adjacency matrix of a graph. I want to check if some elements are ones or not. But I found this to be

R program does not return the expected matrix multiplication a<- c(0,1,1,0) A<- matrix(a,2,2) B<- matrix(c(1,2,3,4),2,2,byrow=TRUE) A*B gives final answer as matrix(c(0,2,3,0), ncol = 2, by

There's some Netlib code written in Fortran which performs transposes and multiplication on sparse matrices. The library works with Bank-Smith (sort of), old Yale, and new Yale formats. Unfortunat