主要内容

使用并行计算实现Jackknife

这个例子来自重叠函数参考页,但并行运行。

从均值为0,标准差为5的正态分布中生成大小为10000的样本数据。

Sigma = 5;rng (“默认”) y = normrnd(0,sigma,10000,1);

运行重叠并行估计方差。要做到这一点,使用statset创建选项结构并设置UseParallel字段为true。

Opts = statset(“UseParallel”,真正的);M = jackknife(@var,y,1,“选项”、选择);

将已知偏差公式与夹刀偏差估计进行比较。

N =长度(y);偏差= -sigma^2/n已知偏差公式Jbias = (n-1)*(mean(m)-var(y,1))折刀偏差估计
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工人数:6)。bias = -0.0025 jbias = -0.0025

比较串行和并行计算需要多长时间。

Tic;m = jackknife(@var,y,1)%串行计算
运行时间为1.638026秒。
Tic;m = jackknife(@var,y,1,“选项”、选择);toc%并行计算
运行时间为0.507961秒。

重叠不使用随机数,所以每次都给出相同的结果,无论是并行还是串行运行。