MATLAB Answers

How to speed up huge matrix mldivide?

조회 수: 18(최근 30일)
zawye aung
zawye aung 6 Jun 2020
댓글: zawye aung 18 Aug 2020
How to speed up huge matrix mldivide? I was solved this matrix on single core but it took too long. So, i was used distributed array using parallel computing tool box, but i didn't get speed up. Using distributed array took too long than single core. How to speed up solution.

  댓글 수: 3

James Tursa
James Tursa 6 Jun 2020
How large? Are there any special features of the matrix such as sparsity or symmetry or patterns?
zawye aung
zawye aung 6 Jun 2020
n = 5000; M = rand(n); x = ones(n,1);
tic
u = M\x;
clear A b
disp(['Time to solve on single core = ' num2str(toc)])
% parallel operations in spmd
tic
spmd
m = codistributed(M, codistributor('1d',2)); % by column
y = codistributed(x, codistributor('1d',1)); % by row
v = m\y;
end
disp(['Time to solve on 4 core = ' num2str(toc)])
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Time to solve on single core = 2.4375
Time to solve on 4 core = 4.4646
zawye aung
zawye aung 6 Jun 2020
This is a sample coding. And another problem i has. The huge matrix size hurts memory. If run the program using huge matrix with codistributed array in SPMD, the Matlab software is delay because of full of memory.

댓글을 달려면 로그인하십시오.

채택된 답변

Edric Ellis
Edric Ellis 8 Jun 2020
distributed arrays on a single machine will generally perform worse than normal arrays - this is because the standard MATLAB mldivide is already intrinsically multithreaded.
If you have access to a capable GPU, and your problem fits in the memory of the GPU, this might be a good option. See this example which compares mldivide performance on the CPU and GPU.

  댓글 수: 1

zawye aung
zawye aung 18 Aug 2020
Thank you! For your suggestion. I really appreciated that. I had already build MJS cluster, so i executed the mldivide fun, but i didn't get speed up. If i use more core, the program more take time. Any suggestion or guidence.

댓글을 달려면 로그인하십시오.

추가 답변(0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by