call python function in parfor loop

18 views (last 30 days)
Kevin Zhu
Kevin Zhu on 19 Feb 2022
Answered: Al Danial on 8 Jul 2023
I have managed to call python function in matlab. However, I would like to know if it is possible to call python function within a parfor loop? If it is not, is there a method to perform parallel computation in my python function?
  5 Comments
Kevin Zhu
Kevin Zhu on 20 Feb 2022
what do you mean snippet? I have pasted all the warning message from command window here.
Takayuki Nagata
Takayuki Nagata on 21 Jun 2023
Hi.
I am facing the same problem.
My environment is MATLAB R2023a on Windows 10 with Python 3.8.
I would appreciate it if you could give me some guidance.
My MATLAB script is as follows:
clear all
np = py.importlib.import_module('numpy');
nr=10;
alpha=0.2;
q_sbf = np.loadtxt("xxx.txt");
[v_ic_org,~] = pyrunfile('F_extract_initial_state.py',["v_ic_org","u"],q_sbf=q_sbf);
Z=zeros(size(double(v_ic_org)))';
parfor r=1:nr
v_ic = alpha*randn(size(double(v_ic_org)));
tmp = pyrunfile('F_sim_linear_fwd.py',"sol_lin",q_sbf=q_sbf,v_ic=v_ic);
z = double(tmp);
Z(:,r) = z(:,end);
end
Thank you!

Sign in to comment.

Answers (1)

Al Danial
Al Danial on 8 Jul 2023
An alternative to parfor is to run the loop in parallel with dask. The function running in parallel, sol_lin(), in your case, can either be sent to the cores on your own computer, or to multiple computers on your network.

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!