Л.И. Воронова, А.С. Трунов, В.И. Воронов
РАЗРАБОТКА МЕТОДОВ ПАРАЛЛЕЛЬНОГО РАСЧЕТА КОРРЕЛИРОВАННОЙ МНОГОЧАСТИЧНОЙ СИСТЕМЫ НА ГРАФИЧЕСКОМ ПРОЦЕССОРЕ*
В статье рассматривается разработка методов высокопроизводительных вычислений, реализуемых на сетевом вычислительном ресурсе РГГУ (информационно-исследовательская система ИИС «MD-Slag-Melt»)1, позволяющих исследовать структуру и свойства коррелированных систем многих частиц методом молекулярной динамики. Рассмотрены элементы модели неоднородных дескрипторов для распределенного МД-моделирова-ния, на основе которой строятся методы распределения расчетных потоков данных. Подробно описаны метод равномерной загрузки вычислителей и метод параллельного расчета коррелированной системы N-частиц на графическом процессоре с использованием технологий MPI и CUDA.
В заключение представлены тестовые результаты компьютерных экспериментов.
Ключевые слова: параллельные алгоритмы, высокопроизводительные вычисления, автоматизированные системы научных исследований, молекулярная динамика, шлаковые расплавы.
Введение
В настоящее время особое значение для повышения эффективности научных исследований приобретает автоматизация научного эксперимента, которая позволяет получать достаточно точные и полные модели исследуемых объектов и явлений, значительно сократить время проведения эксперимента, изучать сложные объекты и процессы.
© Воронова Л.И., Трунов А.С., Воронов В.И., 2013
* Работа выполнена при финансовой поддержке Министерства образования и науки Российской Федерации, проект 14.132.21.1792.
Одним из приоритетных направлений современной науки является создание новых металлических материалов с заранее заданными свойствами. В этой области широко применяется компьютерное моделирование (КМ), в том числе метод молекулярной динамики, позволяющий определять целый комплекс свойств (структурные, термодинамические, транспортные) и исследовать взаимосвязи наноструктуры и физико-химических свойств.
С точки зрения математической формализации эти системы описываются классом моделей коррелированных систем М-частиц, требующих специфических методов расчета.
Особенности предметной области таковы, что в настоящее время при последовательном моделировании удается просчитывать за реальное время взаимодействие и групповое поведение систем, содержащих в лучшем случае десятки тысяч частиц. Однако существует ряд задач, в частности связанных с определением пространственных наноразмерных неоднородностей, для которых необходимо увеличение размерности модельной системы до миллиона частиц. Промоделировать подобную систему на локальном компьютере в последовательном режиме практически не удается, т. к. это связано с большими временными затратами: эксперимент может занять несколько месяцев.
Для построения адекватных моделей и получения практически значимых результатов моделирования коррелированных систем М-частиц со сложным многочастичным взаимодействием необходимо увеличение числа модельных частиц до 105-107, что требует разработки и внедрения новых методов высокопроизводительных вычислений.
Постановка задачи
В рамках компьютерного моделирования выделим важный класс задач, в которых возможно распределять вычисления для совокупности объектов, находящихся в определенных отношениях друг с другом. К этому классу относятся и задачи моделирования коррелированных систем М-частиц методом молекулярной динамики (МД).
В физике под коррелированной системой понимается система взаимодействующих объектов (частиц), в которой часть характеристик индивидуального объекта или системы в целом зависит от совокупности характеристик всех остальных объектов. Каждая модельная частица имеет набор сохраняющихся и переменных атрибутов.
В этом случае МД-моделирование представляет собой численное решение краевой задачи Коши; это означает, что в момент времени 1=0 задается начальное состояние системы в некоторой ограниченной области пространства (расчетная область), на поверхности которой поддерживаются заданные граничные условия. Моделирование состоит в прослеживании временной эволюции этой конфигурации. Основной частью вычисления является цикл по временному шагу, в котором состояние физической системы изменяется по времени на малый шаг Д1.
Состояние физической системы определяется атрибутами конечного ансамбля частиц, а эволюция системы определяется законами взаимодействия этих частиц.
Модель неоднородных дескрипторов для распределенного МД-моделирования
В настоящее время разработан ряд программных комплексов, реализующих методы распределенного расчета задач класса М-частиц2Д4. Эти методы основаны на расчете двухобъектных отношений5,6. Предметом этой статьи являются методы, основанные на двухобъектных отношениях с учетом трехобъектных и многообъектных отношений7,8,9.
Особенности концептуальной модели предметной области требуют разработки математической модели, которая обеспечила бы высокопроизводительные вычисления для коррелированных систем со сложным многочастичным взаимодействием, содержащих 105-107 частиц. В связи с этим авторами разработана модель неоднородных дескрипторов для распределенного МД-моделирования коррелированной системы М-частиц.
Основными элементами модели, обеспечивающими возможность распределения расчетов без детализации всех взаимодействий между частицами, являются объект и дескриптор. Под объектом понимается некоторая совокупность частиц исходной коррелированной системы и отношений между ними, выделяемая по определенным правилам и обеспечивающая возможность декомпозиции системы для распределения и распараллеливания расчетов.
Объекты идентифицируются с помощью неоднородных дескрипторов, которые содержат разнотипные элементы описания выделенного объекта, необходимые для распределения расчетов.
Таким образом, система - это совокупность объектов, описываемых неоднородными дескрипторами, расчет которых можно
распределять по совокупности вычислителей, комбинируя полученные результаты по определенной схеме.
На основе концептуальной модели МД-метода и тщательного анализа программного кода legacy application - локального МД-приложения101 построены наборы дескрипторов, описывающих бизнес-логику МД-приложения с точки зрения разделения его кода на блоки, пригодные для распределения.
Выделено два класса: одночастичные дескрипторы (D1s(i), D1v(i)) и агрегаторы (двух- и трехчастичные (D£2(i), D£3(i)) дескрипторы). Оба класса предполагают возможность параллельного расчета дескрипторов на разных вычислителях. Однако если одночастичные дескрипторы можно произвольно распределять по вычислителям, то агрегаторы (содержат элементы, описывающие перекрестные отношения разных порядков между одночастичны-ми дескрипторами и/или агрегаторами) являются «зависимыми» от одночастичного дескриптора и рассчитываются на том же вычислительном устройстве, где и «родительский» одночастичный дескриптор.
Таким образом, предложенный подход позволяет отвлечься от конкретного наполнения элементов дескрипторов, перенести акцент с описания физических взаимодействий в системе на информационное описание перераспределения потоков данных между дескрипторами.
Метод равномерной загрузки вычислителей
Для обеспечения параллельного расчета коррелированной системы N-частиц авторами разработан метод равномерной загрузки вычислителей в однородной вычислительной среде, в которой каждый вычислитель обладает одинаковой производительностью и имеет свою независимую память.
Равномерная загрузка подразумевает разделение множества на подмножества с мощностью, равной к = N/p, где N - количество одночастичных дескрипторов системы, p - количество вычислителей, выполняющих расчет. Эффективной считается загрузка, при которой вычислители завершают расчет дескрипторов одновременно.
Конечной целью расчета каждого вычислителя является получение новых значений элементов одночастичных дескрипторов {Dlv(i)}, рассчитываемых по формуле (1). Для получения новых значений элемента F. е Dlv(...) требуется расчет элементов f е
D£2(i), в которых идет пересчет отношений i и j элемента, для всех фиксированных i со всеми j и где i * j
F е Dlv(i) = jfj е D£2(i). (1)
Эта часть расчета имеет квадратную зависимость от числа дескрипторов {Dlv(i)} и является самой затратной по времени в процессе моделирования системы. Сократить время расчета можно за счет уменьшения обсчитываемых отношений между дескрипторами.
Для этого применяется алгоритм «диагональной матрицы», в котором элемент f е D£2(i) = - f е D£2(i). В этом случае время расчета Dlv{F.} сокращается в два раза, а количество обсчитываемых отношений становится равным (N(N-1))/2. На рис. 1 наглядно отображен расчет элементов f е D£2(i) с использованием алгоритма «диагональной матрицы».
В этом случае количество отношений, которые нужно обсчитывать для накопителя £/2 е D£2(1), равно N-1, а для £/2 е D£2(N), равно 0. Следовательно, если формировать рассчитываемые подмножества дескрипторов {Dlv(i)} для каждого вычислителя последовательными диапазонами с мощностью N/p, то загруженность вычислителей становится неравномерной. Для равномерной загрузки вычислителей разработан встречный алгоритм выборки дескрипторов в диапазон.
i j i1 i2 i n
j1 - j j1i2 - j j1in
j2 fj - j 2n
j J n 4 4
Рис. 1. Применение алгоритма «диагональной матрицы» для расчета элементов двухчастичного дескриптора _0£2(г)
Подмножества одночастичных дескрипторов {Б/у(1)}, рассчитываемых каждым вычислителем, формируются по схеме, отображенной на рис. 2.
Все множество дескрипторов разбивается на два интервала [В/у(1х), ВЬ(1Ы/2)] и [Д/у(г^/2+1), В/у(1ы)]. Внутри каждого интервала дескрипторы распределяются по номерам, где 11 - номер первого дескриптора, 1Ы - номер последнего дескриптора. Количество дескрипторов, содержащихся в рассчитываемом подмножестве и передаваемых каждому вычислителю, равно к.
[В/у(1), В/у(»)]
В/у(1) ВЦ2) В/v(3) . . . В/у(М/2)
1 . . . к/2
Вычислитель Р4
к/2+1 . . . к
1 . . . к/2
Вычислитель Р2
к/2+1 . . . к
1 . . . к/2
. . .
к/2+1 . . . к
1 . . . к/2
Вычислитель Р п
к/2+1 . . . к
вЦЛО . . . В/г(ЛТ/2 + 3) ВЦЛ//2 + 2) ВЬ(Ы/2 + 1)
[ВЬ(Ы/2 + 1), ВЫ(Щ
Рис. 2. Формирование подмножеств одночастичных дескрипторов (В/у(г)| с применением встречного расчета
Из номеров дескрипторов, находящихся на интервале [ВЬ(1{), В/у(1Ы/2)], формируется первая половина подмножества, а из номеров интервала [В/у^ ), В/у(1}] формируется вторая половина подмножества.
Выборка дескрипторов происходит поочередно: сначала из первого интервала, начиная с ВЬ(1), затем из второго интервала в обратном направлении с В/у(1ы). Каждое подмножество получает следующий дескриптор через шаг, равный р. На рис. 2 отображено
распределение дескрипторов между вычислителями с использованием метода равномерной загрузки.
Метод равномерной загрузки вычислителей коррелированной системы М-частиц является оптимальным для однородной вычислительной среды и применяется для параллельного расчета дескрипторов в модели с распределенной памятью. Реализация данного метода в гетерогенной среде, когда совместно используются вычислители разные по типу и производительности, требует доработки, так как из-за разницы в производительности более мощные вычислители, выполнив свои расчеты, простаивают.
В настоящее время разработанный метод равномерной загрузки вычислителей для параллельного расчета коррелированной системы М-частиц проходит апробацию в программном комплексе «МБ-8ЬЛО-МЕЬТ»12-13.
Метод параллельного расчета коррелированной системы N-частиц на графическом процессоре
Применение вычислителей на основе графических процессоров (GPU) при параллельном расчете дескрипторов позволит существенно уменьшить время моделирования системы N-частиц.
В разработанном авторами методе учитываются особенности архитектуры графических процессоров NVIDIA и технологии CUDA. Параллельный расчет выполняется большим числом нитей, сгруппированных в блоки. В отличие от вычислителей, реализующих расчеты на центральных процессорах, GPU содержит семь видов памяти, различающихся по размеру, возможности записи и скорости чтения. Графический процессор не выполняет параллельный расчет самостоятельно, функции запуска расчета, отслеживания хода выполнения расчета и передачи дескрипторов в память GPU выполняет центральный процессор.
На рис. 3 представлен алгоритм параллельного расчета одноча-стичных дескрипторов на GPU.
Все множество значений элементов дескрипторов {Dlv(i)} передается в глобальную память (обладает большой вместимостью) GPU из-за большого количества передаваемых данных. В константную и текстурную память передаются дескрипторы {Dls(i)}, что позволяет разгрузить глобальную память.
дескрипторы (ОЩ)}
дескрипторы (О!у()}
Распределение дескрипторов (О!у()}и (О1э(1)} между нитями GPU
Выполняется на CPU
012(1}
Нить (1,1)
« «
Нить (1,1)
Блок 1
о о с
В22(Ь*£)-(И) Нить (1,Ь)
I \Блок Ь Сетка
Глобальная память
«
в О
Нить (t,b)
Разделяемая и константная память
Выполняется на вРУ
--------->--------
Передача (йк()} в память СРи
Выполняется на CPU
Рис. 3. Алгоритм параллельного расчета одночастичных дескрипторов на ОРИ
Центральный процессор формирует специальную сетку, состоящую из блоков (Ь), в которых определяется количество нитей необходимых для расчета. Разделение множеств дескрипторов на подмножества и передача их на нити реализуется с помощью метода равномерной загрузки вычислителей.
Каждая нить производит расчет одного двухчастичного ^£2(г)-агрегатора и на основе полученных результатов обновляет значения элементов одночастичных векторных дескрипторов.
Для расчета двухчастичных {0£2(г)}-агрегаторов на графическом процессоре применяется алгоритм «диагональной матрицы». Так как память для всех вычислителей одна, то возможны кон-
фликты записи, когда вычислители обращаются к одному и тому же значению элемента дескриптора. Для_этого на каждой итерации результат расчета значений элемента f е D£2(j) передается в специальный двумерный накопитель. Так же на каждой итерации цикла производится синхронизация. Расчет будет возобновлен только_после прохождения одной итерации расчета значений элемента f е DY2(i) всеми нитями.
Тестирование
Для оценки эффективности разработанного метода проведен ряд экспериментов, имитирующих расчет коррелированной системы N-частиц. В экспериментах сравнивается время, затраченное на проведение локального варианта расчета коррелированной системы N-частиц, и параллельный расчет с технологией CUDA. Дескрипторы заполняются тестовыми значениями элементов. Тестирование модели, в основе которой заложен расчет с использованием технологии CUDA, проведено на графическом процессоре GForceGTS 450. Результаты компьютерных экспериментов представлены в табл. 1.
Тестирование реализованных методов производилось на кластере, состоящем из 16 вычислителей Intel Core 2 Duo E6800, а также на видеокарте GEFORCE GTS 450. В табл.1 представлены результаты расчетов коррелированной системы N-частиц с использованием технологии MPI, а в табл. 2 - с использованием технологии CUDA.
Таблица 1
Результаты расчетов коррелированной системы N-частиц, технология MPI
Кол-во частиц 10240 50176 250880 401408
Кол-во вычислителей Время расчета, с
2 0,29 7,89 101 361
4 0,23 7,6 76 217
8 0,15 5,1 49 137
16 0,02 4,2 28 71
Таблица 2
Результаты расчетов с использованием технологии CUDA
Кол-во частиц 10240 50176 250880 401408
Время расчета, с 0,02 0,14 3,53 9,1
Согласно результатам тестирования, серьезное ускорение наблюдается при расчете системы на графическом процессоре GTS 450. Также в модели параллельного расчета коррелированной системы N-частиц для графического процессора заложены процедуры, позволяющие хранить данные в быстрой разделяемой и константной памяти GPU, что существенно сокращает время проведения моделирования.
В настоящее время модель распределенных вычислителей проходит апробацию в программном комплексе ИИС «MD-SLAG-MELT»14-15.
Выводы
Описанные в статье модели и методы, разработанные для реализации высокопроизводительных вычислений, позволяют существенно расширить круг решаемых задач в рамках молекуляр-но-динамического моделирования коррелированных многочастичных систем.
Применение этих моделей для legacy application, используемых в такой предметной области, как физическая химия оксидных расплавов, позволит резко увеличить размерность модельных систем и адекватность модельных результатов.
Внедрение разработанных методов высокопроизводительных вычислений в программный комплекс ИИС «MD-SLAG-MELT» предоставляет широкому кругу исследователей возможность удаленного доступа к проведению компьютерного эксперимента и физико-химическим результатам, обладающим прогнозными возможностями.
Примечания
См.: Информационно-исследовательская система «MD-SLAG-MELT» [Электронный ресурс]. URL: http://nano-md-simulation.com (дата обращения: 30.04.2013).
См.: SAGE MD2 [Электронный ресурс]. URL: http://www.sagemd.com/htmls/ about_sagemd.htm (дата обращения: 30.04.2013).
См.: HyperChem [Электронный ресурс]. URL: http://www.hyper.com/ (дата обращения: 30.04.2013).
См.: XMD (Molecular Dynamics for Metals and Ceramics) [Электронный ресурс] URL: http://xmd.sourceforge.net/ (дата обращения: 30.04.2013). См.: Brown, W.M., Kohlmeyer, A., Plimpton, S.J., Tharrington, A.N. Implementing molecular dynamics on hybrid high performance computers - Particle-particle particle-mesh // Computer Physics Communications. 2012. Vol. 183. Issue 3. March. P. 449-459.
См.: Le Grand, S., Gotz, A.W., Walker, R.C. SPFP: Speed without compromise -A mixed precision model for GPU accelerated molecular dynamics simulations // Computer Physics Communications. 2013. Vol. 184. Issue 2. February. P. 374-380.
См.: Воронова Л.И., Григорьева М.А., Воронов В.И. Разработка методов компьютерного моделирования наноструктуры многокомпонентных расплавов // Фундаментальные исследования. 2011. № 8 (3). С. 617-622. См.: Воронова Л.И., Трунов А.С. Оптимизация параллельного алгоритма подсистемы распределенного молекулярно-динамического моделирования // Межотраслевая информационная служба. 2011. № 3. С. 1-12. См.: Воронова Л.И., Григорьева М.А. Разработка информационной модели физико-химических свойств расплава для исследовательского программного комплекса MD-SLAGMEL // Межотраслевая информационная служба. 2011. № 2. С. 30-36.
См.: Воронова Л.И., Григорьева М.А., Воронов В.И., Трунов А.С. Программный комплекс «MD-SLAG-MELT» для моделирования наноструктуры и свойств многокомпонентных расплавов // Расплавы. 2013. № 2. С. 1-16. См.: Voronova L.I., Grigorjeva M.A., Voronov V.I., Trunov A.S. Computer simulation of the polymerizable oxide melts nanostructure using the descriptor-graph model // Materials Science and Metallurgy Engineering. 2013. № 1. P. 1-12 [Электронный ресурс]. URL: http://pubs.sciepub.com/msme/1/1/1/#12/ (дата обращения: 30.04.2013).
См.: Voronova L.I., Voronov V.I. "The Research-Information System 'MD-SLAG-MELT". Certificate of state registration of computer programs № 2012615018 from 05.06.2012.
См.: Трунов А.С., Воронова Л.И. «Подсистема распределенного молекуляр-но-динамического моделирования информационно-исследовательской сис-
3
4
5
6
7
8
9
10
11
12
темы "MD-SLAG-MELT"». Свидетельство о государственной регистрации программы для ЭВМ, № 2012615017 от 05.06.2012.
14 Там же.
См.: Воронова Л.И., Григорьева М.А., Воронов В.И., Трунов A.C. Программный комплекс «MD SLAG MELT» информационно-исследовательской системы «Шлаковые расплавы» версии 10.0 // Деп. в ВИНИТИ РАН, 2012. № 29-В2012. C. 16.
15