Параллельные вычисления позволяют выполнять множество вычислений одновременно. Крупные проблемы часто можно разделить на более мелкие, которые затем решаются одновременно.
Основные причины рассмотрения параллельных вычислений:
Экономьте время, распределяя задачи и выполняя их одновременно
Решение проблем больших данных путем распределения данных
Воспользуйтесь преимуществами ресурсов настольных компьютеров и расширьте возможности до кластеров и облачных вычислений
С помощью Parallel Computing Toolbox™ можно
Ускорение кода с помощью интерактивных параллельных вычислительных средств, таких как parfor и parfeval
Масштабирование вычислений с помощью интерактивных инструментов обработки больших данных, таких как distributed, tall, datastore, и mapreduce
Использовать gpuArray для ускорения вычислений на графическом процессоре компьютера
Использовать batch разгрузка вычислений в кластеры компьютеров или облачные вычислительные системы
Ниже приведены некоторые полезные концепции параллельных вычислений.
Узел: автономный компьютер, содержащий один или несколько процессоров/графических процессоров. Узлы подключены к сети для формирования кластера или суперкомпьютера
Поток: наименьший набор команд, которые могут управляться независимо планировщиком. В GPU, многопроцессорной или многоядерной системе одновременно может выполняться несколько потоков (многопоточность)
Пакет: выполнение вне загрузки функционального сценария для запуска в фоновом режиме
Масштабируемость: увеличение параллельного ускорения с добавлением большего количества ресурсов
Какие инструменты предлагают MATLAB ® и Parallel Computing Toolbox?
MATLAB рабочие: MATLAB вычислительные механизмы, которые работают в фоновом режиме без графического рабочего стола. Функции панели инструментов параллельных вычислений используются для автоматического разделения задач и назначения их этим работникам для параллельного выполнения вычислений. Можно запустить локальных работников, чтобы воспользоваться преимуществами всех ядер многоядерного настольного компьютера. Можно также выполнить масштабирование для запуска сотрудников на кластере машин с помощью параллельного Server™ MATLAB. Сеанс MATLAB, с которым вы взаимодействуете, называется клиентом MATLAB. Клиент инструктирует работников параллельными языковыми функциями.
Параллельный пул: параллельный пул работников MATLAB, созданный с помощью parpool или функции с автоматической параллельной поддержкой. По умолчанию при необходимости функции параллельного языка автоматически создают параллельный пул. Дополнительные сведения см. в разделе Запуск кода для параллельных пулов.
Для локального профиля по умолчанию количество работников составляет один на ядро физического ЦП с использованием одного вычислительного потока. Это происходит потому, что, хотя каждое физическое ядро может иметь несколько виртуальных ядер, виртуальные ядра совместно используют некоторые ресурсы, обычно включая совместно используемый блок с плавающей запятой (FPU). Большинство вычислений MATLAB используют эту единицу, поскольку они представляют собой плавающую точку с двойной точностью. Ограничение до одного работника на физическое ядро гарантирует, что каждый работник имеет эксклюзивный доступ к блоку с плавающей запятой, что обычно оптимизирует производительность вычислительного кода. Например, если ваш код не требует больших вычислительных затрат, он требует больших затрат на ввод-вывод (I/O), рассмотрите возможность использования до двух рабочих на каждое физическое ядро. Работа слишком большого числа сотрудников на слишком небольшом количестве ресурсов может повлиять на производительность и стабильность компьютера.
Ускорение: Ускорьте код, запустив несколько рабочих MATLAB или графических процессоров, например, используя parfor, parfeval, или gpuArray.
Масштабирование данных: разбиение больших данных на несколько работников MATLAB с использованием больших массивов и распределенных массивов. Дополнительные сведения см. в разделе Обработка больших данных.
Асинхронная обработка: Использование parfeval выполнение вычислительной задачи в фоновом режиме без ожидания ее завершения.
Масштабирование до кластеров и облаков. Если вычислительная задача слишком большая или слишком медленная для локального компьютера, можно выгрузить вычисления в кластер на месте или в облаке с помощью MATLAB Parallel Server. Дополнительные сведения см. в разделе Кластеры и облака.