Как сделать многопоточность в MATLAB? - PullRequest
4 голосов
/ 26 апреля 2010

Как сделать многопоточность в MATLAB? Я хочу запустить одну функцию на две переменные одновременно. Как мне это сделать?

Ответы [ 3 ]

7 голосов
/ 26 апреля 2010

Параллельный набор инструментов имеет несколько инструментов, которые могут вам помочь.Ниже приведен пример, вставленный из справки Matlab

matlabpool    % Use default parallel configuration
spmd          % By default uses all labs in the pool
    INP = load(['somedatafile' num2str(labindex) '.mat']);
    RES = somefun(INP);
end

. Значения RES в лабораториях доступны клиенту как RES{1} из лаборатории 1, RES{2} из лаборатории 2 и т. Д.

Вы также можете рассматривать parfor как простую параллельную замену for.Надеюсь, это поможет, даже если это не совсем то, что вы ищете.

1 голос
/ 26 апреля 2010

Я не верю, что есть какая-либо встроенная поддержка многопоточности от MATLAB. Это происходит как из недавнего разговора с коллегой, так и из быстрого поиска в Google

Надеюсь, это поможет.

0 голосов
/ 28 сентября 2012

Вы можете сделать это с файлами MEX и std::thread (см. здесь ).

Я не пытался вызвать mexEvalString из файла MEX, и вполне возможно, что это приведет к ошибке во время выполнения или к зависанию MATLAB на время выполнения. Но если вы можете написать этот конкретный кусок кода на C ++, это может быть то, что вы ищете.

...