每次使用并行工具箱时,Matlab都会生成相同的随机数

时间:2013-11-23 17:18:49

标签: matlab

启动并行工具箱会导致随机数生成器产生相同的随机数吗?

即使我实际上没有使用parfor,我似乎也能得到相同的结果?即我打开matlab池但无论如何都要用。

然后当我重新运行时,即使我再次重新打开matlab池,结果也会有所不同?

巴兹

1 个答案:

答案 0 :(得分:1)

每次启动时,MATLAB本身始终以完全相同的方式初始化其随机数生成器。这是为了让您在需要时重现结果。例如,在R2013b中,在WIN64和GLNXA64上,rand()的第一次返回是0.8147...

同样,Parallel Computing Toolbox工作人员具有确定性随机数初始化。因此,我们看到以下内容(在R2013b中使用新的parpool语法)

>> parpool('local', 3); spmd, rand, end
Starting parallel pool (parpool) using the 'local' profile ... connected to 3 workers.
Lab 1: 
  ans =
      0.3246
Lab 2: 
  ans =
      0.2646
Lab 3: 
  ans =
      0.8847

有更多信息(包括有关gpuArray随机数的详细信息)in the doc

this c.s-s.m thread中还有一些可能有用的信息。