Использование matlabpool с указанным количеством работников
Я использовал команду matlabpool open 8
на некоторое время, чтобы ускорить вещи. Однако я только попытался использовать это, и мне отказали в 8 ядрах и теперь ограничены 4.
Мой ноутбук - это i7 с 4 ядрами, но с поддержкой многопоточности, что означало, что у меня нет проблем с тем, чтобы Matlab работал на 8 виртуальных ядрах.
Одновременно я заметил следующее предупреждающее сообщение:
Warning: matlabpool will be removed in a future release.
Use parpool instead.
Похоже, MathsWorks решил, что это отличное обновление по какой-то причине.
Есть идеи, как заставить мой код снова работать на 8 ядрах?
Примечание: я использовал R2010b (я думаю), а теперь использую R2014b.
1 ответ
Похоже, @horchler предоставил вам прямое решение вашего вопроса в комментариях.
Однако я бы порекомендовал придерживаться 4 рабочих по умолчанию, предложенных MATLAB, и не использовать 8. Очень маловероятно, что вы переместитесь на 8, и вы даже можете немного замедлить работу.
У вас есть четыре физических ядра, и они могут выполнять только такую большую работу. Гиперпоточность позволяет операционной системе делать вид, что имеется 8 ядер, путем чередования операций, выполняемых на парах виртуальных ядер.
Это отлично подходит для таких приложений, как Outlook, которые не требуют больших вычислительных ресурсов, но требуют одновременного выполнения большого количества операций, например, для обеспечения поддержки графического интерфейса пользователя при проверке электронной почты по сетевому соединению.
Но для приложений, требующих большого объема вычислений, таких как MATLAB, это не даст вам никакого реального ускорения, поскольку операции просто чередуются - вы не увеличили объем работы, который могут выполнять 4 реальных физических ядра. Кроме того, есть небольшая нагрузка при выполнении гиперпоточности.
По моему опыту, MATLAB немного выиграет, отключив гиперпоточность. (Конечно, другие вещи, такие как Outlook, не будут: ваш выбор).