Что такое параллельные вычисления?

Параллельные вычисления позволяют выполнять множество вычислений одновременно. Крупные проблемы часто можно разделить на более мелкие, которые затем решаются одновременно.

Основные причины рассмотрения параллельных вычислений:

  • Экономьте время, распределяя задачи и выполняя их одновременно

  • Решение проблем больших данных путем распределения данных

  • Воспользуйтесь преимуществами ресурсов настольных компьютеров и расширьте возможности до кластеров и облачных вычислений

С помощью 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. Дополнительные сведения см. в разделе Кластеры и облака.

Связанные темы