Пакетная служба Azure
Высокопроизводительные вычисления (HPC) — это практика использования значительной вычислительной мощности, которая обеспечивает высокую производительность по сравнению с тем, что можно получить при использовании ноутбука и (или) рабочей станции. Она решает большие проблемы, которые должны выполняться одновременно на нескольких ядрах.
Это делается путем разделения проблемы на небольшие вычисляемые единицы и распределение этих единиц в распределенную систему. Он постоянно взаимодействует между ними, чтобы достичь окончательного решения быстрее, чем выполнение одних и того же вычисления на меньшем количестве ядер.
В Azure доступно несколько вариантов пакетной обработки и HPC. Если вы поговорите с экспертом По Azure, вам рекомендуется сосредоточиться на трех вариантах: пакетной службе Azure, Azure CycleCloud и пакете Microsoft HPC. Следующие разделы в этом модуле сосредоточены на каждом варианте. Важно отметить, что эти варианты не являются взаимоисключающими. Они опираются друг на друга и могут рассматриваться как различные инструменты на панели инструментов.
Здесь вы узнаете о высокопроизводительных вычислениях в целом и узнайте о Azure HPC.
Что такое HPC в Azure?
Существует множество различных отраслей, требующих мощных вычислительных ресурсов для специализированных задач. Например:
- В генетических науках секвенирование гена.
- В разведке нефти и газа моделирование водохранилища.
- В сфере финансов моделирование рынка.
- В инженерии моделирование физической системы.
- В метеорологии моделирование погоды.
Для этих задач требуются процессоры, которые могут быстро выполнять инструкции. Приложения HPC в Azure могут масштабироваться до тысяч вычислительных ядер, расширять локальные большие вычислительные ресурсы или запускаться в качестве 100% облачного собственного решения. Это решение HPC, включая головной узел, вычислительные узлы и узлы хранения, выполняется в Azure без аппаратной инфраструктуры для обслуживания. Это решение основано на управляемых Azure службах: масштабируемые наборы виртуальных машин, виртуальные сети и учетные записи хранения.
Эти службы выполняются в высокодоступной среде с установленными исправлениями и поддержкой, что позволяет сосредоточиться на решении вместо среды их выполнения. Система Azure HPC также имеет преимущество, которое можно динамически добавлять ресурсы по мере их необходимости и удалять их при падении спроса.
Что такое параллельные вычисления в распределенных системах
Параллельные вычисления — это одновременное использование нескольких вычислительных ресурсов для решения вычислительной проблемы:
- Проблема разбивается на дискретные части, которые можно решить параллельно.
- Каждая часть далее разбивается на ряд инструкций.
- Инструкции из каждой части выполняются одновременно на разных процессорах.
- Используется общий механизм контроля и координации.
Различные этапы параллелизма
Существуют различные способы классификации параллельных компьютеров и Таксономия Флинн является одним из наиболее распространенных способов сделать это. Он различает архитектуры компьютеров с несколькими процессорами в соответствии с способами их классификации по двум независимым измерениям потока инструкций и потока данных. Каждое из этих измерений может находиться только в одном из двух возможных состояний: единственное или множественное.
На этой схеме показано клиентское приложение или размещенная служба, взаимодействующая с пакетной службой для отправки входных данных, создания заданий, мониторинга задач и скачивания выходных данных.
Более подробно рассмотрим четыре различные классификации.
SISD | SIMD | MISD | MIMD |
---|---|---|---|
— последовательный (непараллель) компьютер — единственный поток инструкций: за один тактовый цикл ЦП выполняется только один поток инструкций. — Один поток данных: в качестве входных данных используется только один поток данных во время любого цикла часов. — Самый старый тип компьютера. Примеры: 1. Мейнфреймы раннего поколения 2. Миникомпьютеры, рабочие станции 3. Компьютеры с одним процессором |
— параллельный компьютер — одна инструкция: все единицы обработки выполняют одну и ту же инструкцию в любом заданном цикле часов. — Несколько данных: каждая единица обработки может работать с другим элементом данных. - Лучше всего подходит для специализированных проблем, характеризуемых высокой степенью регулярности, например обработки графики и изображения. — Большинство современных компьютеров с графическими процессорами (GPU) используют инструкции и единицы выполнения SIMD. Примеры: 1. Массивы процессоров: мышление компьютеров CM-2, MasPar MP-1 & MP-2, ILLIAC IV 2. Векторные конвейеры: IBM 9000, Cray X-MP, Y-MP & C90, Fujitsu VP, NEC SX-2, Fuji S820, ETA10 |
— параллельный компьютер — Несколько инструкций. Каждая единица обработки работает независимо с помощью отдельных потоков инструкций. — Отдельные данные: один поток данных передается в несколько единиц обработки. — Немногие фактические примеры этого класса параллельного компьютера когда-либо существовали. Примеры: 1. Несколько фильтров частот, работающих в одном потоке сигналов 2. Несколько алгоритмов шифрования, пытающихся взломать одно закодированное сообщение |
— параллельный компьютер — Несколько инструкций. Каждый процессор может выполнять другой поток инструкций. — Несколько данных: каждый процессор может работать с другим потоком данных. - В настоящее время наиболее распространенный тип параллельного компьютера - большинство современных суперкомпьютеров попадают в эту категорию. Примеры : 1. Большинство текущих суперкомпьютеров 2. Сетевые параллельные кластеры компьютеров и сетки 3. Многопроцессорные компьютеры SMP 4. Многоядерные компьютеры |
Различные типы заданий HPC: массово-параллельные и тесно связанные
Параллельные задания имеют вычислительные проблемы, разделенные на небольшие, простые и независимые задачи, которые могут выполняться одновременно, часто с небольшим или без обмена данными между ними.
Распространенные варианты использования параллельных заданий включают моделирование рисков, молекулярное моделирование, контекстное поиск и моделирование логистики.
Тесно связанные задания имеют большую общую рабочую нагрузку, которая разбивается на небольшие задачи, которые непрерывно взаимодействуют. Различные узлы в кластере взаимодействуют друг с другом по мере их обработки.
Распространенные варианты использования для тесно связанных заданий:
- вычислительная гидродинамика
- Моделирование прогноза погоды
- моделирование материалов
- эмуляция автомобильных столкновений
- геопространственные имитации
- управление трафиком
Что такое интерфейс передачи сообщений (MPI)
MPI — это система, которая направлена на обеспечение переносимого и эффективного стандарта передачи сообщений. Он высокопроизводительный, переносимый и масштабируемый, и был разработан для работы с сетями различных параллельных компьютеров.
MPI помог в работе сетевых и параллельных вычислений на промышленном и глобальном масштабе и помог улучшить работу крупномасштабных параллельных компьютерных приложений.
Преимущества Microsoft MPI:
- Простота переноса существующего кода, использующего MPICH.
- Безопасность на основе доменных служб Active Directory.
- Высокая производительность операционной системы Windows.
- Двоичная совместимость между различными типами параметров взаимодействия.