Parallel job bring me same random numbers
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Dario Toledo
el 20 de Nov. de 2017
Editada: Dario Toledo
el 21 de Nov. de 2017
The outputof my jobs depend of random numbers, I have the following script and i need to compare the result but i can't because they return the same.
Here is my code:
clear all;
clc;
thread1= batch('DiferentialEvo');
thread2= batch('DiferentialEvo')
wait(thread1);
wait(thread2)
load(thread1);
thread1Pg=Pg_best;
thread1pf=Pgf_best;
delete(thread1);
load(thread2);
thread2Pg=Pg_best;
thread2pf=Pgf_best;
delete(thread2);
0 comentarios
Respuesta aceptada
Edric Ellis
el 20 de Nov. de 2017
Editada: Edric Ellis
el 20 de Nov. de 2017
Parallel Computing Toolbox deliberately sets the random number state of workers such that the each task of a job starts from a known state - i.e. Task 1 of every job starts from a particular state, and Task 2 of every job starts from another particular state etc. See this doc page for more.
So, in conclusion, the simplest approach is simply to place
rng('shuffle')
inside your script - but be warned that this approach is fragile (as mentioned in the doc page referenced above) because it is based on the time at which the code executes.
For a more robust approach, you need to pass in the random seed to your task, and set up the random state from that.
1 comentario
Más respuestas (0)
Ver también
Categorías
Más información sobre Multicore Processor Targets en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!