Стиль архитектуры для больших вычислений

Azure
Пакетная служба Azure

Термин большие вычисления означает крупномасштабные рабочие нагрузки, для которых нужно большое количество ядер — сотни или даже тысячи. Такая потребность возникает в разных сценариях, например при обработке изображений, оценке динамики жидкостей, моделировании финансовых рисков, в расчетах для нефтяной и фармацевтической отраслей и при анализе расчетного напряжения.

Логическая схема архитектуры больших вычислений

Ниже приведены стандартные характеристики приложений для больших вычислений:

  • Работу можно разделить на дискретные задачи, которые будут одновременно выполняться в множестве ядер.
  • Время выполнения каждой задачи ограничено. Принимаются входные данные, выполняется обработка и выводятся результаты. Приложение в целом выполняется в течение конечного периода (от нескольких минут до нескольких дней). Такие задачи обычно решаются единовременным выделением большого количества ядер, число которых постепенно сводится к нулю по мере выполнения приложения.
  • Такому приложению не обязательно работать круглосуточно и ежедневно. Но система должна быть готова к сбоям узлов или самого приложения.
  • Задачи приложения могут быть независимыми и выполняться параллельно. Или же они могут быть тесно взаимосвязаны, то есть должны взаимодействовать в процессе выполнения или обмениваться промежуточными результатами. Для такого сценария можно применить технологии высокоскоростной сети, например InfiniBand и удаленный доступ к памяти (RDMA).
  • В зависимости от характера рабочей нагрузки вам могут потребоваться размеры виртуальных машин для больших объемов вычислений (H16r, H16mr или A9).

Когда следует использовать эту архитектуру

  • Для ресурсоемких вычислительных задач, таких как моделирование и обработка больших объемов числовых данных.
  • Для моделей с ресурсоемкими вычислениями, которые можно распределить между несколькими ЦП на нескольких компьютерах (от десятков до тысяч ядер).
  • Для моделей, обработка которых невозможна в пределах оперативной памяти одного компьютера и которые необходимо распределить между несколькими компьютерами.
  • Для длительных вычислений, выполнение которых на одном компьютере потребует слишком много времени.
  • Для относительно небольших вычислений, которые нужно повторять сотни или тысячи раз, как, например, моделирование по методу Монте-Карло.

Льготы

  • Высокая производительность при обработке с усложненным параллелизмом.
  • Возможность применить сразу сотни или тысячи ядер для быстрого решения больших проблем.
  • Доступ к специализированному высокопроизводительному оборудованию с поддержкой высокоскоростной выделенной сети InfiniBand.
  • Возможность подготовить виртуальные машины в необходимом для работы количестве и постепенно удалять их.

Сложности

  • Управление инфраструктурой виртуальных машин.
  • Управление большими объемами операций по обработке числовых данных.
  • Своевременная подготовка тысяч ядер.
  • Для задач с высокой взаимозависимостью добавление ядер может привести к снижению эффективности. Возможно, правильное количество ядер удастся определить лишь экспериментальным путем.

Большие вычисления с помощью пакетной службы Azure

Пакетная служба Azure — это управляемая служба для выполнения приложений высокопроизводительных крупномасштабных вычислений (HPC).

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

Схема больших вычислений с использованием пакетной службы Azure

Выполнение больших вычислений на виртуальных машинах

Для управления кластером виртуальных машин, а также планирования и мониторинга заданий HPC вы можете использовать пакет Microsoft HPC. Это позволит вам самостоятельно подготовить виртуальные машины и сетевую инфраструктуру, а также управлять ими. Рекомендуем этот подход, если у вас уже есть рабочие нагрузки HPC, но вы планируете полностью или частично переместить их в Azure. Вы можете переместить весь кластер HPC в Azure или сохранить локальный кластер HPC, но использовать Azure для ускорения емкости. Дополнительные сведения см. в статье Использование HPC, пакетной службы и больших вычислений.

Пакет HPC, развернутый в Azure

В этом сценарии кластер HPC создается полностью на платформе Azure.

Схема пакета HPC, развернутого в Azure

В головном узле для кластера выполняются задачи управления и планирования заданий. Для задач с высокой степенью взаимозависимости вы можете применить сеть RDMA, которая обеспечивает взаимодействие между виртуальными машинами с очень высокой пропускной способностью и низкими задержками. Дополнительные сведения см. в статье "Развертывание кластера HPC с пакетом 2016" в Azure.

Расширение кластера HPC в Azure

В этом сценарии пакет HPC выполняется в локальной среде организации к нему подключаются виртуальные машины Azure для повышения производительности. Головной узел кластера находится в локальной среде. Между локальной и виртуальной сетями Azure устанавливается подключение через ExpressRoute или VPN-шлюз.

Схема гибридного кластера для больших вычислений

Следующие шаги