🔍 Поиск работ

Разработка системы автоматизированного построения Q-эффективных программ

Работа №206343

Тип работы

Магистерская диссертация

Предмет

информатика

Объем работы54
Год сдачи2020
Стоимость4985 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
14
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 5
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 8
1.1. Описание концепции Q-детерминанта 8
1.2. Практическое применение концепции Q-детерминанта 13
1.3. Постановка задачи 17
2. ПРОЕКТИРОВАНИЕ СИСТЕМЫ 19
2.1. Варианты использования компонентов системы 19
2.2. Размещение компонентов системы 21
2.3. Описание структуры дерева алгоритма 23
2.4. Взаимодействие компонентов виртуальной машины 25
2.5. Описание работы компонентов виртуальной машины 26
3. РЕАЛИЗАЦИЯ СИСТЕМЫ 31
3.1. Выбор инструментов разработки 31
3.2. Формат файла метаданных 34
3.3. Формат файла программы 35
3.4. Формат файлов входных и выходных данных алгоритма 40
3.5. Алгоритм распределения памяти 40
4. ТЕСТИРОВАНИЕ СИСТЕМЫ 42
4.1. Модульное тестирование 42
4.2. Интеграционное тестирование 42
4.3. Функциональное тестирование 43
4.4. Пример сеанса работы с системой 49
ЗАКЛЮЧЕНИЕ 52
ЛИТЕРАТУРА 53


В современном мире процессоры с многоядерной архитектурой плотно вошли в нашу повседневную жизнь. Сегодня сложно кого-то удивить восьмиядерным процессором в смартфоне и уж тем более в персональном компьютере. Однако, даже сегодня, можно встретить современные программы, не предполагающие распараллеливания задач, что сводит на нет всю вложенную производителем процессора мощь. Все дело в том, что писать параллельные программы действительно сложно, ведь нет четких формальных правил, которых необходимо придерживаться, разрабатывая программы для многопроцессорных архитектур.
В качестве решения данной проблемы в области распараллеливания численных алгоритмов может выступать концепция Q-детерминанта, разработанная В.Н. Алеевой [1]. В современном ее виде данная теория позволяет проводить автоматизированный анализ ресурса параллелизма алгоритма, что сильно упрощает разработку параллельных программ [2].
Цель и задачи
Целью данной работы является разработка программной системы автоматизированного построения Q-эффективных программ. Конечный продукт должен позволять исполнять Q-эффективные программы.
В программную систему должно входить два продукта: преобразователь Q-детерминанта в исполняемую программу (компилятор), а также виртуальный исполнитель полученных в ходе преобразования программ (виртуальная машина).
Компилятор на вход должен принимать Q-детерминант алгоритма в формате, выдаваемом «Q-системой» (ранее разработанный продукт, строящий Q-детерминант алгоритма из его блок-схемы), а также дополнительные необходимые метаданные алгоритма. Результатом работы компилятора будет являться программа, которая может быть исполнена виртуальной машиной.
Виртуальная машина на вход должна получать программу, а также входные данные исполняемого алгоритма. Результатом работы машины будут являться выходные данные исполняемого алгоритма.
Для достижения обозначенной цели были поставлены следующие задачи.
1. Изучение концепции Q-детерминанта и ее применения для исследования и использования ресурса параллелизма численных алгоритмов.
2. Проектирование компонентов системы автоматизированного построения Q-эффективных программ.
3. Разработка спроектированной системы.
4. Тестирование полученных программных компонентов.
Обзор литературы
Работу [1] можно назвать основополагающей, так как в ней впервые была описана концепция Q-детерминанта. В ней проработаны основные понятия, такие как Q-терм и Q-детерминант алгоритма, даются развернутые доказательства состоятельности данной теории, а также проводится анализ ресурса параллелизма численных алгоритмов, используя Q-детерминант.
В работах [2-4] продолжается развитие теории, также показываются практические результаты работы. Описывается расширенная модель концепции Q-детерминанта, позволяющая получать Q-эффективные реализации алгоритмов, представленных в форме Q-детерминанта, для вычислительных систем с общей и распределенной памятью. Описана разработанная программа для построения представления алгоритма в форме Q- детерминанта по его блок-схеме, являющаяся подсистемой программной Q- системы для исследования ресурса параллелизма численных алгоритмов. Также представлены результаты практических замеров производительности, реализованных вручную некоторых численных алгоритмов на языке программирования высокого уровня с помощью концепции.
Структура и объем работы
Работа включает в себя введение, 4 основных раздела, заключение и список литературы. Общий объем работы составляет 54 страницы, библиографический список включает 22 наименования.
Краткое содержание работы
Раздел «Введение» содержит обоснование актуальности работы, ее значение, а также обзор литературных источников в рамках предметной области.
Первый раздел «Теоретическая часть» содержит понятия концепции Q-детерминанта, ее значение и возможности применения для исследования ресурса параллелизма алгоритмов. В разделе рассмотрены текущие результаты применения концепции на практике, описаны существующие программные решения, берущие за основу описываемую концепцию, а также постановка задачи текущей работы.
Второй раздел «Проектирование системы» посвящен проектированию разрабатываемой программной системы, позволяющей исполнять численные алгоритмы, представленные в форме Q-детерминанта. В нем описаны архитектурные решения и применяемые алгоритмы.
Третий раздел «Реализация системы» посвящен разработке алгоритмов компиляции и их исполнения. В нем описаны применяемые при разработке инструменты и методики.
Четвертый раздел «Тестирование системы» посвящен описанию проведенных тестов для программной системы, показывающих корректность ее реализации. Также в этом разделе описаны примеры входных и выходных данных реализованной программной системы.
Раздел «Заключение» содержит основные результаты, достигнутые в рамках работы.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате выполнения работы был создан программный комплекс, автоматизирующий построение Q-эффективных программ. Для достижения данной цели были решены следующие задачи.
1. Изучена концепция Q-детерминанта и ее применение для исследования и использования ресурса параллелизма численных алгоритмов.
2. Спроектированы компоненты системы автоматизированного построения Q-эффективных программ.
3. Спроектированная система разработана.
4. Полученные программные компоненты прошли тестирование.
Все поставленные задачи были решены, а цель была достигнута.
Разработанная система имеет перспективы дальнейшего развития:
• планируется добавить поддержку систем с распределенной памятью, используя стандарт MPI;
• провести исследования эффективности диспетчеризации и предложить более совершенные алгоритмы, учитывающие особенности современных платформ;
• провести дальнейшее улучшение производительности.



1. Алеева В.Н. Анализ параллельных численных алгоритмов. Новосибирск, 1985. 23 с.
2. Aleeva V.N., Aleev R.Z. High-Performance Computing Using Application of Q-determinant of Numerical Algorithms // Proceedings - 2018 Global Smart Industry Conference, GloSIC 2018. 2018.
3. Aleeva V. и др. Software Q-system for the Research of the Resource of Numerical Algorithms Parallelism // Communications in Computer and Information Science. 2019.
4. Алеева В.Н., Алеев Р.Ж. Применение Q-детерминанта численных алгоритмов для параллельных вычислений // Параллельные вычислительные технологии - XIII международная конференция, ПаВТ’2019, г. Калининград, 2-4 апреля 2019 г. Челябинск: Издательский центр ЮУрГУ, 2019. С. 133-145.
5. Martin R.C. Clean Architecture: A Craftsman’s Guide to Software Structure and Design // Prentice Hall. 2017.
6. TOP500.org. OPERATING SYSTEM FAMILY / LINUX [Электронный ресурс] // TOP500.org. 2019. С. 1. URL: https://www.top500.org/statistics/details/osfamZ1(дата обращения: 29.05.2020).
7. OMG. Unified modeling language (OMG UML) // Object Manag. Gr. 2017.
8. Fowler M. UML Distilled: A Brief Guide to the Standard Object Modeling Language // Pearson Paravia Bruno Mondad. 2004.
9. Gamma E. и др. Design patterns: Abstraction and reuse of object- oriented design // Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). 1993.
10. Stroustrup B. the C++ Programming Language 4Th Edition // The C ++ Programming. 2013.
11. MPI Forum. Сайт MPI Forum [Электронный ресурс]. 2020. URL: https://www.mpi-forum.org/(дата обращения: 29.05.2020).
12. Meyers S. Effective Modern C++ 42 Specific Ways to Improve Your Use of C++11 and C++14 // O’Reilly Media. 2014.
13. The Qt Company. Qt Coding Style [Электронный ресурс]. 2018. URL: https://wiki.qt.io/Qt_Coding_Style(дата обращения: 29.05.2020).
14. Kitware Inc. Официальный сайт CMake [Электронный ресурс]. 2020. URL: https://cmake.org/(дата обращения: 29.05.2020).
15. Alphabet Inc. Googletest - Google Testing and Mocking Framework [Электронный ресурс]. 2020. URL: https://github.com/google/googletest(дата обращения: 29.05.2020).
16. Prus V. Boost.Program_options documentation [Электронный ресурс]. 2004. URL:
https: //www.boost. org/doc/libs/1_5 8_0/doc/html/program_options .html.
17. Kalicinski M., Redl S. Boost.PropertyTree documentation [Электронный ресурс]. 2013. URL: https://www.boost.org/doc/libs/1_65_1/doc/html/property_tree.html(дата обращения: 29.05.2020).
18. The YAML Project. Официальный сайт YAML [Электронный ресурс]. 2009. URL: https://yaml.org/(дата обращения: 29.05.2020).
19. Beder J. A YAML parser and emitter in C++ [Электронный ресурс]. 2020. URL: https://github.com/jbeder/yaml-cpp(дата обращения: 29.05.2020).
20. Официальный сайт Doxygen [Электронный ресурс]. URL: https://www.doxygen.nl/(дата обращения: 29.05.2020).
21. Исходный код компилятора [Электронный ресурс]. 2020. URL: https://github.com/yuferovalex/qc(дата обращения: 29.05.2020).
22. Исходный код виртуальной машины [Электронный ресурс]. 2020. URL: https://github.com/yuferovalex/qvm(дата обращения: 29.05.2020).


Работу высылаем на протяжении 30 минут после оплаты.




©2026 Cервис помощи студентам в выполнении работ