Не могу использовать все 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)
Другие вопросы по тегам