我创建了一个函数来使用 Gap Statistics 算法计算数据集的正确 ks 数。该算法需要在一个点上为 100 个不同的数据集(称为“测试数据(集)”或“参考数据(集)”)计算离散度(即,每个点与其质心之间的距离之和) )。由于这些操作是独立的,我想在所有内核上并行它们。我有 Mathworks 的 Parallel Toolbox,但我不确定如何使用它(问题 1;我猜我可以使用过去的线程来理解这一点)。然而,我真正的问题是另一个问题:这个工具箱似乎只允许使用 12 个内核(问题 2)。我的机器有 64 个内核,我需要使用所有内核。你知道如何在 12+ 个内核之间并行处理一个进程吗?
供您参考,这是应该并行运行的代码:
%This cycle is repeated n_tests times where n_tests is equal
%to the number of reference datasets we want to use
for id_test = 2:n_tests+1
test_data = generate_test_data(data);
%% Calculate the dispersion(s) for the generated dataset(s)
dispersions(id_test, 1:1:max_k) = zeros;
%We calculate the dispersion for the id_test reference dataset
for id_k = 1:1:max_k
dispersions(id_test, id_k) = calculate_dispersion(test_data, id_k);
end
end