Гибридные параллельные вычисления ускоряют физическое моделирование

Двадцать лет назад на сайте TOP500 преобладали суперкомпьютеры с векторной обработкой данных, оснащённые тысячами узлов обработки данных. Позже такие системы были заменены на кластеры для масштабных параллельных вычислений, которые вскоре стали возглавлять список и дали толчок распределённым вычислениям. Первые кластеры использовали выделенные одноядерные процессоры на каждом вычислительном узле. Позже в узлы, требующие совместного использования памяти, были добавлены дополнительные процессоры. Потенциальные возможности таких компьютеров для параллельного вычисления с совместно используемой памятью предопределили полный переход к многоядерным процессорам, требующим надёжных и грамотных алгоритмов в различных компьютерных приложениях. Сегодня же на сайте TOP500 мы видим, что большинство кластеров состоят из огромного количества вычислительных узлов с несколькими сокетами и содержат до восьми ядер в каждом процессоре. Методы параллельного вычисления для компьютеров с совместной памятью отличаются от тех, которые используются при вычислении в кластерах с распределённой памятью. Таким образом, требуется смешанный (гибридный) метод для эффективных параллельных вычислений.

Общая и распределённая память

Существует два распространённых типа параллельных вычислений: с совместно используемой памятью (shared memory) и с распределенной памятью (distributed memory). Между этими методами есть множество различий, даже если конечная цель одинакова — выполнение более быстрых и масштабных расчётов, используя ПО для параллельных вычислений. (Ознакомьтесь с заметкой Lawrence Livermore National Laboratory, которая является отличным введением в параллельные вычисления.)

Основная разница между методами отражена в их названии. В первом случае распределённые части программы, которые работают параллельно, совместно используют общий объём памяти. Это обеспечивает скорость передачи данных между ядрами и процессорами. Однако основным недостатком такого метода является то, что вычислительные ресурсы в узле с совместной памятью ограничены. Также нельзя добавить дополнительные мощности при увеличении размера задачи или потребности в большем количестве ядер для уменьшения количества вычислений на ядро. Вычисления с совместно используемой памятью трудно масштабировать.

В распределённых вычислениях память используется не совместно, а, наоборот, распределяется между несколькими параллельными процессами. Они взаимодействуют между собой, передавая «сообщения». Взаимосвязь и синхронизация требуют дополнительного времени, следовательно, их необходимо максимально уменьшить, используя локальность данных и усовершенствованные алгоритмы. Значительным преимуществом этого метода является простота масштабирования и добавления дополнительных ресурсов (узлов — а с ними и ядер, и оперативной памяти).

Как правило, мы используем вычисления с совместной памятью, когда у нас есть компьютер с большим числом ядер, а вычисления с распределённой памятью — когда у нас есть кластер, состоящий из нескольких вычислительных узлов.

Гибридные параллельные вычисления

Рассматривая развитие рынка процессоров, видна тенденция к увеличению производительности путём добавления большего количества ядер, а не увеличения тактовой частоты. Первый двухъядерный x86 процессор был выпущен AMD в 2004 году. Во второй половине 2013 года Intel выпустила процессор с 12 ядрами. Если верить слухам, процессоры с технологией Knights Landing от Intel могут содержать 72 ядра!

shared memory distributed memory computing Гибридные параллельные вычисления ускоряют физическое моделирование

Это значит, что кластеры с одноядерными вычислениями уже неактуальны. Большинство кластеров в TOP500 имеют вычислительные узлы с восемью ядрами на каждый сокет. Подобная комбинация используется в малых и средних вычислительных кластерах. Такие широко используемые конфигурации делают неизбежным одновременное применение совместной памяти для вычислений внутри узлов и распределенной памяти для вычислений между узлами. Такой метод называется гибридные параллельные вычисления. Его суть в увеличении масштабируемости, уменьшении дорогостоящих расходов на передачу сообщений и использовании производительности совместной памяти. Объединение механизмов совместно используемой и распределенной памяти в рамках гибридного метода обеспечивает гибкие возможности адаптации к любым типам вычислительных платформ. Выбор оптимального сочетания двух способов распараллеливания позволит ускорить вычисления, повысить масштабируемость и эффективно использовать возможности устройств.

shared memory distributed memory hybrid parallel computing Гибридные параллельные вычисления ускоряют физическое моделирование

Программное обеспечение COMSOL и гибридное распараллеливание

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

COMSOL Multiphysics® и его модули расширения специально оптимизированы под мультифизические расчёты. Выбор оптимальной параллельной конфигурации зависит от физического интерфейса, количества взаимосвязей в модели, размера задачи и решателя. Детализированные элементы управления позволят найти оптимальную параллельную конфигурацию, чтобы решить вашу проблему в программном обеспечении COMSOL.


Loading Comments...

Categories


Tags