parfor is not really speeding up the function.

I am trying to speed up my code that is computing the max. coherence of each pair of rows insede of matrices A and B:
A = rand(1000, 100);
B = rand(4, 100);
fcmat = zeros(size(A,1), size(B,1));
for i = 1:size(A,1)
for j = 1:size(B,1)
c = mscohere(A(i,:),B(j,:));
fcmat(i,j) = max(c);
end
end
I have tried to use a simple parfor, but it runs in approximately same time as the non-parfor loop
B_n = size(B,1);
parfor (i = 1:size(A,1))
for j = 1:B_n
c = mscohere(A(i,:),B(j,:));
fcmat(i,j) = max(c);
end
end
Is there anything I have done (or probably have not done) that is causing this code to not run faster? Is there some other way/technique that could make this code run faster?
Thank you.

Réponses (1)

Ganesh Gudipati
Ganesh Gudipati le 8 Fév 2023

1 vote

Hi Filip,
I could see some significant speed up in the code you provided after using parfor. Here are my observations
However you can check the following documentation to Improve parfor Performance. I hope this helps.
Thanks
Ganesh Gudipati

1 commentaire

Filip
Filip le 8 Fév 2023
Thank you.
The problem was that Matlab allows the user to use parfor without having the Parallel Computing toolbox installed.

Connectez-vous pour commenter.

Catégories

Produits

Version

R2022b

Question posée :

le 8 Fév 2023

Commenté :

le 8 Fév 2023

Community Treasure Hunt

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

Start Hunting!

Translated by