Не могу использовать все 8 ядер в Core i7 для Matlab
Когда я выполню
matlabpool open 4;
все работает правильно, но когда я пытаюсь выполнить
matlabpool open 8;
ошибка возникает сразу. Я читал о Hyper Threading и знаю, что 4 из 8 ядер являются виртуальными. Означает ли это, что я не могу эффективно использовать все 8 ядер для
parfor loop
в матлабе?
Например, у меня есть 8 подобных независимых задач.
Могу ли я использовать все 8 ядер в Python или C#/C++ с ускорением в 8 раз быстрее?
1 ответ
По умолчанию MATLAB использует количество физических ядер, а не количество гиперпоточных ядер на вашем компьютере, поскольку гипер-потоки в конечном итоге все же используют одни и те же ресурсы физических процессоров. Более подробная информация о конкретных случаях, в которых использование / поддержка гиперпотоков может быть / не может быть полезной, приведена в этом сообщении на MATLAB.
Если вы хотите использовать 8 рабочих, вы можете изменить NumWorkers
собственность вашего 'local'
конфигурация
cluster = parcluster('local');
cluster.NumWorkers = 8;
saveProfile(cluster);
Кроме того, вы можете установить максимальное количество вычислительных потоков для использования с maxNumCompThreads
maxNumCompThreads(8)