MATLAB中的并行处理,具有12个以上的内核

Edg*_*rby 1 parallel-processing optimization matlab

我创建了一个函数来使用Gap Statistics算法计算数据集的正确k数.该算法在一点上需要计算100个不同数据集(称为"测试数据(集合)"或"参考数据(集合)")的色散(即,每个点与其质心之间的距离之和). ).由于这些操作是独立的,我想在所有核心上并行它们.我有Mathworks的并行工具箱,但我不知道如何使用它(问题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
Run Code Online (Sandbox Code Playgroud)

Edr*_*ric 5

请注意,在R2014a中,删除了当地工人数量的限制.请参阅发行说明.