# fastest way for multiplication of symmetric matrix and sparse matrix

10 views (last 30 days)
Nguyen Van Hieu on 16 May 2021
Commented: Nguyen Van Hieu on 18 May 2021
I am doing a multiplication as: P=A*P*A'
where size of A and P are 6640x6640. The nonzero element of A and P is 309028 and 0. P is symmetric.
If I use sparse matrix for A, the time to calculate A*P*A' is twice as if I use dense matrix for A.
I want to reduce the computational time for this calculation, can you recommend a method? I am planning to use PARDISO solver from https://www.pardiso-project.org/
Thank you!

Matt J on 18 May 2021
Edited: Matt J on 18 May 2021
If I use sparse matrix for A, the time to calculate A*P*A' is twice as if I use dense matrix for A.
You have a strange computer. I see very much the opposite. One thing you can check is whether nzmax(A)=nnz(A). You can also shave off some time by precomputing A'.
N=6640/2;
A=sprand(N,N,.007);
At=A;
P=rand(N); P=P+P.';
Af=full(A);
Aft=Af';
tic
A*P*A';
toc
Elapsed time is 0.738674 seconds.
tic
A*P*At;
toc
Elapsed time is 0.631558 seconds.
tic;
Af*P*Aft;
toc;
Elapsed time is 2.053788 seconds.
Nguyen Van Hieu on 18 May 2021
precomputing A' works for my calculation. Thank you so much!!!