Сотни функций в MATLAB® и другие тулбоксы могут запускаться на рабочих потоках, если вы создаете пул с поддержкой потоков с помощью parpool
.
parpool("threads"); parfor i = 1:100 A(i) = max(eig(rand(3))); end
ThreadPool
.
Совет
Можно улучшить некоторые параллельные рабочие процессы с помощью рабочих потоков вместо рабочих процессов. Дополнительные сведения о выборе между ними см. в разделе Выбор между окружениями на основе потоков и на основе процессов.
Список отфильтрованных функций MATLAB, которые полностью поддерживаются рабочими потоками, см. в разделе Функции, поддерживаемые рабочими потоками.
parallel.pool.DataQueue
и parallel.pool.PollableDataQueue
полностью поддерживаются рабочим потоком.
parpool
, parfor
, parfeval
, parfevalOnAll
, tall
, и parallel.pool.Constant
поддерживаются, с учетом следующих ограничений.
Параллельный пул на основе потоков не имеет связанного объекта кластера.
afterEach
и afterAll
не поддерживаются.
FevalQueue
не поддерживается.
Длинные массивы не поддерживает write
и поддерживает только табличный текст и входы в памяти.
Другие функции параллельного языка, включая spmd
и distributed
не поддерживается.
Следующая функциональность ядра MATLAB поддерживается рабочим потоком.
Функциональность в Основах языка, за исключением функциональности в Вводе команд.
Функциональность в математике, кроме любых функций, которые строятся на рисунке.
Функциональность в функциях, классах и всех функциональных возможностях, связанных с попыткой, перехватом и MException
.
В целом, функциональность, которая изменяет или обращается к элементам за пределами рабочего потока, не поддерживается, включая следующие основные функциональности MATLAB.
Функциональность в импорте и анализе данных, за исключением функциональности в Длинные Массивы, предварительной обработке данных, описательной статистике, imageDatastore
и imread
.
Функциональность в графике и App Building.
Функциональность в интерфейсах к внешним языкам.
Функциональность, которая взаимодействует непосредственно с файловой системой или окружением MATLAB.
Все imageDatastore
и imread
функциональность поддерживается в рабочем потоке, за исключением следующих форматов изображений.
Гибкая система передачи изображения (FTS, FITS)
Иерархический формат данных (HDF)
JPEG 2000 (J2C, J2K, JP2, JPF, JPX)
SVS, TIF, TIFF
gpuArray
поддерживается в рабочем потоке.