Главная » Просмотр файлов » Разработка модели среды распределенных вычислений Evergrid для сравнения алгоритмов управления потоками задач и данных

Разработка модели среды распределенных вычислений Evergrid для сравнения алгоритмов управления потоками задач и данных (1187422), страница 4

Файл №1187422 Разработка модели среды распределенных вычислений Evergrid для сравнения алгоритмов управления потоками задач и данных (Разработка модели среды распределенных вычислений Evergrid для сравнения алгоритмов управления потоками задач и данных) 4 страницаРазработка модели среды распределенных вычислений Evergrid для сравнения алгоритмов управления потоками задач и данных (1187422) страница 42020-09-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Выполнение запросов изолировано другот друга. В данных ограничениях удобно писать код, но страдает масштабиру­емость и не стоит использовать продолжительные по времени подключения(websocket’ы, например). Синхронным такой подход называется т. к. в случае1234567http://rubyonrails.org/https://nodejs.org/en/Например: http://expressjs.com/https://www.djangoproject.com/http://php.net/https://www.playframework.com/http://www.phoenixframework.org/20одного обработчика мы блокируем выполнение следующего запроса до завер­шения предыдущего.С "асинхронной"архитектурой – в этом подходе для каждого входящего запро­са на лету создается свой поток обработки.

Т. е. мы, в отличие от предыдущегоподхода, не вынуждены ждать завершения обработки предыдущего запроса дляначала обработки нового. Для такой архитектуры сложнее писать код, но обыч­но решения на ней обладают лучшей производительностью и более широкимспектром возможностей.Это описание, достаточное для общего понимания. Еще один важный параметр- это используемый язык программирования. От него зависит как скорость продукта,так и, отчасти, легкость его сопровождения.Сначала рассмотрим технологии, использование которых может оказаться неэф­фективным:Java/ASP.NET Плохо годятся для небольших команд.

ASP.NET плох своим акцен­там на Windows-сервера. Java, на фоне прочих языков, слишком "многословна ибыстро реализовать на ней прототип довольно тяжело.Node.js Несмотря на асинхронность архитектуры, javasript работает в одном потоке.Но главный его недостаток - это дизайн языка. У JS крайне слабая систематипов, запутанная спецификация и много неоправданно неочевидных моментов.PHP Очень популярен в вебе, до сих пор развивается, множество фреймворков. Нодизайн языка хоть и лучше, чем у JS, все равно уступает ruby и python.

Другойего недостаток - слабость как языка общего назначения - выражается в том,что на нем неудобно писать что-то кроме непосредственно генерации ответовна запросы к веб-серверу. А подобное может понадобиться - например, дляорганизации выполнения внешних очередей задач или удобного использованияwebsocket’ов. Кратко говоря, PHP неоправданно накладывает слишком многоограничений.Теперь рассмотрим список технологий, хорошо подходящих этому проекту:21Python Python активно используется как для веб-разработки, так и для научныхцелей. Веб-фреймворки на нем довольно качественные, и есть большое коли­чество решений для типовых задач (например, регистрация пользователей ипр.).

Поскольку Python скриптовый язык с GIL, большинство решений на немреализуют синхронную архитектуру. Это не настолько большой недостаток,как может показаться, но, если высокая производительность или использова­ние websocket’ов является критичным, - python может оказаться не лучшимвыбором.Ruby on Rails В основном ситуация, схожая с python за исключением следующихразличий: редко используется в научной среде; язык более гибкий, но и болеесложный, чем python; большее количество библиотек с готовыми решениямидля веб-разработки.

Отдельным преимуществом является и то, что Rails од­нозначный лидер среди Ruby-фреймворков, а это означает, что почти любаяразвитая библиотека умеет корректно с ним работать. В случае с python все бо­лее разобщено. То есть, если есть возможность эффективно использовать Rails- то это является удачным решением в рамках синхронной архитектуры.Phoenix Framework (Elixir) Если важно использование асинхронной архитекту­ры, то стоит вспомнить об Erlang. Продукты, написанные на Erlang, в виду осо­бенностей BEAM (Bogdan/Björn’s Erlang Abstract Machine) и принципов OTP(Open Telecom Platform) отличаются высокой стабильностью и производитель­ностью. Elixir - это молодой язык для BEAM, который более удобен в исполь­зовании, имеет больше возможностей, чем Erlang, и может без ограниченийиспользовать его библиотеки.

На этом языке реализован Phoenix Framework.Что язык, что сам фреймворк - еще молодые, используются в production, нопока еще не получили широкого распространения. Сам фреймворк удобен виспользовании. Данный вариант хорош, если хочется получить преимуществаErlang/OTP-экосистемы: высокая стабильность, высокая производительностьна IO задачах, дешевый и удобный параллелизм благодаря green threads и ак­торной модели, преимущества подходов из функциональной парадигмы про­граммирования.Play Framework (Scala) Еще одно возможное решение, если нужна асинхронностьи производительность. Scala - преимущественно функциональный язык про­22граммирования поверх JVM, имеющий возможности интероперабельности сJava. Тоже использует акторную модель (Akka). Более зрелое решение, чемphoenix, и более широко распространено на данный момент.

Из недостатковможно отметить то, что в Erlang более развитые средства для мониторинга и бо­лее стабильная реализация акторной модели и супервизоров. Также Scala явля­ется более сложным в изучении и использовании языком, нежели Elixir/Erlang.Из преимуществ можно отметить, что мы получаем доступ к внушительномупарку Scala и Java библиотек.3.3.2. Core и Control UnitЭти два компонента формируют внутреннюю инфраструктуру сервиса.

В дан­ном случае корректным будет следующий список требований:∙ высокая производительность (система должна адекватно вести себя под высо­кими нагрузками)∙ выбранное решение должно использоваться для схожих известных продуктов∙ иметь развитые библиотеки для сетевого взаимодействия∙ чем проще будет инициализировать новые сервера - тем лучше∙ язык должен быть популярен и иметь активное сообщество∙ простота языка будет плюсомТребование высокой производительности ставит под сомнение использованиеинтерпретируемых языков. Из "быстрых"языков в первую очередь приходят на умC/C++ и go. ASP.NET плохо дружит с Linux, а Java/Scala довольно прожорливыв плане памяти и не являются простыми в использовании языками.

С++ - тожедовольно сложный в использовании язык. Если же внимательнее посмотреть на go,то становится видно, что он является хорошим решением:∙ на нем написаны продукты hashicorp (nomad, consul), на нем написан docker∙ скорость выполнения сравнима с C/C++∙ прост в изучении: опытный программист может освоить все основные возмож­ности языка за пару вечеров23∙ популярен для написания микросервисов∙ встроенная в язык модель параллелизма CSP∙ активное сообщество и большое количество готовых библиотек∙ скомпилированное приложение для своей работы не требует установки самогоgo или каких-либо специфических пакетовПоэтому для Core и Control Unit go является подходящим выбором.

Причемданный выбор имеет жесткий характер, так как симулятор тоже написан на go, ичасть его преимуществ основывается на том, что для реализации инфраструктурытоже будет использоваться этот язык.3.3.3. DBНа самом деле на данном этапе сложно предсказать все те требования, которыемогут возникнуть для основного хранилища. Возможно, даже одного продукта нехватит, и будет использоваться некая комбинация (например: часто можно встретитьсвязки Postgres + Redis).Но, в качестве решения по умолчанию, стоит рассматривать именно Postgres. Наданный момент это наиболее универсальное и активно используемое решение средиopen source баз данных.3.4. Ограничения, связанные с CAP-теоремойПоскольку мы имеем дело с распределенной системой, то стоит явно указатьприоритеты в терминах CAP-теоремы.

Причем эти приоритеты отдельные для каж­дого слоя (именно из-за этого вообще появилось разделение на слои).Также первый и второй слой используют consul - он предоставляет service discoveryи leader election интерфейсы, к тому же он создан для решения этих задач как раз­таки в распределенных системах.Слой Execution Для этого слоя подходит конфигурация [C]AP. Если машина по­теряла связь с системой – перераспределяем нагрузку. Здесь важно в любоймомент времени максимально использовать доступные ресурсы.24Слой Control При критичной сегментации сети в слое, Control Unit’ы перестаютпринимать запросы, но продолжают выполнение локальных очередей. Пример­но так выглядит жертва availability во имя consistency и partition tolerance.Стоит сказать, что это довольно грубый подход.

Но начать разработку прощеименно с него. Как второй шаг может подойти weak consistency подход ("согла­сованность в итоге").Слой Interface На этом слое крайне важна согласованность данных, а без доступ­ности он не имеет смысла. Поэтому жертвуем partition tolerance.3.5. Требования к симуляторуИмея описание архитектуры, можно сформулировать список требований к си­мулятору.Первое из них связано с симуляцией сети. Для симуляции данной архитектурынам не важен пинг между ее компонентами. Нам важна только скорость передачиданных между ними и сам факт наличия связи. Отдельный случай - это черезмернобольшой пинг - это может повлиять на порядок запросов и подобное. Но по фактунам нужно симулировать не пинг, а факт поздней доставки сообщений.

В итоге имеемследующие требования:∙ симуляция видимости между машинами∙ симуляция скорости передачи данных∙ симуляция разрыва соединения∙ симуляция поздно пришедших сообщенийВторое ограничение связанно с тем, что мы должны симулировать время. Т. к.нам важно понимать когда выполнялась задача и сколько времени она выполнялась.Наиболее гибким простым решением является "дискретная"природа симулируемоговремени. То есть мы используем дискретный таймер, и каждый агент системы делаетту работу, которую теоретически может успеть за эту дискретную единицу времени.И третье ограничение - симулятор должен быть достаточно гибким, чтобы приизменении принципов работы компонент можно было легко внести изменения в мо­дель.25Всякий симулятор преследует цель проверки гипотез.

В данном случае симуля­тор должен помогать в исследовании:∙ эффективности алгоритмов планировщиков∙ принципов взаимодействия компонентов системы26Глава 4Сравнение с существующими решениямиВ рамках работы была рассмотрена возможность использования или модифика­ции существующего решения вместо написания своей реализации. Для корректногосравнения стоит сразу перечислить преимущества написания своей реализации наgo.

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6358
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее