Пакет Microsoft HPC
Для управления высокопроизводительной инфраструктурой или для управления облачными и локальными виртуальными машинами рекомендуется использовать пакет Microsoft HPC.
В вашей инженерной компании необходимо перенести высокопроизводительную инфраструктуру из локальных центров обработки данных в Azure. Так как эти системы критически важны для бизнеса, вы хотите постепенно перенести их. Необходимо убедиться, что вы можете быстро реагировать на запросы и управлять виртуальными машинами гибко во время миграции, если есть как локальные, так и облачные виртуальные машины.
Здесь вы узнаете, как пакет HPC может управлять инфраструктурой HPC.
Что такое пакет HPC?
При исследовании вариантов для инженерной организации вы изучили Azure Batch и Azure HPC Instances. Но что делать, если вы хотите иметь полный контроль над управлением и планированием кластеров виртуальных машин? Что делать, если у вас есть значительные инвестиции в локальную инфраструктуру в центре обработки данных? Пакет HPC предоставляет набор установщиков для Windows, которые позволяют настроить собственный контрольный и управленческий уровень, а также гибкие развертывания локальных и облачных узлов. В отличие от исключительно облачного сервиса Batch, HPC Pack имеет возможность развертывания как в локальной среде, так и в облаке. Он использует гибридный вариант обоих для расширения в облако, если локальные резервы недостаточно.
HPC Pack — это версия слоя управления пакетной обработкой и планированием, которая предоставляет полный контроль и ответственность. Для развертывания пакета HPC требуется Windows Server 2012 или более поздней версии.
Планирование пакета HPC
Как правило, следует подготовиться к установке пакета HPC с полным обзором требований. Вам нужен SQL Server и контроллер Active Directory. Кроме того, необходимо запланировать топологию. Сколько узлов головного или управляемого узла должно быть, и сколько рабочих узлов? Вам нужно расширить до Azure? В этом случае вы предварительно подготавливаете узлы Azure в составе кластера. Размер основных компьютеров, составляющих плоскость управления (головные и управляющие узлы, контроллер домена SQL Server и Active Directory), зависит от прогнозируемого размера кластера.
При установке пакета HPC он отображает планировщик заданий с поддержкой как для заданий HPC, так и для параллельных заданий. Планировщик отображается в интерфейсе передачи сообщений Майкрософт. Пакет HPC интегрирован с Windows, поэтому для параллельной отладки можно использовать Visual Studio. Все события приложения, сети и операционной системы можно просмотреть из вычислительных узлов в кластере в одном представлении отладчика.
Пакет HPC также предлагает расширенный планировщик заданий. Вы можете быстро развернуть даже узлы, не предназначенные исключительно для пакета HPC, на узлах под управлением Linux и узлах Azure. Это означает, что вы можете использовать резервную емкость в центре обработки данных. Пакет HPC предоставляет идеальный способ использования существующих инвестиций в инфраструктуру и обеспечивает более тщательный контроль над распределением работы, чем это возможно с помощью сервиса Batch.
Использование сочетания технологий
Варианты, которые вы рассматриваете в этом модуле, не являются взаимоисключающими. Вы можете использовать виртуальные машины серии H, которые вы рассмотрели в последнем уроке, как возможные узлы Azure в конфигурации HPC. Хотя вы сосредоточены на вариантах гибридного использования, чтобы подчеркнуть различия с пакетной обработкой, программное обеспечение HPC Pack является гибким. Он позволяет выполнять как локальные развертывания, так и исключительно облачные развертывания. Эта гибкость полезна, если требуется более детализированный контроль, чем тот, который предлагает пакетная обработка.
Развертывание и управление системами HPC
Оркестрация систем HPC
Одним из ключевых понятий облачных вычислений является координация и автоматизация. Он относится к надзору за развертыванием, выполнением и мониторингом всех компонентов приложения в кластере.
Кроме того, оркестратор может выполнять другие задачи, такие как восстановление (управление ошибками), масштабирование и ведение журнала. Оркестраторы, такие как известные Kubernetes или Mesos, могут получить доступ к облачным ресурсам кластера напрямую путем виртуализации.
Развертывание систем HPC
Развертывания HPC в Azure могут отличаться в зависимости от потребностей рабочей нагрузки и бюджета. В любом развертывании есть некоторые стандартные компоненты, в том числе:
- Azure Resource Manager: позволяет развертывать приложения в кластерах с помощью файлов скриптов или шаблонов.
- головной узел HPC: Обеспечивает возможность планирования заданий и распределения рабочих нагрузок на рабочие узлы. Это виртуальная машина, которая используется для управления кластерами HPC.
- виртуальная сеть: позволяет создавать изолированную сеть кластеров и хранилища через безопасные подключения с помощью VPN ExpressRoute или IPsec. Вы можете интегрировать установленные DNS-серверы и IP-адреса в сеть и детализировать трафик между подсетями.
- Масштабируемые наборы виртуальных машин: позволяют развертывать виртуальные машины в кластерах и включают функции автомасштабирования, развертывания в нескольких зонах и балансировки нагрузки. Масштабируемые наборы можно использовать для запуска нескольких баз данных, включая MongoDB, Cassandra и Hadoop.
- хранилище: включает подключение постоянных кластеров хранения в виде блоба, дисков, файлов, гибридного хранилища или хранилища озера данных.
Управление развертываниями Azure HPC
Azure предлагает несколько собственных служб, которые помогут вам управлять развертываниями HPC. Эти средства обеспечивают гибкость управления и помогают планировать рабочие нагрузки в Azure и гибридных ресурсах.
- пакет Microsoft HPC: набор служебных программ, позволяющий настраивать кластеры виртуальных машин, отслеживать операции и планировать рабочие нагрузки. Пакет HPC включает функции, помогающие перенести локальные рабочие нагрузки или продолжить работу с гибридным развертыванием. Программа не подготавливает виртуальные машины или сетевую инфраструктуру для вас или управляет ими.
- Azure CycleCloud: интерфейс для планировщика на ваш выбор. Azure CycleCloud можно использовать с различными собственными и сторонними вариантами, включая пакет HPC, подсистему Grid Engine, Slurm и Симфонию. CycleCloud позволяет управлять рабочими нагрузками, определять элементы управления доступом с помощью Active Directory и настраивать политики кластера.
- Azure Batch: управляемый инструмент, который можно использовать для автомасштабирования развертываний и задания политик для планирования заданий. Пакетная служба Azure обрабатывает подготовку, назначение, время выполнения и мониторинг рабочих нагрузок. Чтобы воспользоваться этим, достаточно загрузить рабочие задания и настроить пул виртуальных машин.
Рабочие нагрузки Azure HPC предлагают машинное обучение, визуализацию и отрисовку, все из которых укрепляют приложения в полупроводниковой отрасли. Она позволяет бесшовную и надежную облачную интеграцию рабочих нагрузок в нефтегазовой отрасли, а также облачное геномное секвенирование и дизайн полупроводников.
Рекомендации по развертыванию Azure HPC
Следующие рекомендации помогут вам добиться ожидаемой производительности и ценности.
распространение развертываний между облачными службами: распространение больших развертываний между облачными службами может помочь избежать ограничений, созданных перегрузкой или использованием одной службы. Разделив развертывание на небольшие сегменты, вы можете:
- Остановите экземпляры в режиме простоя после завершения задания, не прерывая другие процессы.
- Гибкий запуск и остановка кластеров узлов
- Более легко найти доступные узлы в кластерах
- Использование нескольких центров обработки данных для обеспечения аварийного восстановления
использовать несколько учетных записей хранения Azure для развертываний узлов: Аналогично распространению развертываний между службами, рекомендуется подключить несколько учетных записей хранения к каждому развертыванию. Это может обеспечить лучшую производительность для крупных развертываний, приложений, ограниченных операциями ввода и вывода, и пользовательскими приложениями. При настройке учетных записей хранения следует иметь одну учетную запись для подготовки узлов и другую для перемещения данных заданий и задач, чтобы обеспечить согласованность и низкую задержку.
Увеличьте количество экземпляров прокси-узлов, чтобы соответствовать размеру развертывания: Прокси-узлы обеспечивают обмен данными между головными узлами, с которыми вы работаете в локальной среде, и рабочими узлами Azure. Эти узлы присоединяются автоматически при развертывании рабочих процессов в Azure. Если вы выполняете большие задания, которые соответствуют или превышают ресурсы, предоставляемые прокси-узлами, рассмотрите возможность увеличения числа выполняемых заданий. Увеличение становится особенно важным по мере того, как ваше развертывание растет.
Подключитесь к головному узлу с помощью клиентских утилит HPC:
Клиентские служебные программы пакета HPC — это предпочтительный способ подключения к головному узлу, особенно при выполнении больших заданий. Эти служебные программы можно установить на рабочих станциях пользователей и удаленно получить доступ к головному узлу, а не использовать службы удаленных рабочих столов (RDS). Эти служебные программы особенно полезны, если многие пользователи подключаются одновременно.
Планирование задач
Другой предлагаемой службой HPC является планирование задач. Планировщик в приложении можно использовать для отправки работы, что позволяет эффективно выполнять пакетные задания. Основные цели планировщика могут быть широко классифицированы следующим образом:
- Свести к минимуму время между отправкой задания и завершением задания. Задание не должно оставаться в очереди в течение длительного периода времени.
- Оптимизация использования ЦП. Особенно меньше времени простоя ЦП.
- Максимизация пропускной способности заданий, масштабирование выполнения заданий за единицу времени.
Сведения о планировании задач
Пользователи передают неинтерактивные пакетные задания планировщику. Планировщик хранит пакетные задания, оценивает требования к ресурсам и приоритеты и распределяет задания в подходящие вычислительные узлы. Они составляют большую часть кластеров HPC (около 98%), будучи самыми энергоемкими.
В отличие от узлов входа и их интерактивного использования вычислительные узлы не доступны напрямую через SSH. Планировщик на узле входа выступает в качестве интерфейса между вычислительным узлом и пользователем. Пользователь должен указать приложение в скрипте задания с учетом временных и ресурсных ограничений памяти.
Скрипт задания, отправленный с помощью планировщика, добавляет задание в очередь заданий. В зависимости от доступных ресурсов, необходимых для задания, планировщик решает, когда задание покидает очередь и на каких узлах бэкенда (или их частях) выполняется.
Пользователь должен убедиться, что запрошенные ресурсы находятся в пределах системных ограничений. Например:
- Планировщик завершает задание после истечения выделенного времени, даже в том случае, если задание требует больше времени.
- Задание зависает в очереди навсегда, если задание требует больше памяти, чем доступно в системе.
Иллюстрация
Предположим, что используемая пакетная система состоит из шести узлов, планировщик использует ИТ для размещения девяти заданий в очереди на доступные узлы. Цель состоит в том, чтобы исключить израсходованные ресурсы, показанные на следующей схеме, как свободные области, показывающие узлы без выполнения заданий на них.
Таким образом, задания могут не распределяться между узлами в том же порядке, в котором они впервые попали в очередь. Время и количество узлов, необходимых для выполнения задачи, определяет пространство, которое занимает задание. Планировщик выполняет многомерную циклическую роль, обеспечивая равномерное заполнение узлов кластера за счет балансировки требований к ресурсам всех заданий с доступными ресурсами в кластере.
алгоритмы планирования
Существует две основные стратегии, которые планировщики могут использовать для определения следующего задания. Современные планировщики не придерживаться строго одного из этих алгоритмов, а вместо этого используют сочетание двух. Кроме того, есть много дополнительных аспектов, которые планировщик должен учитывать, например текущую системную нагрузку.
В порядке живой очереди задания выполняются в том порядке, в котором они поступают в очередь. Преимущество заключается в том, что каждое задание обязательно выполняется. Однако небольшой набор заданий может ожидать неоправданно длительное время по сравнению с фактическим временем выполнения.
Сначала выполнение самых коротких задач на основе времени выполнения, объявленного в скрипте задания, планировщик оценивает время выполнения задания. Задания ранжируются в порядке возрастания времени выполнения. Хотя короткие задания начнутся после небольшого времени ожидания, длительные задания (или, по крайней мере, таковыми объявленные) могут вообще не начаться.
Резервное заполнение: Планировщик поддерживает концепцию First Come, First Serve без предотвращения выполнения длительных заданий. Планировщик запускает задание только в том случае, если первое задание в очереди можно выполнить. В противном случае планировщик проходит по остальной части очереди, чтобы проверить, можно ли выполнить другое задание, не увеличивая время ожидания первого задания в очереди. Если он находит такое задание, планировщик запускает это задание. Небольшие задания обычно сталкиваются с коротким временем ожидания в очереди.
Управление рабочими процессами
параллельная обработка задач & автоматизация
Повторяющиеся операции, такие как использование инструментов и выполнение последовательности задач программного обеспечения, можно упорядочить в конвейер. Автоматизация может повысить эффективность использования программного обеспечения и инструментов. Он создает эффективность, делая задачу быстрее и уменьшая нагрузку на работника знаний для его управления.
Автоматизация может снизить частоту ошибок процесса, устраняя дисперсию в том, как она выполняется. И конвейерная обработка и автоматизация задачи могут открыть дверь для дальнейших инноваций процесса, таких как параллелизация и развертывание облака.
средства для управления рабочими процессами
Использование пакетной службы Azure
Используйте пакетную службу Azure для эффективного выполнения крупномасштабных параллельных и высокопроизводительных вычислений (HPC) пакетных заданий в Azure. Пакетная служба Azure создает пул вычислительных узлов (виртуальных машин), устанавливает приложения, которые вы хотите запустить, и планирует выполнение заданий на узлах. Нет необходимости устанавливать, управлять или масштабировать программное обеспечение для планирования кластеров или задач. Вместо этого вы используете API и средства пакетной службы, скрипты командной строки или портал Azure для настройки, управления и мониторинга заданий.
Подробную информацию о Azure Batch, включая дополнительные возможности и принцип работы, смотрите в разделе Azure Batch.
Использование Azure CycleCloud
Azure CycleCloud — это удобное для бизнеса средство для оркестрации сред высокопроизводительных вычислений (HPC) и управления ими в Azure. С помощью CycleCloud пользователи могут планировать инфраструктуру для систем HPC, развертывать знакомые планировщики HPC и автоматически масштабировать инфраструктуру для эффективного выполнения заданий в любом масштабе. С помощью CycleCloud пользователи могут создавать различные типы файловых систем и подключать их к узлам вычислительного кластера для поддержки рабочих нагрузок HPC.
Дополнительные сведения о Azure CycleCloud см. в Azure CycleCloud.