Запуск функций MATLAB для рабочих потоков

Сотни функций в 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 поддерживается рабочим потоком.

В целом, функциональность, которая изменяет или обращается к элементам за пределами рабочего потока, не поддерживается, включая следующие основные функциональности MATLAB.

Все imageDatastore и imread функциональность поддерживается в рабочем потоке, за исключением следующих форматов изображений.

  • Гибкая система передачи изображения (FTS, FITS)

  • Иерархический формат данных (HDF)

  • JPEG 2000 (J2C, J2K, JP2, JPF, JPX)

  • SVS, TIF, TIFF

gpuArray поддерживается в рабочем потоке.

См. также