Разработка модели среды распределенных вычислений Evergrid для сравнения алгоритмов управления потоками задач и данных (1187422)
Текст из файла
Министерство образования и науки Российской ФедерацииМосковский физико-технический институт (государственный университет)Факультет управления и прикладной математикиКафедра информатикиДиссертация допущена к защитезав. кафедройПетров Игорь Борисович«»2016 г.ДИССЕРТАЦИЯна соискание ученой степениМАГИСТРАТема: Разработка модели среды распределенных вычисленийEvergrid для сравнения алгоритмов управления потокамизадач и данныхНаправление:03.04.01 – Прикладные математика и физикаМагистерская программа: 010956 – Математические и информационные технологииВыполнил студент гр.
073аКолеснев Роман ВладимировичНаучный руководитель,к. ф.-м. н., доцентУстюжанин Андрей ЕвгеньевичРецензент,к. ф. н., доцентРыков Владимир ВасильевичМосква – 20162ОглавлениеВведение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4Глава 1.О системе Evergrid . . . . . . . . . . . .
. . . . . . . . . . . . . . .6Глава 2.Постановка задач . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.1.Проектирование архитектуры . . . . . . . . . . . . . . . . . . . . . . . . 112.2.Реализация симулятора . . . . . . . . . . . . . . . . . . . . . . .
. . . . 12Глава 3.Спроектированная архитектура . . . . . . . . . . . . . . . . . . . 133.1.Основные ограничения . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2.Предлагаемая архитектура . . . . . . . . . . . . . . . . . . . . . . . . . 163.3.3.2.1.Слой Execution . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 173.2.2.Слой Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2.3.Слой Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Выбор технологий для реализаций компонентов . . . . . . . . . .
. . . 193.3.1.WEB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3.2.Core и Control Unit . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3.3.DB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.4.Ограничения, связанные с CAP-теоремой . . . . . . . .
. . . . . . . . . 233.5.Требования к симулятору . . . . . . . . . . . . . . . . . . . . . . . . . . 24Глава 4.Сравнение с существующими решениями . . . . . . . . . . . . 264.1.NetLogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2.Узкоспециализированные симуляторы: SimGrid, GridSim, ALEA 2 . . . 274.2.1.GridSim . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 274.2.2.ALEA 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.2.3.SimGrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Глава 5.Реализованная в симуляторе модель . . . . . . . . . . . . . . . 295.1.Многоагентное окружение с дискретным временем . . . . . . . . . . . . 295.2.Сетевое окружение . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.3.Параллелизм и коммуникация . . . . . . . . . . . . . . . . . . . . . . . . 315.4.Изоляция агентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3135.5.Генерация сценариев . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 315.6.Сбор статистики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.7.Детали реализации компонентов системы . . . . . . . . . . . . . . . . . 325.7.1.Core . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 325.7.2.Control Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.7.3.Worker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Глава 6.Результаты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346.1.Установка и использование evergrid-go . . . . . . .
. . . . . . . . . . . . 356.2.Пример работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356.2.1.Random Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . 366.2.2.Naive Fast Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . 376.2.3.Naive Cheap Scheduler . . . . . . . . . . . . . . . . . . . . . . . . 37Заключение . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Список литературы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404ВведениеВ последние несколько лет развитие информационных технологий и, в частности, Интернета крайне активно. Многие сервисы и инструменты, которые были актуальны несколько лет назад, сейчас уже считаются устаревшими. Это создает потребность в создании современных инструментов для решения различных задач. Такихинструментов, которые превзойдут своих предшественников по удобству, функциональности или даже принесут что-то качественно новое. Данная работа посвященараннему этапу разработки одного из таких продуктов.
И действительно, как будетдалее видно, создание подобного продукта с подобной архитектурой несколько летназад было бы существенно сложнее, нежели сейчас.Если мы говорим о новом инструменте, то в первую очередь стоит рассказатьо двух вещах: как он называется и какие задачи он решает. Называется он Evergrid.А решаемая задача - это предоставление web-сервиса для проведения вычислительных экспериментов, публикации их результатов вкупе с программной реализацией иданными, предоставление удобного интерфейса для их воспроизведения и модификации. Проект, несомненно, большой - поэтому этот диплом посвящен только его малойчасти, одной из самых первых и рассматривает решение более узкой задачи нежелисоздание этой системы целиком.У проекта есть и другая сторона - вычислительные мощности тоже предоставляются пользователями.
Причем необязательно бесплатно. То есть сервис, помимопрочего, является посредником между потребителями и провайдерами ресурсов.На данный момент аналогичных решений на рынке нет. Как минимум потому,что Evergrid по своей архитектуре не является ни cloud-платформой, ни grid’ом вчистом виде.В данном дипломе решаются две задачи:∙ на основе общих принципов Evergrid придумать и описать подходящую для негоархитектуру∙ на основе описанной архитектуры реализовать симулятор для сравнения работы алгоритмов планировщиковВ виду ранней стадии разработки проекта описание архитектуры не являетсядоскональным, а скорее задает общую структуру и критичные ограничения.
Но, тем5не менее, описание достаточно подробно, чтобы на основе него можно было сделатьсимулятор.Также рассмотрены существующие симуляторы для grid’ов и обоснована ихнеэффективность для использования в Evergrid. Показаны сильные стороны выбранного для реализации подхода.Одной из ключевых особенностей работы является активное использование языка программирования go - именно на нем реализован симулятор.Реализованный симулятор представляет из себя многоагентную систему. Причем, та его часть, которая реализует среду для выполнения агентов, независима иможет использоваться отдельно для решения других задач.
Выводом симулятораявляются логи в формате JSON, что позволяет проводить произвольный анализ результатов. Код документирован, что облегчит его последующую разработку.6Глава 1О системе EvergridВ первую очередь стоит подробнее объяснить, что такое Evergrid, какие предпосылки обуславливают его актуальность и новизну, какие задачи он призван решать икаковы сценарии его использования. Все это важно еще и тем, что задает основу дляразработки и описания подходящей архитектуры, а без нее невозможно говорить онаписании симулятора.
В конце главы будет пара слов о самом симуляторе, а начнеммы с предпосылок появления Evergrid.Согласно Эрику Шмидту из Google, теперь каждые два дня человеческая расасоздает столько информации, сколько мы производили от начала нашей цивилизации до 2003 года. Это что-то около пяти эксабайт информации в день. Если копнутьглубже, то не совсем понятно, откуда он взял эти цифры1 , но сложно спорить сосновной идеей - информации ежедневно производится беспрецедентно много. ЭрикШмидт озвучил свою мысль в 2010 году. Логично предположить, что спустя 6 летинформационные потоки стали только мощнее. Такое количество производимой информации делает более актуальной проблему ее обработки и экспериментов над ней.Есть даже такие на первый взгляд странные исследования, как определение мест землетрясений в реальном времени с помощью твиттера[1].
Разработка подобных методов зачастую связана с экспериментами над большими массивами данных (гигабайтыинформации) и, если когда-то работа с такими объемами была мало распространена,то сейчас этим уже никого не удивить. Соответсвенно, инструменты, которые помогают в этих задачах, востребованы на рынке. Как один из многочисленных примеровможно привести Apache Spark.Помимо инструментов есть еще один не менее важный фактор - коммуникация.Эффективное развитие науки невозможно без эффективной коммуникации междуотдельными учеными, университетами, исследовательскими центрами и т.
д. Доступность информации - тоже, по сути, является элементом коммуникации. Написаниемногих современных научных работ было бы более трудоемким без таких инструментов, как Google Scholar, без отлаженной работы научных изданий и прочих факторов,связанных с эффективным обменом результатами исследований. Вывод из этого можно сделать такой: чем лучше коммуникация - тем эффективней развивается наука.1http://readwrite.com/2011/02/07/are-we-really-creating-as-much/7Если говорить об экспериментах над данными, то в плане коммуникации возникает одна очень заметная проблема: воспроизведение экспериментов.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.