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