call python function in parfor loop
Afficher commentaires plus anciens
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 commentaires
Raymond Norris
le 19 Fév 2022
Can't see a reason why you couldn't call python from within parfor. I would suggest trying it and reporting back any issue you run into.
Kevin Zhu
le 19 Fév 2022
Ive J
le 19 Fév 2022
Can you share the snippet as well?
Kevin Zhu
le 20 Fév 2022
Takayuki Nagata
le 21 Juin 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!
Réponses (1)
Al Danial
le 8 Juil 2023
0 votes
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.
https://al.danial.org/posts/parallel_matlab_with_dask/ has examples.
Catégories
En savoir plus sur Call Python from MATLAB dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!