Этот пример из jackknife страница ссылки на функцию, но выполняется параллельно.
Создайте выборку данных размера 10000 из нормального распределения со средним значением 0 и стандартным отклонением 5.
sigma = 5;
rng('default')
y = normrnd(0,sigma,10000,1);Управляемый jackknife параллельно для оценки дисперсии. Для этого используйте statset для создания структуры опций и установки UseParallel в поле true.
opts = statset('UseParallel',true); m = jackknife(@var,y,1,'Options',opts);
Сравните известную формулу смещения с оценкой смещения джекнифа.
n = length(y); bias = -sigma^2/n % Known bias formula jbias = (n-1)*(mean(m)-var(y,1)) % jackknife bias estimate
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6). bias = -0.0025 jbias = -0.0025
Сравните, сколько времени занимает вычисление в последовательном и параллельном режимах.
tic;m = jackknife(@var,y,1);toc % Serial computationElapsed time is 1.638026 seconds.
tic;m = jackknife(@var,y,1,'Options',opts);toc % Parallel computation
Elapsed time is 0.507961 seconds.
jackknife не использует случайные числа, поэтому каждый раз дает одни и те же результаты, будь то параллельные или последовательные.