22
Эффективное использование спотовых узлов Amazon EC 2 для параллельных научных вычислений Дмитрий Пушкарев [email protected] d.edu 22 Апреля 2013

Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

  • Upload
    ontico

  • View
    351

  • Download
    8

Embed Size (px)

Citation preview

Page 1: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Эффективное использование спотовых узлов Amazon EC2 для параллельных научных вычислений

Дмитрий Пушкарев[email protected]

22 Апреля 2013

Page 2: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

James Clark Center

Page 3: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)
Page 4: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Вычислительная инфраструктура• Продукт N1:

– 2000 CPU*часов вычислительного времени– 100 GB данных– 24 часа – время на выполнение– Непредсказуемая нагрузка

Page 5: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Вычислительная инфраструктура• 10 пользователей в день:

– 30TB/мес трафика– 1GBit uplink– 100TB fast NAS– 50 dual socket серверов– $400k in infrastructure cost

Page 6: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

AWS (S3 / EC2)

Page 7: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Simple Storage Service (S3)

Хранилище объектов

99.999999999% durability and 99.99% availability

Низкоуровневый REST API – buckets/objects/ACL

$100/TB/месяц

Name Server

Name Server

Name Server

Load Balancer

REST API S3

S3

S3

Page 8: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Файловая система поверх S3 Сложности:

- High Latency, high variability- Нет native поддержки структуры каталогов- Нет механизмов регуляции совместного доступа- Нет поддержки API блоковых устройств- Eventual Consistency

- Существующие решения т.к. Fuse/s3cmd работают нестабильно и медленно- Писать native s3 приложения достаточно трудоемко из-за REST API

Page 9: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

es3 (Extreme S3)Клиент для S3 с rsync-like интерфейсом.

Многопоточная загрузка файловОбработка медленных серверов S3Multipart upload APIGZIP сжатие на летуПроверка “eventual consistency” Интерфейс схожий с rsync

Page 10: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

• #!/bin/bash –e –o pipefail• es3 rm s3://moleculo/output/• es3 test s3://moleculo/input/.success• es3 sync s3://moleculo/input/ ./• run_analysis_pipeline.sh• es3 sync ./ s3://moleculo/output• es3 touch s3://moleculo/output/.success

Page 11: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)
Page 12: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Архитектура системы

Workflow manager

ES3

WWW

S3Uploader ES3

m2.xlarge

OMjobs

OM controller

c1.xlargeCc1.4.xlarge

Page 13: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)
Page 14: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Спотовые цены. Правила игры:

Amazon выставляет среднюю цену

Вы делаете ставку на набор узлов по определенным ценам

средняя цена < ставки : заявка выполняется и вы платите среднюю цену

средняя цена > ставки: узлы останавливаются без предупреждения.

Page 15: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Сложности со спотовыми ценами и решение• Сложно предсказать цену• Нет гарантий доступности• Узлы убиваются без предупреждения – часть кластера может неожиданно

исчезнуть

• Решение:– Использование различных типов узлов и выбор комбинации узлов в зависимости от спотовых

цен.– Разбивка задач таким образом чтобы они не занимали более 20 минут– Использование более одного регион

Page 16: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Overmind

Оптимальный набор узлов

M M M

R

Планировщик задач

Page 17: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Через 1:50 узлы остановлены

12 cc2.8xlarge узлов запущено

40x human genome in 768 CPU*hours24 node*hours24*$0.253 = $6.07 billed

• MapReduce задача запущена• Создано 573 map задач• Выбран (us-east-1d, сс2.8,$0.253/hr)• Оценка времени исполнения• Запущено 12 узлов cc2.8xlarge

Page 18: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Service Level Agreement (SLA)Правила для планирования задач:

Пример:

Продукт 1, требует 2000 CPU часов и должен посчитаться менее чем за сутки.

Блок задач X – относится к R&D, должен быть посчитан как можно быстрее Вне зависимости от спотовых цен.

Page 19: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Заключение• Посмотрели на структуру AWS/EC2/S3

• Пример построения масштабируемой системы, использующей S3 в качестве файлового хранилища

• Рассмотрели механизм работы спотовых узлов, ограничения связанные с ними и способы их обхода.

• Пример построения планировщика задач, использующего комбинацию спотовых узлов которая меняется во времени для решения задач за минимально возможную цену в рамках SLA для продукта.

Page 20: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

Спасибо!

MickeyDmitry

Tim

Jared

Alex

Maria

Page 21: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

There is one more thing…

Page 22: Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Moleculo Inc)

С чего начать• es3 (https://github.com/moleculo/extreme-s3)• MIT Starcluster / Amazon Elastic MapReduce• Chef/Puppet• Boto – S3/EC2/AWS python interface• http://aws.amazon.com/ec2/spot-and-science/

• Q? [email protected]