how to run two matlab scripts in parallel?
75 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mayar Kamel
el 2 de En. de 2017
Editada: Walter Roberson
el 26 de Feb. de 2025
I need to run two scripts in parallel and simultaneously, run the first script and the second script at the same time.
1 comentario
Hema sai sree
el 26 de Feb. de 2025
Editada: Walter Roberson
el 26 de Feb. de 2025
funcs1 = {@fun1, @fun2} ; % let fun1, fun2 be two functions
arguments = {inp1,inp2 ;inp1,inp2} ; % write the inputs of each function
solutions = cell(1,2); % initialize the solution
% use of parfor
parfor ii = 1:2
solutions1{ii}=funcs1{ii}(arguments1{ii,:});
end
M = solutions1{1} ; N = solutions1{2} ; % assign the results
Respuesta aceptada
KSSV
el 2 de En. de 2017
You can use parfor to run two functions simultaneously. Eg:
funcs1 = {@fun1, @fun2} ; % let fun1, fun2 be two functions
arguments = {inp1,inp2 ;inp1,inp2} ; % write the inputs of each function
solutions = cell(1,2); % initialize the solution
% use of parfor
parfor ii = 1:2
solutions1{ii}=funcs1{ii}(arguments1{ii,:});
end
M = solutions1{1} ; N = solutions1{2} ; % assign the results
0 comentarios
Más respuestas (4)
José-Luis
el 2 de En. de 2017
Editada: José-Luis
el 2 de En. de 2017
Another alternative is to start two sessions of Matlab and run the different scripts there.
4 comentarios
Walter Roberson
el 25 de Sept. de 2020
SPMD with labSend() and labReceive() is natural for that kind of work.
Hamza Ashraf
el 26 de Sept. de 2020
Can you explain it with code i dont know how to use spmd with labsend and lab receive
Austin Bond
el 17 de Abr. de 2018
should the 'arguments' and 'solutions' variables really be 'arguments1' and 'solutions1'?
1 comentario
Sean de Wolski
el 17 de Abr. de 2018
Just call batch directly or right-click on the script in the current folder browser and select "Run as batch job"
0 comentarios
MathWorks Support Team
el 2 de Sept. de 2022
You can use Parallel Computing Toolbox to run two MATLAB functions simultaneously. (If you have scripts, then first wrap them up as functions as described here in the doc Create Functions in Files). The parfeval function allows you to run two functions simultaneously on a parallel pool. Each call to parfeval causes the specified function to be invoked on a worker with the provided inputs. You also need to specify up front how many outputs you want. Your code might end up like this:
numOut = 1; % Both functions here have only a single output
f1 = parfeval(@myFirstFunction, numOut, in1, in2); % request myFirstFunction(in1,in2)
f2 = parfeval(@mySecondFunction, numOut, in3); % request mySecondFunction(in3)
out1 = fetchOutputs(f1); % this waits for myFirstFunction to complete and then gets the result
out2 = fetchOutputs(f2);
If you need to process the results as soon as either function completes, you could use fetchNext instead of fetchOutputs.
1 comentario
Walter Roberson
el 2 de Sept. de 2022
These days, you can also use parfeval() and background threads without needing the Parallel Computing Toolbox; see backgroundPool
Ver también
Categorías
Más información sobre Parallel Computing Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!