Введение 3
Постановка задачи 4
Глава 1. Технологии виртуализации 5
Глава 2. Работа параллельных приложений в распределенной среде ... .15
Глава 3. Разработка распределенной вычислительной инфраструктуры для параллельных приложений 20
Глава 4. Применение модели 31
Глава 5. Результаты 45
Заключение 46
Список литературы
Высокопроизводительные вычисления занимают важную роль как в сфере информационных технологий как предмет обучения, так и во многих смежных сферах, как инструмент вычислений, моделирования, анализа и т.д. В частности благодаря им есть возможность создавать тренажеры, которые имитируют реальные условия с целью подготовки квалифицированных кадров. В случае натурного эксперимента, есть вероятность утраты дорогостоящего оборудования или, что еще хуже, потери человеческих жизней. В случае виртуальной эмуляции всегда есть возможность прекратить эксперимент и предотвратить трагедию. Данные системы используются для прогнозирования погоды, собирая и обрабатывая огромное количество данных с метеостанций, расположенных по всему миру. Даже для того, чтобы найти необходимую информацию в интернете используется огромное количество вычислительных средств. Одним из способов организации высокопроизводительных вычислений является создание кластера. Кластер — это объединение множества отдельных вычислительных ресурсов в единую систему. Что позволяет получить огромный вычислительный потенциал. Однако, к сожалению при построении кластера не учитываются особенности исполняемых программ. В большинстве своем кластеры не подстраиваются под конкретную задачу, предоставляя всевозможные ресурсы без учета особенностей запускаемых задач. Часто не учитывается то, что на предоставляемых ресурсах она может работать неэффективно. Кроме того, само приложение может быть рассчитано на использование других по мощности ресурсов. И в случае, когда предоставляемые ресурсы будут отличаться от прогнозируемых, производительность приложения может пострадать. Также возможна ситуация, когда программа умышленно или случайно потребляет максимально возможное количество ресурсов или мешает другим приложения исполняться. То есть в целом носит паразитический характер. Вне зависимости от того является ли это злым умыслом, или ошибкой в программе, необходимо предусмотреть механизм предотвращения подобного поведения.
Предложенная в данной работе модель решает часть проблем описанных выше. Используя разработанную систему, у пользователей появляется возможность сконфигурировать ресурсы окружения исходя из своих необходимостей и нужд. При этом есть возможность выбрать оптимальную конфигурацию ресурсов и, в случае наличия в резерве достаточного количества ресурсов, создать виртуальный кластер, на котором непосредственно и произойдет выполнение программы. При этом, с одной стороны, ресурсы кластера подстраиваются под задачу, с другой стороны, для каждой задачи создается ограниченное по ресурсам окружение. Любые действия программы изолированы и не влияют на исполнение других задач. По окончанию работы, использованные ресурсы освобождаются, а созданный кластер уничтожается со всеми составляющими.
Постановка задачи
Целью работы является создание виртуальной распределенной вычислительной среды, которая позволит сконфигурировать предоставляемые вычислительные ресурсы в соответствиям с требованиями приложения.
Для достижения цели необходимо было решить следующие задачи:
• провести обзор предметной области;
• выбрать основу для виртуальной вычислительной архитектуры;
• разработать модель для выявления оптимальных параметров;
• создать прототип виртуальной вычислительной системы;
• провести тестирование полученной модели.
В рамках данной работы необходимо было решить поставленные задачи:
• Провести обзор предметной области.
Обзор предметной области произведен. Необходимые аспекты освещены.
• Выбрать основу для виртуальной вычислительной архитектуры;
Произведен обзор возможных вариантов, в качестве рабочего было решено использовать контейнеры приложений.
• Разработать модель для выявления оптимальных параметров.
Описываемая модель позволяет найти оптимальные параметры методом подбора. Что продемонстрировано в ходе работы.
• Издать прототип виртуальной вычислительной системы.
Прототип системы был создан. Предварительно была продумана архитектура системы с учетом теоретической части работы.
• Провести тестирование полученной модели.
Произведено тестирование полученной модели. Подробности и результаты также описаны в работе.
Тем самым цель работы: создание виртуальной распределенной вычислительной среды, которая позволит сконфигурировать предоставляемые вычислительные ресурсы в соответствиям с требованиями приложения была достигнута.
В рамках данной работы представлена новая модель информационной системы для реализации распределенных вычислений. На основе теоретической модели создан прототип. Проведен ряд вычислительных экспериментов, который показал применимость прототипа при решении поставленных задач. Данный подход помимо анализа приложения и оптимального подбора ресурсов, может послужить и для других целей. Например изолированность позволяет реализовать ситуацию, когда на основе аппаратных средств имеются несколько персональных кластеров созданных, к примеру, с целью обучения. При этом программные ошибки и сбои одного кластера не будут влиять на другой кластер, работающий на тех же ресурсов.
В качестве дальнейшей работы можно выделить следующее:
• решить вопрос с ограничением мощности процессора при запуске задач;
• проанализировать данные, которые необходимы для работы приложения с целью проектирования структуры СУБД;
• реализовать полноценную серверную часть;
• реализовать клиентскую часть;
• провести компанию по сбору ресурсов;
• вывести продукт в стадию, когда им можно будет пользоваться.
В ходе развития данной промежуточные результаты были освещены на международной конференции ICCSA 2015 и опубликована работа [8]. В текущем году было выступление на XLVII Международной научной конференции аспирантов и студентов «Процессы управления и устойчивость» Control Processes and Stability (CPS’16) с последующей публикацией. А также принята статья на ICCSA 2016.
В целом есть надежда, что развитие данной работы может послужить началом эры краудфандинга в информационной среде.
1. Walters J., Chaudhary V. A fault-tolerant strategy for virtualized HPC clusters // The Journal of Supercomputing. 2009. Vol. 50, Issue 3, P. 209-239.
2. Lantz B., Heller B.,McKeown N. A network in a laptop: rapid prototyping for software-defined networks // Proc. of the 9th ACM SIGCOMM Workshop on Hot Topics in Networks. 2010. Article No. 19 .
3. CS144: Introduction to Computer Networking [Электронный ресурс]: URL:http://www.scs.stanfoгd.edu/11au-cs144/(датаобраще¬ния: 17.03.16).
4. Сети для самых маленьких. Часть нулевая. Планирование [Электронный ресурс]: иЕЕ:Ьггр8://ЬаЬгаЬаЬг.ги/розг/134892/(дата обращения: 17.03.16).
5. Курс молодого бойца. Практический курс по Cisco Packet Tracer
[Электронный ресурс]: URL:http://www.scs.stanford.edu/
11аи-ез144/(дата обращения: 17.03.16).
6. Graphical Network Simulator [Электронный ресурс]: URL:https://www. gns3.com/(дата обращения: 17.03.16).
7. Calarco G., Casoni M. On the effectiveness of Linux containers for network virtualization. 2013. Vol. 31. P. 169-185.
8. Korkhov V., Kobyshev S., Krosheninnikov A. Flexible Configuration of Application-Centric Virtualized Computing Infrastructure // Computational Science and Its Applications - ICCSA. 2015. Vol. 9158. P. 342-353.
9. Wei H., Jiuxing L., Bulent A., Dhabaleswar K. A case for high performance computing with virtual machines // Proc. of the 20th annual Int. conf. on Supercomputing (ICS). 2016. P. 125-134.
10. Linux Containers [Электронный ресурс]: URL:https://
linuxcontainers.org/(дата обращения: 17.03.16).
11. Docker Offical site [Электронный ресурс]: URL:https://docs.docker. com/ (дата обращения: 17.03.16).
12. LXC (Linux Containers) [Электронный ресурс]: URL:http://habrahabr. ru/post/208746/(дата обращения: 17.03.16).
13. Docker toolox [Электронный ресурс]: URL:https://www.docker.com/ products/docker-toolbox(дата обращения: 17.03.16).
14. Google Cloud Platform. Container Engine [Электронный ресурс]: URL: https://cloud.google.com/container-engine/docs/clusters/(да¬та обращения: 17.03.16).
15. Apache Hadoop [Электронный ресурс]: URL:http://hadoop.apache. org/(дата обращения: 17.03.16).
16. The Apache software Foundation [Электронный ресурс]: URL:http:// www.apache.org/(дата обращения: 17.03.16).
17. Hadoop: что, где и зачем [Электронный ресурс]: URL:https:// habrahabr.ru/post/240405/(дата обращения: 17.03.16).
18. Scaling up with hadoop and banyan at ITRIX-2015 [Электронный ресурс]: URL:http://www.slideshare.net/rohitkulky/
scaling-up-with-hadoop-and-banyan-itrix-feb-2015-public-copy(дата обращения: 17.03.16).
19. Urbah E., Kacsuk P., Farkas Z.,Fedak G., Kecskemeti G., Lodygensky O., Marosi A.,Balaton Z. ,Caillat G., Gombas G., Kornafeld A.,Kovacs J., He H., Lovas R. EDGeS: Bridging EGEE to BOINC and XtremWeb, J. Grid Comput. 7 (3) (2009) 335-354.
20. Kacsuk P., Kovacs J., Farkas Z., Marosi A.Cs., Balaton Z. Towards a powerful european dci based on desktop grids, J. Grid Comput. 9 (2) (2011) 219-239.
21. Silberstein M. ,Sharov A. , Geiger D. ,Schuster A. Gridbot: execution of bags of tasks in multiple grids, in: Proc. of the Conf. on High Performance
Computing Networking, Storage and Analysis, SC ’09, ACM Press, 2009, pp. 11:1-11:12.
22. Figueira J., Greco S., Ehrgott M. Multiple Criteria Decision Analysis: State of the Art Surveys, Springer, 2005.
23. Docker Hub [Электронный ресурс]: URL:https://hub.docker.com(дата обращения: 17.03.16).
24. Docker Image Builder [Электронный ресурс]: URL:https://docs. docker.com/engine/reference/builder/(дата обращения: 17.03.16).
25. QoS on OpenFlow 1.0 with OVS 1.4.3 and POX inside Mininet [Электронный ресурс]: http://users.ecs.soton.ac.uk/drn/ofertie/ openflow_qos_mininet.pdf
26. Kocoloski B., Lange J. Better than native: using virtualization to improve compute node performance // Proc. of the 2nd International Workshop on Runtime and Operating Systems for Supercomputers. 2012. Article No. 8
27. Lange J., Pedretti K., Dinda P., Bridges P., Bae C., Soltero P. and Merritt A. Minimal-overhead virtualization of a large scale supercomputer // Proc. of the 7th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments. 2011. P. 169-180.
28. Bailey D., Barszcz E., Barton J., Browning D., Carter R., Dagum L., Fatoohi R., Fineberg S., Frederickson P., Lasinski T., Schreiber R., Simon H., Venkatakrishnan V., Weeratunga S. The NAS parallel benchmarks, RNR Technical Report, RNR-94-007, 1994.