diff --git a/matlab/independent_metropolis_hastings_core.m b/matlab/independent_metropolis_hastings_core.m index b0a8052d7..829cf4006 100644 --- a/matlab/independent_metropolis_hastings_core.m +++ b/matlab/independent_metropolis_hastings_core.m @@ -101,6 +101,16 @@ jloop=0; for b = fblck:nblck, jloop=jloop+1; + try + % this will not work if the master uses a random generator not + % available in the slave (different Matlab version or + % Matlab/Octave cluster). Therefor the trap. + set_dynare_seed(options_.DynareRandomStreams.algo); + set_dynare_random_generator_state(record.Seeds(b).Unifor, ... + record.Seeds(b).Normal); + catch + set_dynare_seed(options_.DynareRandomStreams.seed+b); + end set_dynare_random_generator_state(record.Seeds(b).Unifor,record.Seeds(b).Normal); if (options_.load_mh_file~=0) && (fline(b)>1) && OpenOldFile(b) load(['./' MhDirectoryName '/' ModelName '_mh' int2str(NewFile(b)) ... diff --git a/matlab/random_walk_metropolis_hastings_core.m b/matlab/random_walk_metropolis_hastings_core.m index 217328a93..0cc32ef9f 100644 --- a/matlab/random_walk_metropolis_hastings_core.m +++ b/matlab/random_walk_metropolis_hastings_core.m @@ -135,8 +135,16 @@ jloop=0; JSUM = 0; for b = fblck:nblck, jloop=jloop+1; - set_dynare_random_generator_state(record.Seeds(b).Unifor, ... - record.Seeds(b).Normal); + try + % this will not work if the master uses a random generator not + % available in the slave (different Matlab version or + % Matlab/Octave cluster). Therefor the trap. + set_dynare_seed(options_.DynareRandomStreams.algo); + set_dynare_random_generator_state(record.Seeds(b).Unifor, ... + record.Seeds(b).Normal); + catch + set_dynare_seed(options_.DynareRandomStreams.seed+b); + end if (options_.load_mh_file~=0) && (fline(b)>1) && OpenOldFile(b) load(['./' MhDirectoryName '/' ModelName '_mh' int2str(NewFile(b)) ... '_blck' int2str(b) '.mat'])