Automatic parfor without specify it

Could Matlab automatically execute all the code that could be parallelized without modifying its syntax? What I want to say is that after starting the parpool all the forloops that are in my code will be automatically executed as a parfor.

3 Kommentare

Mmm i don't know if i understood correctly if i have this pices of code
for index = 1:size(something)
statement;
statement;
end
this would be parallized automatically by matlab or i need to change for with parfor? This is just an exemple, so what i would is i start parpool and then, when possible, all code will be parallized.
Stephen23
Stephen23 am 24 Mai 2018
@Andrea Stevanato: as I wrote, my comment applies to vectorized code. If it is possible to remove the loop and write those statement to use vectorized code then MATLAB will automatically use multicores/threads when possible/suitable, depending on the operations. My comment does not apply to for loops.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Rik
Rik am 24 Mai 2018

0 Stimmen

No. The reason is that there are some restriction imposed on parfor-loops (mostly related to dynamic indexing), which are not imposed on normal for-loops.
Why don't you write your for-loops as parfor-loops yourself? Or do you want to run them as normal for-loops on machines without access to the parallel computing toolbox?

2 Kommentare

Andrea Stevanato
Andrea Stevanato am 24 Mai 2018
Exactly i want use parfor-loops only in some case and run code without parfor in other case. Or bettere I would parallelize (for, etc...) only when i start parpool "manually"
Rik
Rik am 24 Mai 2018
An ugly solution would be to have the code twice in your file: once with a for and the other time with a parfor. Then you put an if around it that checks if the parpool is started.

Melden Sie sich an, um zu kommentieren.

Kategorien

Gefragt:

am 24 Mai 2018

Kommentiert:

am 24 Mai 2018

Community Treasure Hunt

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

Start Hunting!

Translated by