Общая информация
Вопрос. Что такое AWS Batch?
AWS Batch – это набор функций пакетного управления, позволяющий разработчикам, ученым и инженерам легко и эффективно выполнять сотни тысяч заданий пакетных вычислений на AWS. Сервис AWS Batch динамически выделяет оптимальные объемы и типы вычислительных ресурсов (например, оптимизированных для работы с ЦПУ или памятью) на основании объемов и особых требований к ресурсам отправленных в сервис заданий пакетной обработки. Благодаря сервису Пакет AWS не нужно устанавливать и обслуживать вычислительное ПО или кластеры серверов, что позволяет пользователю сосредоточиться на анализе результатов и решении проблем. Сервис Пакет AWS планирует, составляет расписание и выполняет ваши рабочие нагрузки для пакетных вычислений с помощью Amazon ECS, Amazon EKS и AWS Fargate с возможностью использования спотовых инстансов.
Вопрос. Что такое пакетные вычисления?
Пакетные вычисления – это исполнение серии программ (заданий) на одном или нескольких компьютерах без ручного вмешательства. Входные параметры предопределяются с помощью скриптов, аргументов командной строки, управляющих файлов или языка управления заданиями. Выполнение конкретного пакетного задания зависит от завершения предыдущих заданий или наличия соответствующих входных данных, поэтому особую важность приобретает соблюдение очередности и планирование графика выполнения множества заданий. Соответственно, выполнение пакетных заданий и интерактивная обработка несовместимы.
- Пакетные вычисления помогают сместить обработку заданий по времени, чтобы воспользоваться доступными ресурсами в большем объеме или по меньшей стоимости.
- Они позволяют избежать простоя вычислительных ресурсов и регулярного ручного вмешательства в процессы управления ими.
- Они позволяют повысить эффективность за счет более интенсивного использования вычислительных ресурсов.
- Они определяют приоритеты выполнения заданий, сопоставляют выделение ресурсов с бизнес-целями.
Когда задания следует запускать на EKS, Fargate, ECS?
Для чего нужен сервис AWS Batch?
Вопрос. Почему следует использовать AWS Batch?
AWS Batch обеспечивает выполнение заданий и управляет вычислительными ресурсами, позволяя пользователю сфокусироваться на разработке приложений или анализе результатов, а не тратить время на настройку инфраструктуры и управление ею. Когда требуется выполнить пакетные рабочие нагрузки или переместить их на платформу AWS, рекомендуется использовать сервис AWS Batch.
Вопрос. Для каких сценариев использования оптимизирован AWS Batch?
Сервис AWS Batch оптимизирован для пакетных вычислений и приложений, которые масштабируются в результате параллельного исполнения нескольких заданий. Показательные примеры пакетных вычислений – это глубокое обучение, анализ генома, моделирование финансовых рисков, моделирование по методу Монте-Карло, рендеринг анимации, перекодирование мультимедийных данных, обработка изображений и инженерное моделирование.
Возможности
Вопрос. Какие основные возможности предлагает сервис Пакет AWS?
Пакет AWS управляет средами вычислений и очередями заданий, позволяя легко выполнять тысячи заданий любого масштаба с помощью сервисов Amazon ECS, Amazon EKS и AWS Fargate с возможностью выбора спотовых ресурсов или ресурсов по требованию. Нужно лишь определить пакетные задания и отправить их в очередь. В ответ сервис AWS Batch выберет место исполнения заданий и запустит соответствующие ресурсы AWS при необходимости. AWS Batch тщательно отслеживает процесс выполнения заданий. Когда потребность в ресурсах отпадает, AWS Batch удаляет их. AWS Batch также предлагает возможность отправлять задания, являющиеся частью конвейера или рабочего процесса, позволяя по мере отправки заданий выразить все существующие взаимозависимости.
Вопрос. Какие типы пакетных заданий поддерживаются сервисом AWS Batch?
AWS Batch поддерживает любые задания, которые можно исполнять как контейнеры Docker. В соответствии с заданиями определяются требования к памяти и количеству виртуальных ЦПУ.
Вопрос. Что такое вычислительный ресурс?
Вычислительный ресурс AWS Batch – это инстанс EC2 или вычислительный ресурс AWS Fargate.
Вопрос. Что такое вычислительная среда?
Вычислительная среда AWS Batch – это набор вычислительных ресурсов, на которых исполняются задания. AWS Batch поддерживает два типа вычислительных сред: управляемые вычислительные среды, за выделение которых и последующее управление отвечает AWS, и неуправляемые вычислительные среды, за управление которыми отвечают клиенты. Неуправляемые вычислительные среды позволяют использовать специализированные ресурсы, например выделенные узлы, укрупненные конфигурации хранилищ и Amazon EFS.
Вопрос. Что такое определение задания?
Определение задания описывает исполняемое задание, параметры, переменные среды, требования к вычислениям и прочую информацию, используемую для оптимизации исполнения задания. Определения заданий указываются перед отправкой задания, их можно открыть для совместного использования.
Вопрос. Что такое агент Amazon ECS и как он используется сервисом AWS Batch?
AWS Batch использует сервис Amazon ECS для выполнения заданий из контейнеров и поэтому требует установки агента ECS на ресурсах вычислительных сред AWS Batch. В управляемых вычислительных средах агент ECS уже предустановлен.
Вопрос. Как AWS Batch упрощает использование спотовых инстансов?
Вычислительные среды AWS Batch могут состоять из спотовых инстансов EC2. При создании управляемой вычислительной среды просто укажите, что хотите использовать спотовые инстансы EC2, задайте цену, которую вы готовы заплатить, в виде процентной доли от цены по требованию, и AWS Batch выполнит всю остальную работу самостоятельно. В неуправляемых вычислительных средах также можно использовать спотовые инстансы, запускаемые пользователем, включая те, что запускаются в спотовых группах EC2.
Цены
Вопрос. Сколько стоит использование AWS Batch?
Дополнительная плата за AWS Batch отсутствует. Пользователь оплачивает только стоимость ресурсов AWS (например, инстансов EC2 или AWS Fargate), которые создаются для хранения и выполнения пакетных заданий.
Планирование инстансов с графическим процессором (GPU)
Вопрос. Можно ли использовать бизнес-акселераторы для AWS Batch?
Да, можно использовать Batch, чтобы указать количество и тип необходимых для выполнения ваших заданий бизнес-акселераторов, а также варианты виртуального ЦП и памяти. Все это можно сделать в графе определения задания, изменив входные переменные. AWS Batch масштабирует подходящие для ваших заданий инстансы с учетом необходимых бизнес-акселераторов. Затем они изолируются в соответствии с требованиями для каждого задания, так чтобы только соответствующие контейнеры могли получить к ним доступ.
Вопрос. Для чего необходимо использовать бизнес-акселераторы с AWS Batch?
Используя бизнес-акселераторы с AWS Batch, вы можете в динамическом режиме планировать и распределять задания с учетом всех требований. Batch гарантирует, что для каждого задания будет зарезервировано соответствующее количество бизнес-акселераторов. Batch позволяет при необходимости масштабировать инстансы в сторону увеличения для ускоренной работы EC2, а также масштабировать их в сторону уменьшения после завершения работы, чтобы вы могли спокойно сосредоточиться на своих приложениях. Batch имеет встроенную интеграцию со спотовыми инстансами EC2, что означает, что ускоренное выполнение заданий может обеспечить до 90 % экономии при использовании ускоренных инстансов.
Пример из API:
{
«свойства_контейнеров»: {
«виртуальные ЦПУ»: 1,
«изображение»: «nvidia/cuda: версия 9.0»,
«память»: 2048,
«ресурсные_требования»: [
{
«тип»: «графический процессор»,
«значение» : «1»
}
],
Вопрос. Можно ли изменить переменные бизнес-акселератора в определении задания при отправке задания?
При отправке задания вы можете изменить количество и тип бизнес-акселераторов. Вы также можете изменить виртуальные ЦПУ и требования к памяти.
Вопрос. Можно ли использовать ускоренные инстансы для заданий, не требующих акселераторов?
В нынешних условиях Batch по возможности не будет планировать задания, которые не требуют ускорения с помощью ускоренных инстансов. Это делается для того, чтобы избежать случаев, когда долгосрочные задания занимают ускоренные инстансы без использования бизнес-акселератора, что приводит к увеличению расходов. В редких случаях при спотовой цене и наличии ускоренных инстансов необходимого типа Batch может решить, что для выполнения ваших заданий наименее затратным будет применение ускоренного инстанса. При этом неважно, будет использоваться бизнес-акселератор или нет.
Если вы отправите задание в CE, для которого только Batch может запускать ускоренные инстансы, то он будет выполнять задания на указанных инстансах, независимо от необходимости использования бизнес-акселератора.
Вопрос. Как Batch использует ECS AMI, оптимизированный под графические процессоры?
С этого момента инстансы типа P будут запускаться по умолчанию вместе с ECS AMI, оптимизированным под графические процессоры. AMI содержит библиотеки и среды выполнения, необходимые для запуска приложений на базе графических процессоров. При создании CE вы всегда при необходимости сможете указать пользовательский AMI.
Начало работы
Вопрос. Как начать работу с сервисом?
Чтобы начать работу, ознакомьтесь с Руководством по началу работы в документации.
Вопрос. Какие ресурсы нужно выделить для начала работы?
Чтобы начать работу, запускать вычислительные ресурсы вручную не требуется. Веб-консоль AWS Batch поможет создать первую вычислительную среду и очередь заданий, в которую можно отправить свое первое задание. Ресурсы вычислительной среды будут масштабироваться соответствующим образом по мере увеличения или уменьшения количество заданий, готовых к исполнению.
Подробнее о том, когда рекомендуется использовать AWS Batch