主要内容

使用并行计算实现引导

在串行和并行引导

这里有一个例子时机引导并行与串行。示例生成的数据的混合两个高斯函数,构造了一个非参数估计的结果数据,并使用一个引导抽样可变性。

  1. 生成数据:

    1000年%生成一个随机样本的大小,从两个高斯分布的混合x % = [randn (700 1);4 + 2 * randn (300 1)];
  2. 构建一个非参数估计的密度数据:

    奈= 4:0.01:12;myfun = @ (X) ksdensity (X,奈);pdfestimate = myfun (x);
  3. 引导估计了解其抽样可变性。在串行运行引导时间的比较。

    myfun抽搐;B = bootstrp(200年,x); toc运行时间是10.878654秒。
  4. 运行时间比较的并行引导:

    mypool = parpool()开始parpool使用当地的概要文件…连接到两个工人。mypool =池的属性:AttachedFiles: {0 x1细胞}NumWorkers: 2 IdleTimeout: 30集群:[1 x1 parallel.cluster。当地]RequestQueue: [1 x1平行。RequestQueue] SpmdEnabled: 1
    选择= statset (“UseParallel”,真正的);myfun抽搐;B = bootstrp(200年,x,“选项”,选择),toc运行时间是6.304077秒。

    并行计算几乎是两倍的串行计算这个例子。

覆盖的ksdensity密度估计的200年并行自举引导估计获得。你可以了解如何评估这个阴谋的密度估计的准确性。

抓住我= 1:尺寸(B, 1),情节(奈,B(我:),“c:”)结束情节(奈,pdfestimate);包含(“x”); ylabel(密度估计的)

可再生的并行自举

可再生的方式并行运行示例,设置适当的选项(见运行的并行计算)。第一次设置问题和并行环境在串行和并行引导。然后将选项设置为使用支持substreams substreams连同一个流。金宝app

s = RandStream (“mlfg6331_64”);% substreams选择= statset (UseParallel,真的,…“流”,年代,“UseSubstreams”,真正的);myfun B2 = bootstrp(200年,x,“选项”,选择);

重新引导,得到同样的结果:

(s) %设置流重置为初始状态B3 = bootstrp(200年,myfun x,“选项”,选择);isequal相同(B2, B3) %检查结果ans = 1