How can I use multithreading in Matlab?

조회 수: 259 (최근 30일)
Adriano Gendy
Adriano Gendy 2020년 3월 18일
답변: Ed Mitchell 2023년 3월 14일
Hi everyone
I have this sample code here:
a=0;
x = 0;
m = 0;
while (a==0)
m = m+1;
end
for i = 1:60
pause (1)
x = m;
if (i == 60)
a = 1;
end
Is there a way to make the two loops "communicate" with each other at the same time? So that I can update the x value with the m value continuosly?
Thanks in advance
  댓글 수: 2
Walter Roberson
Walter Roberson 2020년 3월 23일
spmd with labSend and labReceive
Adriano Gendy
Adriano Gendy 2020년 3월 25일
Thank you for your answer, I tried to used the functions you advised but I am having a little bit of trouble.
clear all
close all
clc
mpiInit
delete(gcp('nocreate'))
labs = parpool(2);
a=0;
x = 0;
m = 0;
spmd
m = m+1;
labSend(m,2);
end
for i = 1:60
pause (1)
x = labReceive(1)
if (i == 60)
a = 1;
end
end
So now I have two probelms:
  1. the variable m does not update in the spmd and it is not considered and integere anymore but a Composite variable
  2. labSend and labReceive do not work because I am not able to define which Lab is the receiver and which the one that sends the value (I tred also the function labSendReceive which does not give me any error and I am abke to pass with it the value m, but m is a Composite and I don't know hot to make it an integer)
Thank you again

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

채택된 답변

Ed Mitchell
Ed Mitchell 2023년 3월 14일
For people that are finding this MATLAB answer while searching more generally for how MATLAB manages the number of cores and hyperthreading, please refer to the following MATLAB Answer for more details.

추가 답변 (1개)

Dinesh Yadav
Dinesh Yadav 2020년 3월 23일
Hi, there are two for loops in the above code. The way MATLAB multi-threading works in case of for loops is it checks for loops and dependent variables between for loops. If there is no dependency they will be parallized otherwise they remain in serial execution. In case of above code as variable x is dependent on m these for loops cannot be parallized.
Also go through similar questions links below asked in community .

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by