Баннер
29.02.2012 20:25

Научные облака в рублях

Автор  Максим Кривов
Оценить
(1 vote)

Облачные вычисления являются самой настоящей, не побоимся этого слова, инновационной технологией. Возможности, ими предоставляемые, действительно колоссальны: всего несколько кликов – и вам выделяются практически неограниченные вычислительные ресурсы. Поэтому вполне логично, что этой теме посвящают целые конференции, а также предсказывают облачную революцию, которая уже наступает. Ну, или вот-вот начнет наступать. Но мало кто понимает, как же именно облака работают. И еще меньше тех, кто может вспомнить пару-тройку историй их успешного применения в крупных HPC-проектах.

Однако подобные истории успеха имеются, а в использовании облаков нет ничего страшного и сложного. Одним из примеров, которому и посвящена эта статья, являются сдаваемые в аренду облака от компании Amazon, получившие известность как Amazon EC2. В данном конкретном случае под облаком понимается небольшой «кусочек» от 354-терафлопсного кластера из 1064 узлов, прочно занявшего 42-е место в ноябрьском списке Top500. А также дополнительная программная надстройка, позволяющая оперировать «кусочком» этого суперкомпьютера как вполне самостоятельным мини-кластером. Ну, или не совсем «мини» – все зависит от доступных средств.

Виды облаков

Если обычные облака делятся на кучевые, слоистые и перистые, то вычислительные облака классифицируются по своей специализации. В Amazon для этого применяют две ортогональные метрики – комплектация узла и схема его использования. С первой всё понятно: чем меньше требуется отдельных ресурсов облака (таких как ядра процессора, объем дисковой и оперативной памяти, пропускная способность сети), тем меньше и цена. Поэтому если решается вполне конкретная задача, то можно выбрать специализированные узлы и подобрать оптимальную конфигурацию кластера, тем самым прилично сэкономив на аренде.

На момент написания статьи в Amazon предоставлялись 12 типов узлов, среди которых есть оптимизированные как для выполнения web-приложений и работы с базами данных, так и для проведения «серьезных» вычислений. В последнем случае можно арендовать узлы с двумя-, четырех- или восьмиядерными процессорами Intel Xeon и оснащенные 23 или 60 гигабайтами оперативной памяти. А при желании все это можно также снабдить ускорителями NVIDIA Tesla M2050. Понятное дело, что подобные узлы легко объединяются в кластер с нужной операционной системой, поэтому для любой задачи всегда можно достать требуемые вычислительные ресурсы.

Другой путь уменьшения стоимости вычислений – это выбор подходящей стратегии использования ресурсов. Самым дорогим является аренда целевого облака на фиксированный период времени (например, несколько часов или дней). Понятно, что этот вариант и самый удобный – вы платите только за то время, которое требуется для работы вашей программы, а сами вычисления начинаются сразу же после оплаты. Однако если есть желание (или жизненная необходимость) понизить цену, то можно взять облако в долгосрочную аренду на один или три года, тем самым в разы уменьшив стоимость одного часа вычислений. Более того, при долгосрочной аренде дополнительно можно отказаться от эксклюзивности владения облаком (т. е. пускать на него других пользователей) и благодаря этому не платить за время его простоя.

Еще более бюджетным вариантом является аренда облака по спотовым ценам. Очевидно, что обеспечить 100%-ную загрузку всего кластера Amazon просто не в состоянии, и ряд узлов всегда будет простаивать. Поэтому на подобные узлы устраивается своеобразный аукцион, где сами пользователи назначают цену одного часа аренды. А далее победителю выделяются простаивающие ресурсы по его цене. Правда, только до тех пор, пока кто-либо не возьмет их в краткосрочную/долгосрочную аренду или не перебьет ставку. С точки зрения пользователя этот процесс выглядит следующим образом – шлется запрос на получение, например, 16 четырехъядерных узлов по цене 0.5$ за час и указывается программа, которая должна быть исполнена при их получении. И, как только эта ставка победит, программа тут же будет запущена.

Облачные особенности

Итак, облачный кластер закуплен и настроен, настало время вычислений. Однако и здесь скрыт ряд «подводных камней». Основной проблемой является виртуальность кластера – если на обычном суперкомпьютере можно запустить программу и «забыть» про нее, то на облачном это делать опасно. Как только закончится время аренды или же спотовая цена пойдет вверх и вашу ставку перебьют, то кластер будет остановлен. И, как следствие, результаты вычислений могут оказаться безвозвратно утерянными. Еще одним «камушком» является стоимость трафика. В то время как на обычном кластере объем входных обрабатываемых данных практически не ограничен, в облаке стоимость каждого загруженного или скаченного гигабайта информации стоит порядка 10 центов. И поэтому при переносе в облако, например, программы для обработки сигналов с каких-либо «общительных» датчиков стоимость пересылки данных может оказаться соизмеримой со стоимостью аренды самого облака, а то и больше.

Для решения подобных проблем компания Amazon «в довесок» предлагает ряд своих технологий. Самой полезной является подсистема для хранения данных на внешних устройствах, которые остаются доступными после «смерти» облачного кластера. Эта технология получила имя Amazon Elastic Block Store – за символическую плату в 10 центов в месяц за гигабайт дискового пространства пользователь получает одно или несколько хранилищ произвольного размера, которые можно использовать и как локальные накопители, подсоединенные к узлам кластера, и для создания образов виртуальных машин, запущенных на физических узлах. Другими словами, если облачный кластер вот-вот будет остановлен, то можно «руками» реализовать в программе функциональность по сохранению промежуточных результатов на диск, а можно просто снять «слепок» всего кластера, а потом при необходимости его восстановить.

Еще одним интересным предложением является технология автомасштабирования кластера, известная под именем Amazon Auto Scaling. И хотя она ориентирована в первую очередь на web-приложения, в научных вычислениях ей тоже можно найти применение. Суть технологии заключается в динамическом отключении ряда узлов при их простаивании и подключении новых при высокой загрузке. Поэтому, например, если в программе есть последовательные участки (или параллельные, но использующие небольшое количество узлов), то предлагаемая технология будет незаметно отключать отдельные простаивающие узлы, тем самым снижая суммарные расходы на аренду. Конечно, подобный сценарий потребует дополнительных усилий на внесение соответствующих изменений в саму программу, однако количество сэкономленных средств также может оказаться внушительным.

Продолжение следует

Так как облачная революция вот-вот наступит, то в одном из следующих номеров будет проведено полноценное тестирование облачного кластера от Amazon на расчетной задаче.

Причем тестирование именно с экономической точки зрения: что дешевле – арендовать много слабых или несколько мощных узлов? Перенести вычисления на GPU или потратиться на оптимизацию CPU-версии программы? А может, проще купить свой «реальный» кластер? Ответы на эти вопросы оказались не совсем очевидны, поэтому продолжение следует...

Облака ближе, чем кажутся

Процесс аренды облачного кластера является более простым, чем кажется на первый взгляд. Для этого достаточно перейти на сайт http://aws.amazon.com, где приведены не только справочные материалы, но и 10-минутное видео, иллюстрирующее создание и настройку полноценного кластера из 8 узлов. Более того, для пробы бесплатно предоставляются 750 «узло-часов» и 10 Гигабайт дискового пространства. Для оценки производительности процессоров в Amazon используют собственную метрику ECU (Elastic Compute Unit). Один ECU соответствует производительности процессора Intel Xeon 2007 года, работающего на частоте 1.0–1.2 GHz.

Добавить комментарий


Защитный код
Обновить

Новости

Календарь материалов

« Мая 2013 »
Пн Вт Ср Чт Пт Сб Вс
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31