MATLAB и использование нескольких ядер для выполнения вычислений

Всем привет. Я пытаюсь разобраться, как заставить MATLAB работать как можно лучше. У меня есть довольно приличная новая машина.

12 ГБ ОЗУ Core i7 3,2 ГГц ЦП и много свободного места. и мощная видеокарта.

Однако, когда я запускаю эталонный тест MATLAB (командный стенд), он показывает, что компьютер находится рядом с худшим, вокруг одноядерного компьютера с Windows XP 1,7 ГГц.

Любые идеи, почему и как я могу это улучшить??

Большое спасибо


person Guy Z    schedule 21.07.2010    source источник


Ответы (3)


Во-первых, я бы порекомендовал повторно запустить команду Bench несколько раз, чтобы убедиться, что MATLAB полностью загрузил все необходимые библиотеки и т. д. Большая часть MATLAB загружается по запросу, поэтому всегда лучше рассчитывать время второго или третьего запуска.

MATLAB автоматически использует преимущества нескольких ядер при выполнении определенных многопоточных операций. Например, множество поэлементных операций, таких как +, .* и т. д., а также операции с поддержкой BLAS (и, возможно, другие). На этой странице перечислены те вещи, которые являются многопоточными.

Parallel Computing Toolbox полезен, когда внутренняя многопоточность MATLAB не может помочь (если может, то обычно это самый быстрый способ сделать что-то). Это дает вам явный параллелизм через PARFOR, SPMD и распределенные массивы.

person Edric    schedule 21.07.2010

Вам понадобится Набор инструментов для параллельной обработки. Многие функции MATLAB являются многопоточными, но для распараллеливания собственного кода вам это понадобится. Глупый хак - открыть несколько экземпляров MATLAB из командной строки. Вы также можете писать многопоточные файлы MEX, но правильно Способ сделать это - купить и использовать вышеупомянутый набор инструментов.

person Jacob    schedule 21.07.2010

Это может быть очевидно, но убедитесь, что вы включили многопоточные вычисления в настройках (Файл > Настройки > Общие > Многопоточность). В некоторых версиях MATLAB он не включен по умолчанию.

person Matt Mizumi    schedule 02.08.2010