启动并行工具箱会导致随机数生成器产生相同的随机数吗?
即使我实际上没有使用parfor,我似乎也能得到相同的结果?即我打开matlab池但无论如何都要用。
然后当我重新运行时,即使我再次重新打开matlab池,结果也会有所不同?
巴兹
答案 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中还有一些可能有用的信息。