Технология использования гибридных параллельных алгоритмов в молекулярной динамике
Использование метода молекулярной динамики для детализированных исследований на субмолекулярном уровне особенностей фазовых переходов и механизма формирования наноструктур. Термомеханические характеристики наноструктур. Создание параллельных алгоритмов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 29.10.2018 |
Размер файла | 444,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Институт теоретической и прикладной механики им. С.А. Христиановича СО РАН, г. Новосибирск
Технология использования гибридных параллельных алгоритмов в молекулярной динамике
А.В. Уткин, В.М. Фомин
М.С. Ожгибесов
Аннотация
Метод молекулярной динамики дает хорошую возможность для детализированных исследований на субмолекулярном уровне особенностей фазовых переходов и механизма формирования наноструктур, а также позволяет получать их термомеханические характеристики. Одним из наиболее сложных моментов моделирования в рамках метода молекулярной динамики является значительное расчетное время задачи. В представленной работе рассматриваются различные подходы к созданию высокоэффективных параллельных алгоритмов, позволяющие как существенно ускорить сам процесс численного расчета, так и увеличить размер моделируемой системы.
Ключевые слова: Молекулярная динамика, параллельные алгоритмы, CUDA.
Основное содержание исследования
Появление гибридных вычислительных кластеров обусловило необходимость разработки новых алгоритмов, которые используют технологию CUDA для проведения части ресурсоемких расчетов на ГПУ, а для связи между различными ГПУ, физически принадлежащих разным узлам кластера, используется технология MPI. В представленной работе рассматривается подобный гибридный алгоритм, позволяющий объединить технологии CUDA и MPI в одной программе. Было проведено сравнение эффективности созданного кода как с программой, использующей только интерфейс MPI, так и с CUDA программой предназначенной для работы только с одним ГПУ. Тестирование алгоритмов и программ проводилось на физической системе, описывающей столкновение двух медных кластеров (Рис.1,2). Взаимодействие атомов меди описывалось моделью погружённого атома (Embedded Atom Model - EAM), которая хорошо зарекомендовала себя для молекулярно-динамического моделировании различных металлов [1]. Число атомов системы составляло 243644 и 709214 атомов. Интегрирование уравнения движений поводилось с использованием схемы Верле второго порядка точности по временному шагу [2]. Шаг по времени при численном моделировании составлял 10-16 с.
Расчет сил межатомного взаимодействия является наиболее трудоемкой, с точки зрения вычислительных ресурсов, частью молекулярно-динамического моделирования, поскольку при расчете сил действующей на атом i необходимо учитывать вклад со стороны всех соседних атомов.
Существует ряд общепринятых методик оптимизации расчетов сил, которые позволяют значительно сократить время расчета. [2] К наиболее часто используемым способам оптимизации можно отнести список Верле (список соседей), метод связанных списков (Cell linked list method-CLLM), а также различные гибридные комбинации метода связанных списков и списка Верле (гибридный список Верле). Самой очевидной гибридной комбинацией является метод, где список Верле для атома i создается не на основе перебора всех атомов системы, а на основе анализа расстояния до атомов в ячейке, которой принадлежит атом i и расстояния до атомов в соседних 26 ячейках. Тем самым исключается одна из основных проблем, связанных с необходимостью перебора всего набора атомов системы, при построении списка Верле.
Рис.1 Столкновение медных кластеров. Начальная скорость кластеров 350 м/с.
Рис.2 Продольный разрез столкнувшихся кластеров в момент времени 10 пс. Желтым цветом обозначены атомы с наибольшей кинетической энергией.
алгоритм наноструктура субмолекулярный уровень
Создание вычислительного кода проводилось на основе уже апробированной ранее MPI программы. Данная программа основана на разбиении системы атомов по пространству (одномерная параллелизация с дополнительным алгоритмом динамической балансировки). Поскольку расчет силовых взаимодействий является самой трудоемкой частью вычислений, именно эта часть переносилась с ЦПУ на ГПУ. Так как операция копирования данных с ЦПУ на ГПУ отнимает очень много времени, было принято решение создавать метод связных списков непосредственно на ГПУ, а не копировать уже готовые массивы данных из основной памяти компьютера. Соответственно, расчет сил проводился на ГПУ при помощи метода связных списков (26 соседних ячеек).
Очевидным недостатком данной схемы является необходимость копирования большого количества информации между ЦПУ и ГПУ на каждом расчетном шаге, с целью организации обмена данными между ГПУ о перемещении атомов внутри расчетной области. Меняющееся на каждом шаге число атомов NЦПУ на каждом вычислительном ядре ЦПУ делает невозможным использование списков Верле.
Было выполнено сравнительное тестирование созданных программ. Общее время расчета составляло 0.005 нс. - 50000 шагов 10-16 с. Из представленных в таблице 1 временных зависимостей следует, что для системы состоящей из 243644 атомов, программа основанная только на технологии CUDA и гибридных списках Верле использует меньше всего временных ресурсов (запуск проводился на 1 ГПУ). Гибридная программа MPI+CUDA считает быстрее чем MPI программа почти в два раза (запуск проводился на 9 узлах ЦПУ и 9 ГПУ). При увеличении числа атомов в системе (709214 атомов), самым быстрым вариантом становится гибридная программа MPI+CUDA.
Таблица 1. Время расчета задачи (секунды). * - Обновление списков соседей проводилось каждые 20 шагов. Расчеты проводились на гибридном вычислительном кластере установленном в ССКЦ СОРАН (НКС-30Т+ГПУ, 40 узлов, на каждом 2 Xeon X5670, 3 ГПУ Tesla M 2090).
Число атомов |
MPI (9ЦПУ) |
MPI+CUDA (9ЦПУ+ 9ГПУ) |
CUDA (1 ГПУ) |
|
243644 |
16175 |
8067 |
5269 |
|
709214 |
32156 |
14529 |
16970 |
|
Метод сортировки |
CLLM |
CLLM (26 сосоедних ячеек) |
CLLM+Verlet list* |
Следует отметить, что алгоритм MPI+CUDA несет в себе все недостатки присущие алгоритму MPI, связанные, в первую очередь, с необходимостью обменов между узлами ЦПУ, а также с их неравномерной загрузкой. Как уже упоминалось выше, из-за постоянно меняющегося числа атомов на каждом узле невозможно использовать списки Верле, что также усугубляет ситуацию.
Однако не смотря на все эти недостатки, полученный код будет эффективен при моделировании физических систем состоящих из большого числа атомов. Это связано с тем, что рост числа атомов приведет к неизбежному росту требований к памяти для хранения информации. Возможна ситуация, когда программа основанная только на технологии CUDA и гибридных списках Верле затребует больше ресурсов, чем может обеспечить ГПУ. В случае же использования гибрида MPI+CUDA подобная ситуация маловероятна, поскольку размер запрашиваемых ресурсов будет обратно пропорционален числу используемых ГПУ и ЦПУ.
Таким образом, был разработан и программно реализован гибридный параллельный алгоритм, позволяющий проводить расчеты с использованием ГПУ и ЦПУ (CUDA+MPI). Проведенное сравнение с аналогами, реализованными только на MPI или с использованием CUDA, демонстрирует хорошее быстродействие гибридного кода. Разработанные алгоритмы и программы были использованы для молекулярно-динамического моделирования на микроуровне явлений в твердых телах, при интенсивных внешних нагрузках.
Литература
1. Voter A.F. // Embedded Atom Method Potentials for Seven FCC Metals: Ni, Pd, Pt, Cu, Ag, Au, and Al: Los Alamos Unclassified Technical Report / Los Alamos National Laboratory. - Los Alamos, 1993.9 p. - N. LA-UR 93-3901.
2. M.P. Allen, D.J. Tildesley Computer Simulation of Liquids. Oxford Science Publications, 2000.385p.
Размещено на Allbest.ru
...Подобные документы
Пакетный метод как основной способ выполнения коммуникационных операций, его содержание и предъявляемые требования. Оценка трудоемкости операции передачи данных между двумя узлами кластера. Этапы разработки параллельных алгоритмов (распараллеливания).
презентация [318,1 K], добавлен 10.02.2014Основные модели вычислений. Оценки эффективности параллельных алгоритмов, их коммуникационная трудоемкость. Последовательный алгоритм, каскадная схема и способы ее улучшения. Модифицированная каскадная схема. Передача данных, классификация операций.
презентация [1,3 M], добавлен 10.02.2014Классификация алгоритмов маршрутизации. Методы передачи данных. Характеристики коммуникационной составляющей длительности выполнения параллельного алгоритма. Преимущества и недостатки CTR. Оценки трудоемкости для различных топологий и кластеров.
презентация [875,8 K], добавлен 10.02.2014Математическая основа параллельных вычислений. Свойства Parallel Computing Toolbox. Разработка параллельных приложений в Matlab. Примеры программирования параллельных задач. Вычисление определенного интеграла. Последовательное и параллельное перемножение.
курсовая работа [1,1 M], добавлен 15.12.2010Описание особенностей программирования циклических алгоритмов на С/С++. Использование операторов цикла для организации повтора в программе определенных действий. Создание и реализация программы приближенного вычисления интеграла методом трапеций.
лабораторная работа [86,3 K], добавлен 25.03.2019Использование принципов работы с эластичной сетью для оценки поведения структуры молекулярной машины во время динамического цикла. Основные топологические характеристики для эластичной сети, построенной на основе исследуемой молекулярной машины.
курсовая работа [1,6 M], добавлен 25.06.2017Особенности построения программ реального времени на основе параллельных процессов. Реализация простой программы, которая выводит на экран текст приветствия и завершается. Создание массива из трехсот параллельных процессов, получающих уникальный индекс.
статья [19,8 K], добавлен 08.12.2016Аналитический обзор существующих параллельных интерфейсов. Разработка лабораторного стенда и алгоритмов подпрограмм обмена информацией. Создание программ драйвера ИРПР. Команды микропроцессора, алгоритмы подпрограмм инициализации, ввода и вывода символа.
курсовая работа [255,2 K], добавлен 10.07.2017Понятие вычислительных систем, их классификация по различным признакам. Модели параллельных вычислений PGAS и APGAS. Разработка программного продукта для анализа информационных обменов в параллельных программах на языке IBM X10. Расчёт его себестоимости.
дипломная работа [1,6 M], добавлен 10.06.2013Трудности использования эволюционных алгоритмов. Построение вычислительных систем, основанных на принципах естественного отбора. Недостатки генетических алгоритмов. Примеры эволюционных алгоритмов. Направления и разделы эволюционного моделирования.
реферат [187,4 K], добавлен 21.01.2014Изучение особенностей создания алгоритмов вычислительных задач. Визуальное программирование стандартных компонентов среды программирования Delphi. Технология создания компонента Delphi для решения производственной задачи. Выполнение блок-схемы алгоритма.
курсовая работа [638,0 K], добавлен 30.01.2015Комплексное исследование истории развития, основных понятий, области применения и особенностей генетических алгоритмов. Анализ преимуществ генетических алгоритмов. Построение генетического алгоритма, позволяющего находить максимум целочисленной функции.
курсовая работа [27,9 K], добавлен 23.07.2011Алгоритм - определенная последовательность действий для получения решения задачи, его сущность и свойства. Основные характеристики разветвляющегося, циклического и линейного алгоритмов. Применение базовых алгоритмов при написании программных продуктов.
презентация [221,5 K], добавлен 01.03.2012Основы методологии мониторов и устройства жесткого диска. Планирование работы дисков с использованием мониторов. Теоретические основы параллельного программирования. Микропроцессорная реализация параллельных процессов на основе технологии мониторов.
дипломная работа [3,5 M], добавлен 08.07.2012Знакомство с историей развития многопроцессорных комплексов и параллельных вычислений. Персональные компьютеры как распространенные однопроцессорные системы на платформе Intel или AMD, работающие под управлением однопользовательских операционных систем.
презентация [1,1 M], добавлен 22.02.2016Базовые основы разработки программного обеспечения: его классический жизненный цикл, макетирование, стратегии конструирования, модели качества процессов разработки. Применение параллельных алгоритмов и CASE-системы, критерии оценки их эффективности.
курсовая работа [179,5 K], добавлен 07.04.2015Построение граф-схем и матричной схемы алгоритмов. Формулы фазовых переходов. Выполнение операции "Пересечение" над заданными отношениями базы данных. Принципы взаимосвязи страниц виртуальной памяти с сегментами оперативно запоминающих устройств.
контрольная работа [239,4 K], добавлен 10.10.2015Положения алгоритмов сжатия изображений. Классы приложений и изображений, критерии сравнения алгоритмов. Проблемы алгоритмов архивации с потерями. Конвейер операций, используемый в алгоритме JPEG. Характеристика фрактального и рекурсивного алгоритмов.
реферат [242,9 K], добавлен 24.04.2015Создание схем алгоритмов и составление программы на языке Pascal для вычисления значений заданных функций. Сущность и порядок нахождения значения определенного интеграла. Анализ работы подпрограмм. Разработка тестов для проверки правильности алгоритмов.
контрольная работа [831,0 K], добавлен 24.11.2013История появления эволюционных алгоритмов. Нейрокомпьютерные исследования в России. Реализация генетических алгоритмов. Расчет эффективности процедур поиска конкурирующей процедуры. Schema и теорема шим. Примеры использования нейросетевых технологий.
курсовая работа [43,0 K], добавлен 20.10.2008