Технологии. Проектирование инфраструктуры и реализация распределенного информационновычислительного кластера на базе персональных компьютеров
Скачать 0.59 Mb.
|
Алгоритм работы над заданиями Алгоритм работы можно представить следующим образом: 1. Сервер создает подзадание с помощью генератора заданий необходимых для проекта. 2. BOINC при необходимости создает копию задания. 3. Планировщик назначает подзадание клиенту. 4. Клиент принимает задание и загружает необходимы данные для работы. 5. Клиент производит вычисления. 6. Клиент отправляет результаты вычислений и отчет о выполнений. 7. Служба проверки результатов проверяет полученные данные. 8. Если служба проверки одобряет решение, то в работу вступает служба освоения. 9. После запускается служба удаления для очистки системы от ненужных файлов. 10. Когда все подзадачи завершены, служба удаления очищает БД. 1.3. Программное обеспечение HTCondor РВС с открытым исходным кодом, обладающая высокой пропускной способностью и возможностью распараллеливания ресурсоемких задач [5]. 34 Ранее проект был известен под именем Condor. Продукт доступен бесплатно для исследователей UW-Madison и спонсорам. Обеспечивает политику планирования, мониторинг ресурсов и все тоже, что и в других ранее описанных РВС. Одной из особенностью является то, что HTCondor можно настроить, чтобы агенты использовались в период своей неактивности (мышь и клавиатура в покое). Для HTCondor не обязательно использовать файловое хранилище, так как он может общаться напрямую. Так же поддерживает возможность переноса задания на другой узел, в случае его отключения. Архитектура HTCondor HTCondor представляет собой развернутый кластер узлов, с одним менеджером узлом, который выступает в роли менеджера ресурсов, где пользователи могут отправлять задания через планировщик заданий, а тот в свою очередь составляет очередь заданий, и вычислительные узлы работают согласно очереди заданий. Пример Архитектуры можно увидеть на рисунке 8. Принимающий хост Менеджер ресурсов Вычислительный узел Вычислительный узел Вычислительный узел Распределение ресурсов Регистрация Отслежевание Выполнения заданий Рисунок 8 - Архитектура HTCondor Менеджер ресурсов содержит БД вычислительных узлов наряду с их характеристиками, при появлении новых вычислительных узлов, они 35 обязательно регистрируются в менеджере ресурсов, и ожидают дальнейших указаний. Каждый хост запускает планировщик задач и предоставляет средства пользователю, сформированные задачи поступают в очередь заданий планировщика, и планировщик распределяет задания на основании очереди, рабочей нагрузки или приоритета. Планировщик может запросить ресурсы у менеджера ресурсов в случае необходимости. Менеджер ресурсов, получив запрос, предоставляет планировщику ресурсы, которые удовлетворяют его запросу. Получив необходимые ресурсы, планировщик передает на них задание. Планировщик в течение всего времени отслеживает выполнение задания, и если задание выполнено, то находит другую работу, чтобы машины не простаивали. Требования планировщика могут быть нарушены только в нескольких случаях [7]: менеджер ресурсов, решил забрать узел и выделить его на другой проект с более высоким приоритетом пользователя или планировщика; планировщик сам отказывается от работы с узлом; узел нарушает требования работы с планировщиком, например, выключился. Так как Менеджер ресурсов и планировщик разделены, это предоставляет более высокую степень масштабируемости и гибкости системы. Также стоит отметить, что архитектура не предполагает каких-либо идентификаторов или общей файловой системы. 1.4. Инструментарий Globus Toolkit Globus Toolkit в отличие от Hadoop, BOINC и HTCondor не предоставляет готовую платформу для работы. Данный продукт предоставляет лишь инструментарий для разработки GRID – систем. Сам по себе Globus toolkit состоит из набора модулей, необходимого для организации распределенных вычислений. Каждый модуль имеет реализации под различные среды выполнения. 36 Модули внутри Globus Toolkit можно разделить на следующие группы: модули поиска и выделения ресурсов; информационные модули; аутентификационные модули; модули коммуникации; модули доступа к данным; модули создания процессов; Рассмотрим некоторые из групп модулей: коммуникационный модуль – обеспечивает однородность доступа к ресурсам, например TCP/IP; доступ к данным – так как данные в кластере, в большинстве случаев, распределены между некоторым количеством узлов, то для доступа в Globus используется специальный интерфейс удаленного доступа RIO. В процессе работы необходима информация обо всех вычислительных ресурсах, сети и системы в целом. Сюда могут включаться различные параметры (пропускная способность каналов и т.п.). Часть этой информации нужна серверу, другая приложениям и т.д. Globus позволяет объединить все эти данные и предоставить к ним доступ с помощью сервиса «метакомпьютерной директории (анг. Metacomputing Directory Service (MDS))». Информация в данном сервисе хранится в виде списка пар «ключ-значение». С помощью модулей создают высокоуровневые механизмы, примером может являться службы безопасности, которые могут обеспечивать как глобальную идентификацию, так и идентификацию, основанную на сертификатах, а так же централизованный доступ для локальных пользователей. 1.5. Платформа Unicore Uniform Interface to Computing Resources (рус. Унифицированный интерфейс доступа к вычислительным ресурсам) – предлагает готовую к запуску систему, которая включает в себя клиент и серверное программное 37 обеспечение [8]. Перейдем сразу к рассмотрению архитектуры данной системы (рисунок 9) [9]. Клиенты Веб-портал Графический интерфейс пользователя (GUI) Командная строк API Шлюз UNICORE/X Общий реестр Сервис рабочего процесса и Сервис дирижер Шлюз UNICORE/X Сервисы TSI Файловые и пакетные системы Ресурсы Другие ресурсы (Amazon web services, Hadoop). Рисунок 9 - Архитектура UNICORE Рассмотрим работу системы более подробно. 38 Слой клиенты. Unicore предоставляет ряд клиентских приложение, таких как веб- портал, графический клиент, клиент командной строки и API для построения пользовательских приложений. Веб-портал – позволяет пользователям получать доступ и подсчитывать данные через веб-браузер, без необходимости устанавливать дополнительное ПО. Так же имеются функции передачи файлов между хранилищами, создавать загружать и редактировать файлы и др. Графический интерфейс – это клиент Unicore Rich, является настольным десктопным приложением и обладает полным набором функциональных возможностей. Соответственно предоставляет всю информацию в окне приложения. Так же имеется возможность строить блоки, циклы с помощью мыши и др. Клиент командной строки – это универсальный инструмент, который позволяет получить доступ ко всем функциям Unicore, однако требует от пользователя определенных компетенций. В функции клиента командной строки входят управление данными. То есть можно проводить различные манипуляции с данными. Сервисный слой Данный слой включает в себя все услуги и компоненты Unicore. Шлюз – это обратный HTTPS прокси-сервер, служит в первую очередь брандмауэром, для избежания необходимости настройки открытых портов. UNICORE/X – центральный компонент системы, который обеспечивает прием запросов от клиентов, передающихся через шлюз, проверяет подлинность запроса, проверяет авторизацию и вызывает соответствующие службы. Предоставляет набор сервисных интерфейсов, принимает задания и направляет их через системы TSI, позволяет загружать и скачивать данные с помощью различных протоколов. Таким образом, обеспечиваю большую часть функциональности UNICORE, так же данный компонент позволяет использовать другие ресурсы, такие как Apache Hadoop HDFS, Amazon S3 и др. 39 Общий реестр – содержит информацию о доступных сервисах, размещенных на нескольких UNICORE. Единый реестр позволяет наращивать и управлять UNICORE инфраструктурой. Сервис рабочего процесса – поддержка рабочего процесса реализована в виде двухслойной архитектуры, состоящий из сервиса рабочего процесса и планировщика. Сервис рабочего процесса предлагает широкий спектр управляющих конструкций и функций. Данный сервис можно использовать на любом из вариантов клиентского слоя. Сервис дирижера отвечает за выполнение отдельных задач в потоке операции, а так же занимается обработкой заданий и мониторинге. TSI (Target System Layer) Состоит из интерфейса к локальной файловой, операционной системам и управлением ресурсами пакетной системы. Данный интерфейс используется для отправки заданий, выполнение операций ввода и вывода, проверки состояния задач. TSI работает в фоне с правами администратора, а так же с привилегиями на ресурсы. Заключение Рассмотрев платформы и инструментарий по создание РВС, можно заметить, что они давно на рынке и хорошо проработаны. Но не всегда требуется настолько сложные платформы для работы, поэтому для этого была разработана архитектура, которую можно было максимально быстро развернуть в любом месте для работы. 40 2. Исследование эффективности информационно- вычислительного кластера на базе персональных компьютеров В процессе разработки распределенного информационно- вычислительного кластера проводились различные эксперименты с целью установить насколько эффективно распределенные вычисления в сравнении с вычислениями на одном персональном компьютере. Для нагрузки и сравнения использовались различные операции по созданию, удалению массивов, словарей, очередей и др. При эксперименте центр выполнял весь объём тестов, а агенты части от него. Сравнение затраченного времени показано на таблице 1 и рисунке. Таблица 1 – Сравнение затраченного времени Начало теста Конец теста Затраченное время (сек.) Центр Агенты Центр Агенты Центр Агенты 11:06:12 11:06:27 11:06:27 11:06:39 15,633 12,317 Рисунок 10- Log-файл с информацией о затраченном времени Как можно заметить из таблицы, центр затратил на 4 теста 15,633 секунды, в отличие от агентов, которые потратили на это 12 317 секунд, что на 3,316 секунд быстрее, и это с учетом задержки времени на передачу команды и получения ответа. Проведем еще несколько тестов с участием одного, двух и трех агентов. На рисунке 11 отображена загрузка ЦП во время ожидания подключения агентов. 41 Рисунок 11 - загрузка ЦП во время ожидания подключения агентов Подключаем одного агента и проводим тест из 5 итерации (рисунок 12). Рисунок 12 - тестирование с одним агентом Как видно, центр затратил на тест 15,046 секунд, тогда как агент справился за 13,094, что на 1,952 секунды быстрее. Это обусловлено отсутствием нагрузки у агента. Подключаем двух агентов (рисунок 13) и проведем тест из 4 итерации (рисунок 14). Рисунок 13 - подключение агентов 42 Рисунок 14 – тестирование с двумя агентами Сначала задачу выполняет центр. На это у него уходит 14,752 секунды. Далее каждый из подключенных агентов выполняет ровно половину от общего числа тестов, то есть каждый агент выполняет по 2 цикла. Как видно, агенты справились за 13,079 секунды, что на 1,673 секунды быстрее. Проведем тест на трех агентах. Для этого подключаем трех агентов (рисунок 15) Рисунок 15 - подключение трех агентов Запустим тест и выберем 3 итерации. По итерации на каждого агента. Загрузка Центра при тесте отображена на рисунке 16. Рисунок 16 - загрузка ЦП центра во время теста Результаты теста представлены на рисунке 17. 43 Рисунок 17 - тестирование с тремя агентами Как можно заметить центр потратил 12,182 секунды на тест, а агенты справились за 11,259 секунд, что на 923 секунды быстрее. В данном тесте уже становиться заметно, что агенты выполняют тест быстрее, но незначительно, вследствие того, что центр выполняет тесты подряд, а у агентов тратится время на передачу команд. Сводим данные тестов в таблицу 2. Таблица 2- Данные тестирования Центр Агент Центр 2 Агента Центр 3 Агента Начало теста 10:39:45 10:40:00 10:00:35 10:00:49 10:12:32 10:12:44 Конец теста 10:40:00 10:53:00 10:00:49 10:01:02 10:12:44 10:12:55 Затраченное время (сек) 15,046 13,094 14,752 13,079 12,182 11,259 Как можно видеть из таблицы, эффективность информационно- вычислительного кластера зависит от задач, которые на нем выполняются. Из таблицы видно, что количество времени, затрачиваемое на тест, увеличивается при увеличении количества агентов. В связи с этим, можно сделать вывод, что агенты будут выполнять задачи быстрее только в том случае, когда затраты на передачу команды несоизмеримо меньше, чем выполнение команды. Таким образом, можно сделать вывод, что информационно-вычислительный кластер на базе персональных компьютеров эффективен только для задач, не требующих работы в режиме реального времени. 44 Заключение В данной главе были проведены программные эксперименты, численно иллюстрирующие эффективность распределенных вычислений по сравнению с вычислениями на одном персональном компьютере. 65 5. Финансовый менеджмент, ресурсоэффективность и ресурсосбережение Целью данного раздела является проведение анализа финансово- экономических аспектов научно-исследовательской работы. Необходимо оценить трудовые и денежные затраты направленные на реализацию данного исследования, а так же уровня их научно-технической результативности. 5.1. Организация и планирование работ При организации процесса реализации конкретного проекта необходимо оптимально планировать занятость каждого из его участников и сроки проведения отдельных работ. На данном этапе составляется полный перечень проводимых работ, и определяются их исполнители и оптимальная продолжительность. Результатом планирования работ является сетевой, либо реализации проекта. Наиболее удобным, простым и наглядным способом для этих целей является использование линейного графика. Для его построения составим перечень работ и соответствие работ своим исполнителям, продолжительность выполнения этих работ и сведем их в таблицу 10. 66 Таблица 10 - Перечень работ и продолжительность их выполнения Этапы работы Исполнители Загрузка исполнителей Постановка целей и задач, получение исходных данных НР, И НР –45% И – 55% Подбор и изучение материалов по тематике НР, И НР – 20% И – 100% Разработка календарного плана НР, И НР –50% И – 50% Обсуждение литературы НР, И НР – 10% И – 100% Выбор алгоритмов для решения поставленной задачи НР,И НР – 25% И – 100% Планирование архитектуры программного обеспечения НР, И НР – 20% И – 100% Разработка программного обеспечения И И – 100% Тестирование и отладка программного обеспечения И И – 100% Оформление расчетно-пояснительной записки И И – 100% Подведение итогов НР, И НР – 80% И – 100% НР – научный руководитель. И – исполнитель 5.1.1. Продолжительность этапов работ Расчет продолжительности этапов работ осуществляется двумя методами: технико-экономическим; опытно-статистическим. В данном случае используется опытно-статистический метод, который реализуется двумя способами: аналоговый; экспертный (вероятностный). Для определения ожидаемого значения продолжительности работ t ож применяется вероятностный метод – метод двух оценок t min и t max 67 5 2 3 max min t t t ож , (1) где t min – минимальная трудоемкость работ, чел/дн.; t max – максимальная трудоемкость работ, чел/дн. Для выполнения перечисленных в таблице 10 работ требуются специалисты: инженер – в его роли действует исполнитель НИР (ВКР); научный руководитель. Для построения линейного графика необходимо рассчитать длительность этапов в рабочих днях, а затем перевести в календарные дни. Расчет продолжительности выполнения каждого этапа ведется по формуле: РД = ож ВН ∙ Д , (2) где t ож – трудоемкость работы, чел/дн.; K ВН – коэффициент выполнения работ (K ВН = 1); К Д коэффициент, учитывающий дополнительное время на компенсации и согласование работ (К Д = 1.2). Расчет продолжительности этапа в календарных днях ведется по формуле: КД = РД ∙ К , (3) где T РД – продолжительность выполнения этапа в рабочих днях; T КД – продолжительность выполнения этапа в календарных днях; T К – коэффициент календарности. Коэффициент календарности рассчитывается по формуле: К = КАЛ КАЛ ВД ПД , (4) где T КАЛ – календарные дни (T КАЛ = 365); T ВД – выходные дни (T ВД = 52); T ПД – праздничные дни (T ПД = 10). К = = 1,205. 68 Таблица 11 - Трудозатраты на выполнение проекта Этап Исполнители Продолжительность работ, дни Длительность работ, чел/дн. T РД T КД t min t max t ож НР И НР И Постановка целей и задач, получение данных НР, И 1 3 1,8 0,972 1,188 1,17126 1,43154 Подбор и изучение материалов по тематике НР, И 10 15 12 2,88 11,52 3,4704 13,8816 Разработка календарного плана НР, И 2 4 2,8 1,68 1,68 0,2044 0,2044 Обсуждение литературы НР, И 2 5 3,2 0,384 3,84 0,46272 4,6272 Выбор алгоритмов для решения поставленных задач НР, И 10 17 12,8 3,84 15,36 4,6272 18,5088 Планирование архитектуры программного обеспечения НР, И 15 22 17,8 4,272 21,36 5,14776 25,7388 Разработка программного обеспечения И 30 50 38 0 45,6 0 54,948 Тестирование и отладка программного обеспечения И 20 25 22 0 26,4 0 31,812 Оформление расчетно- пояснительной записки И 5 7 5,8 0 6,96 0 8,3868 Подведение итогов НР, И 2 4 2,8 2,688 3,36 3,23904 4,0488 |