Пакетная служба 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.
  • Двоичная совместимость между различными типами параметров взаимодействия.

Проверка знаний

1.

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

2.

Вы проанализировали проблему и обнаружили, что она содержит 1000 отдельных подзадач. Чтобы решить эту проблему, руководитель соглашается выделить бюджет на 20 узлов виртуальных машин для запуска в службе Azure Batch. По сравнению с запуском на одном узле виртуальной машины с одинаковым размером, примерно насколько быстрее вы ожидаете, что решение проблемы будет?