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)