Разработка модели среды распределенных вычислений Evergrid для сравнения алгоритмов управления потоками задач и данных (1187422), страница 2
Текст из файла (страница 2)
Ведь, чтобывоспроизвести эксперимент, надо воссоздать инфраструктуру, в которой он был проведен, и уже на этом этапе порой начинаются проблемы. Не всегда инфраструктурадостаточно подробно описана в самой работе. Не всегда с первого раза получаетсязаставить работать описанную инфраструктуру. Не всегда ее можно воспроизвестина локальной машине с используемой исследователем операционной системой. Этотсписок возможных технических проблем можно продолжить на несколько страниц.И то он будет неполным.
И, когда исследователь, желающий повторить оригинальный эксперимент, но с другими данными, сталкивается с такой массой проблем - онрискует потратить много времени на несущественные для его работы вещи.Также важен открытый доступ к результатам эксперимента. На данный моментс этим нет особых проблем, но в контексте Evergrid стоит об этом упомянуть: результаты должны быть открыты и доступны.
Думаю, можно даже не объяснять ценностьэтого фактора.Помимо воспроизводимости эксперимента важной является и возможность егомодификации. Я говорю о случаях, когда описан сам алгоритм, а его реализациялибо не является частью работы, либо сложна в использовании. Evergrid долженучитывать этот фактор и делать модификацию эксперимента максимально доступной. Это означает, что мы должны ввести некоторые стандарты оформления дляреализации. На самом деле это вытекает не только из идеологических соображений,но и из технических (сложно сделать систему, которая будет запускать что угоднои как угодно). Более того, введение подобных требований в первую очередь облегчит воспроизводимость.
Итого: Evergrid должен задавать некоторый формат (илиформаты) оформления программных реализаций ради удобства модификации и воспроизводимости.Итак, Evergrid, очевидно, нацелен на большое количество пользователей. Этоозначает, что нужно много вычислительных мощностей для обеспечения адекватного выполнения задач. Часть мощностей можно получить бесплатно, но их почтинаверняка не хватит. Соответсвенно, в системе будут присутствовать те мощности,за которые придется платить. И здесь есть два подхода: покупать эти мощности самим или быть посредником.
Второй подход интереснее и более чем имеет право нажизнь в виду того факта, что зачастую кластеры различного размера порой простопростаивают. Если мы дадим возможность продавать эти мощности, то выгода будет8всем сторонам. Пользователям - т. к. будет ценовое разнообразие, команде Evergrid- т. к. это неплохая бизнес-модель, поставщикам мощностей - получить выгоду отпростаивающих кластеров и просто сделать благое дело.
Именно реализация этойсхемы является одной из ключевых особенностей Evergrid как проекта.Итак, мы развернуто сформулировали основные идеологические предпосылкидля создания Evergrid. Теперь мы можем их выразить в виде лаконичного и короткого списка. Evergrid - это сервис:∙ для выполнения экспериментов над данными∙ для публикации результатов этих экспериментов∙ с возможностью удобно модифицировать исходный эксперимент как в планеалгоритмов, так и в плане данных∙ с возможностью опубликовать результат выполнения модификации∙ являющийся посредником между поставщиками вычислительных мощностей иконечными пользователями∙ задающий некий формат или форматы оформления программной части экспериментов ради удобства воспроизведения и модификации (в том числе и налокальных машинах пользователей)Опираясь на этот список, мы теперь можем сформулировать основные сценарии использования системы.
Но полноценные сценарии использования системы ввиде диаграмм в данной работе будет делать опрометчиво. Во-первых, это работадля UX-специалиста, коим я сейчас не являюсь. Во-вторых, в рамках данной работы это неактуально. Важно выявить список возможностей системы, а архитектурупроектировать исходя из того, чтобы эти возможности в ее рамках эффективно реализовывались. Вот этот список, разбитый по группам пользователей:∙ Исследователи:– Возможность загружать датасеты в систему– Возможность загружать процессоры (программные реализации экспериментов) в систему– Возможность запустить определенный процессор на определенном датасете9– Возможность задать ограничения на выполнение (уложиться в указаннуюстоимость, предпочитать быстрое выполнение, несмотря на стоимость, начать выполнение строго до определенного времени и пр.)– Возможность получить результат выполнения– Возможность опубликовать связку датасет+процессор+результат– Возможность "склонировать"опубликованный эксперимент и вносить изменения∙ Гости:– Возможность просматривать опубликованные эксперименты– Возможность скачивать результаты, датасеты и процессоры∙ Поставщики мощностей:– Возможность видеть статистику использования ресурсов– Возможность модифицировать параметры использования ресурсов– Возможность предоставлять новые ресурсы, закрывать доступ к существующим.Исследователи - это, очевидно, те, кому необходимо проводить экспериментынад данными.
Гости - незарегистрированные пользователи. Их функционал доступенвсем. Поставщики мощностей - понятно из наименования.Это относительно грубый список, но достаточный для поставленных задач.Отдельно упомяну про реализованный симулятор: полноценно говорить о егоактуальности, новизне и практической значимости без описания архитектуры не получится, но, если забежать вперед и попробовать сформулировать краткий список,то он будет таким:∙ нет симуляторов на go, и в то же время go популярен для микровервисов∙ популярные симуляторы (simgrid, gridsim, alea 2, netlogo) не используют языкис акторной или CSP-моделью∙ популярные симуляторы не поддерживают необходимую архитектуру без существенных модификаций10∙ модификация существующего решения не менее сложна, чем написание своего∙ изоморфность (использование одного и того же кода как для симуляции, так идля реального окружения) дает существенные преимущества∙ симуляция архитектуры на раннем этапе может заблаговременно выявить еенедостатки∙ расширяемость и модифицируемость созданного симулятора∙ готовая отправная точка для создания остальных компонентов системы11Глава 2Постановка задачПусть список возможностей из предыдущей главы получился весьма лаконичным, его реализация - это огромная работа.
Напомню, что данный диплом представляет собой лишь один из самых первых этапов - это имеет прямое влияние на тезадачи, которые непосредственно решались, и на то, как они решались.Краткий список того, над чем велась работа, выглядит так:∙ Четко сформулировать базовые требования к системе Evergrid∙ Разработать описание архитектуры, удовлетворяющее этим требованиям∙ Для данной архитектуры реализовать среду моделирования для исследованияэффективности планировщиков выполнения задач и распределения данныхБазовые требования были описаны и обоснованы в предыдущей главе.2.1. Проектирование архитектурыНаличие описания архитектуры является необходимым условием для созданиясреды моделирования, которая, в свою очередь, является темой диплома.
Мало того, это описание с одной стороны должно быть достаточно подробным, с другой максимально общим, чтобы не "замораживать"спецификацию тех аспектов системы, детали реализации которых несущественны для данной работы. Тем не менее,даже для таких аспектов будет не лишним дать некоторую обоснованную рекомендацию - она может послужить удачной точкой для принятия финального решения вбудущем.Итого, в плане проектирования архитектуры надо решить следующие задачи:∙ из каких компонентов состоит система∙ как эти компоненты распределены по физическим машинам∙ как компоненты взаимодействуют друг с другом∙ какие технологии подойдут лучше всего для их реализации122.2.
Реализация симулятораВторая и основная задача диплома - это реализация симулятора. Предметом симуляции является планировщик - та часть системы, которая управляет размещениемданных и выполнением задач на подконтрольных ресурсах. Перед непосредственнореализацией симулятора надо ответить на следующие вопросы:∙ каким требованиям должен отвечать симулятор∙ есть ли готовые решения либо решения, которые удобны для модификацииПричем важно помнить о том, что какие-то аспекты архитектуры могут изменяться, и нужно будет изменять симулятор в соответствии с ними. Подобные корректировки симулятора не должны быть неоправданно сложными.13Глава 3Спроектированная архитектура3.1.
Основные ограниченияПроектирование хорошей архитектуры основывается на:∙ достаточно подробной постановке задачи∙ выявлении ограничений∙ использовании актуальных технологий как составных блоков∙ максимальной простоте реализации не в ущерб необходимому уровню качестваПостановка задачи у нас есть, последние два пункта постараемся соблюдать.Осталось понять, какие у нас ограничения. Под ограничениями понимаются технические аспекты, которые напрямую следуют из постановки задачи и ограничивают насв свободе выбора тех или иных технологий, тех или иных подходов. В этом разделея приведу те ограничения, которые считаются неочевидными или заслуживающимиотдельного упоминания.Первое из них - связанное с безопасностью.
Мы используем вычислительныересурсы, предоставляемые третьими лицами. И они имеют неограниченный (root)доступ к ним. Поскольку процесс предоставления этих ресурсов подразумеваетсядостаточно свободным, будет правильно представить злоумышленника на месте поставщика мощностей. Какие потенциальные угрозы он может предоставлять?∙ захват не принадлежащих ему ресурсов∙ нарушение работы кластера (например, вмешательство в работу планировщика)∙ нарушение корректной работы предоставленного вычислительного ресурса (фальсификация результатов, намеренное замедление скорости вычислений и т.
п.)Первые две угрозы нивелируются достаточно просто: на арендуемых ресурсах недолжен выполняться код, связанный с управлением кластером. Только выполнениезадач и отправка результатов.14Третья - наиболее сложная. Но риски можно свести к минимуму, если вообще незапускать на арендуемых ресурсах компоненты системы. Естественной реализациейэтого принципа является удаленное управление по SSH.