В наше время множество задач моделирования связано с обработкой больших данных. Большое количество данных и сложность вычислений приводят к необходимости разработки параллельных реализаций известных алгоритмов и проектирования новых. В вычислительной химии есть множество задач, которые требуют длительных вычислений.
В химических расчетах учитываются температура, давление, положение атомов веществ и прочие параметры. Для расчета химических свойств могут использоваться различные методы. Одним из таких методов является метод молекулярной динамики.
Молекулярная динамика основывается на классической ньютоновской механике, что дает возможности моделировать системы с миллионами атомов. Расчеты выполняются на уровне молекул и их взаимодействий. Среди систем, основанных на методе молекулярной динамики, при моделировании биомолекул часто используется Gromacs.
Gromacs - это пакет программ для моделирования процессов химии и физики, в основе которого лежат методы молекулярной динамики. Он предназначен для моделирования и анализа атомно -молекулярных структур. Этот программный продукт написан на C++ с использованием технологий OpenMP и MPI, что позволяет ускорить вычисления с помощью запуска на суперкомпьютере [1-4].
Пакет программ Gromacs содержит множество градиентных методов минимизации [2]. Однако, с использованием неградиентных методов, предположительно, можно добиться ускорения расчета минимизации потенциальной энергии молекулярных систем. В частности, Лаборатории Многомасштабного моделирования многокомпонентных функциональных материалов в ФГАУ ВО ЮУрГУ понадобилась реализация симплекс - метода Нелдера - Мида, реализация которого отсутствует в пакете Gromacs. Поэтому актуальной является задача написания функции, реализующей параллельный алгоритм Нелдера - Мида, и встраивание его в пакет Gromacs.
Цель и задачи исследования
Целью работы является параллельная реализация симплекс -метода Нелдера - Мида в пакете Gromacs.
В ходе работы необходимо было решить следующие задачи:
1) провести обзор работ, связанных с симплекс -методом Нелдера - Мида;
2) рассмотреть структуру программного пакета Gromacs;
3) разработать параллельную реализацию метода в пакете Gromacs;
4) провести вычислительные эксперименты по анализу эффективности разработанного алгоритма.
Структура и объем работы
Работа состоит из введения, четырех глав, заключения и библиографии. Объем работы составляет 40 страниц, объем библиографии - 21 источник.
Содержание работы
В первой главе «Анализ предметной области» рассматриваются алгоритм Нелдера - Мида, структура системы Gromacs и порядок работы с этой системой, приводится обзор работ, связанных с параллельной реализацией симплекс -метода Нелдера - Мида.
Во второй главе «Разработка алгоритма Нелдера - Мида» приводятся инициализация симплекса, разработка последовательного алгоритма в пакете Gromacs, распараллеливание алгоритма Нелдера - Мида, реализация параллельного алгоритма, а также оценка сложности написанного алгоритма.
В третьей главе «Вычислительные эксперименты» приводятся описание условий проведения экспериментов и их результаты
В ходе выполнения выпускной квалификационной работы были выполнены следующие поставленные задачи:
1) выполнен обзор работ, связанных с параллельной реализацией симплекс-метода Нелдера - Мида;
2) спроектирован параллельный алгоритм Нелдера - Мида;
3) спроектированный алгоритм реализован в пакете Gromacs;
4) выполнены вычислительные эксперименты, показывающие масштабируемость реализованного алгоритма.