Тема: Моделирование систем эстафетной схемы с использованием распараллеленного алгоритма
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Введение 5
1 Теоретические сведения 8
1.1 Характеристика объекта исследования 8
1.2 Математическая модель описания процессов 13
2 Проектирование алгоритмов и их реализация 19
2.1 Разработка последовательного алгоритма 19
2.2 Реализация разработанного алгоритма 20
2.3 Разработка алгоритма с методом распараллеливания OpenMP 26
2.4 Реализация распараллеливания последовательного алгоритма 28
3 Сравнительный анализ алгоритмов 31
3.1 Тестирование реализованных алгоритмов 31
3.2 Анализ скорости выполнения программ 33
3.3 Анализ нагрузки системы при выполнении программ 36
3.4 Анализ ускорения выполнения программ по Закону Амдала 42
Заключение 46
Список используемых источников 48
📖 Введение
Во внутренней баллистике существуют различные схемы, требующие подробного изучения. Для рассмотрения, в данной выпускной квалификационной работе была выбрана одна из них - эстафетная схема метания. Данная схема интересна своим решением в вопросе повышения скорости метаемого элемента, по которому заряд патрона делится на две или три части. При разделении заряда на две части патрон называют бинаром, на три части - тринаром.
В простом варианте рассмотрения данной схемы с бинаром, используют пластмассовую гильзу с воспламенителем, в которую засыпают основную часть пороха, а сверху устанавливают картонную диафрагму, разделяющую на две части патрон, где во вторую часть засыпают дополнительную часть пороха из того же или другого вещества.
При данном подходе необходимо проводить множество различных расчетов, связанных с варьированием величиной частей пороха, расположением диафрагмы, материалами метаемых элементов и многих других параметров.
Для улучшения работы над данными расчетами проводится множество исследований в разработке приложений, решающих ряд вопросов с точностью и затраченным временем. На данный момент, существуют разработанные на различных языках программирования приложения, использующие разные виды технологий.
Большую часть существующих разработанных алгоритмов занимают последовательные, однако благодаря тенденциям использования всех возможных ресурсов персональных компьютеров, можно заметить, что актуальным также становится и алгоритм с многопоточным программированием, с использованием распараллеливания.
Существующая на данный момент модель эстафетной схемы в последовательной реализации хорошо выполняет поставленные перед ней задачи, а также затрачивает относительно малое время для расчетов. Для уменьшения затраченного времени также были проведены исследования с использованием технологии OpenCL на языке C, которая предназначена для распараллеливания алгоритма посредством графического и центрального процессоров. Большие плюсы в данной технологии, как и в технологии Cuda для C/C++, что все математические расчеты, загружающие центральный процессор, как элементарные задачи уходят на графический, благодаря чему CPU может выполнять весь остальной алгоритм. Благодаря такому распределению, мы получаем как минимум 2 параллели с мощными ресурсами для вычислений.
В данной выпускной квалификационной работе будут рассматриваться последовательный алгоритм на языке C++ и алгоритм с использованием технологии OpenMP, что позволит решить существующую проблему вычислений при использовании эстафетной схемы в баллистике, не затрагивая графический процессор.
Объект исследования - математические расчеты, необходимые для получения выходных данных при различных входных параметрах.
Предметом исследования являются - параллельные алгоритмы, повышающее скорость вычислений.
Цель исследования - получение более высокой скорости обработки входных параметров и получение выходных данных при математическом расчете.
Задачи исследования:
• рассмотреть теоретические сведения по исследуемому объекту;
• рассмотреть существующие решения проблемы и провести их анализ;
• спроектировать последовательный алгоритм для расчетов;
• спроектировать алгоритм с технологией распараллеливания для расчетов;
• провести анализ эффективности двух алгоритмов;
В первом разделе данной выпускной работы будут рассмотрены все теоретические аспекты, связанные с математическими расчетами и моделью эстафетной схемы. Во втором разделе будет приведено описание работы над алгоритмами. Заключительным звеном будет являться сравнение двух алгоритмов (последовательного и с использованием OpenMP) и выявление их положительных и отрицательных сторон.
✅ Заключение
Во время проведенных исследований, были изучены материалы, связанные с математическими расчетами, позволяющими получить значения выходных данных по исходным параметрам при использовании эстафетной схемы.
Цель исследования, связанная с ускорением вычислительной работы алгоритма над входными и выходными значениями математической модели, была достигнута благодаря выполнению всех поставленных в данной работе задач.
Таким образом, были рассмотрены существующие решения проблемы вычислительного характера, такие как время, затрачиваемое на выполнение алгоритма, и необходимые для него используемые ресурсы.
По существующей математической модели, были разработаны и реализованы алгоритмы с последовательным и параллельным выполнением расчетов. Спроектированные программные реализации были написаны на языке программирования высокого уровня C++ в кроссплатформенной свободной интегрированной среде разработки приложений NetBeans IDE. Для работы с полученными проектами и анализа их эффективности была выбрана операционная система Ubuntu MATE, а также использованы вспомогательные инструменты ОС - Nmon.
Для разработки программы с распараллеливанием последовательного алгоритма была выбрана технология OpenMP, которая не задействует графический процессор, как это было в других научных исследованиях с целью ускорения работы над расчетами. Этот выбор технологии предоставляет возможность повысить скорость вычислительных процессов на ЭВМ, не имеющих мощных ресурсов GPU.
Как показал анализ эффективности двух разработанных программ, даже без возможности подключения технологий с использованием графических процессоров, можно увеличить скорость выполнения расчетов приблизительно в 2,1 раза, согласно Закону Амдала, и уменьшить нагрузку на CPU более чем в 1,5 раза, используя достаточно простую технологию распараллеливания OpenMP.
По полученным расчетам, было доказано, что повышения производительности алгоритма будет зависеть от доли последовательного программного кода и количества используемых процессоров.
Таким образом, в данной выпускной квалификационной работе были отображены все основные моменты математической модели метания элемента по эстафетной схеме, а также разработаны и программно реализованы алгоритмы с последовательным и параллельным выполнением вычислений.
Благодаря проведенным тестам и расчетам по Закону Амдала, была доказана эффективность работы распараллеленного алгоритма для моделируемой системы эстафетной схемы.





