使用并行计算实现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秒。
重叠
不使用随机数,所以每次都给出相同的结果,无论是并行还是串行运行。