From c11e168f4b7a09bd5f92a31584506fabbe58cafe Mon Sep 17 00:00:00 2001 From: Marco Ratto <marco.ratto@jrc.ec.europa.eu> Date: Fri, 5 Apr 2013 17:57:04 +0200 Subject: [PATCH] fixed bug with seeds in hybrid matlab-octave parallel clusters manual cherry-pick from Commit:09bc0a0aaae21c036d51b562d8d280d61905bc6b --- matlab/global_initialization.m | 1 + matlab/parallel/InitializeComputationalEnvironment.m | 9 ++++++++- matlab/set_dynare_seed.m | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m index ef312e8f8a..e351845cee 100644 --- a/matlab/global_initialization.m +++ b/matlab/global_initialization.m @@ -370,6 +370,7 @@ options_.mh_autocorrelation_function_size = 30; options_.plot_priors = 1; options_.cova_compute = 1; options_.parallel = 0; +options_.parallel_info.isHybridMatlabOctave = false; options_.parallel_info.leaveSlaveOpen = 0; options_.parallel_info.RemoteTmpFolder = ''; options_.number_of_grid_points_for_kde = 2^9; diff --git a/matlab/parallel/InitializeComputationalEnvironment.m b/matlab/parallel/InitializeComputationalEnvironment.m index 151869fad3..529ef60bad 100644 --- a/matlab/parallel/InitializeComputationalEnvironment.m +++ b/matlab/parallel/InitializeComputationalEnvironment.m @@ -45,6 +45,7 @@ end global options_ +isHybridMatlabOctave = false; for j=1:length(options_.parallel), if isempty(options_.parallel(j).MatlabOctavePath), if exist('OCTAVE_VERSION') @@ -57,8 +58,14 @@ for j=1:length(options_.parallel), dynareroot = strrep(which('dynare'),'dynare.m',''); options_.parallel(j).DynarePath=dynareroot; end + isHybridMatlabOctave = isHybridMatlabOctave || any(regexpi([options_.parallel(j).MatlabOctavePath], 'octave')); +end +isHybridMatlabOctave = isHybridMatlabOctave && ~exist('OCTAVE_VERSION'); +options_.parallel_info.isHybridMatlabOctave = isHybridMatlabOctave; +if isHybridMatlabOctave, + % Reset dynare random generator and seed. + set_dynare_seed('default'); end - diff --git a/matlab/set_dynare_seed.m b/matlab/set_dynare_seed.m index 944d11e509..0ebf223aa1 100644 --- a/matlab/set_dynare_seed.m +++ b/matlab/set_dynare_seed.m @@ -24,7 +24,7 @@ if ~nargin error('set_dynare_seed:: I need at least one input argument!') end -matlab_random_streams = ~(exist('OCTAVE_VERSION') || matlab_ver_less_than('7.7')); +matlab_random_streams = ~(exist('OCTAVE_VERSION') || matlab_ver_less_than('7.7') || options_.parallel_info.isHybridMatlabOctave); if matlab_random_streams% Use new matlab interface. if nargin==1 -- GitLab