Проектирование модуля автоматического распределения нагрузки на графический процессор для вычислительной подсистемы программного комплекса "Md-slag-melt"

Подсистема распределенного молекулярно-динамического моделирования. Модель распределения нагрузки, основанная на проведении запросов к вычислительной системе, с целью получения ее параметров, и соотношения возможностей с требованиями пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 25.02.2019
Размер файла 459,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Проектирование модуля автоматического распределения нагрузки на графический процессор для вычислительной подсистемы программного комплекса «md-slag-melt»

Филатов А.М., Трунов А.С.

Московский Технический Университет Связи и Информатики Москва, Россия

Унаследованный программный комплекс MD-SLAG-MELT, реализует компьютерные эксперименты над большими объемами данных, он состоит из множества различных программных модулей, реализующих задачи молекулярной динамики. Такие прикладные задачи в процессе решения используют большие массивы данных, и как следствие, требуют больших временных затрат. Для решения данной проблемы были применены методы высокопроизводительных вычислений с использованием графического процессора, являющегося многопроцессорной системой, позволяющей существенно сократить время компьютерного эксперимента.

Одним из модулей системы является подсистема распределенного молекулярно-динамического моделирования. Данная подсистема состоит из приложений, реализующих параллельные расчеты на графическом процессоре с использованием технологии nVidia CUDA, базы данных с результатами проведенных экспериментов и приложения по автоматической балансировке нагрузки на вычислители. Данная подсистема не рационально использует доступные мощности графического процессора, поэтому было необходимо разработать модуль, который позволит автоматически балансировать нагрузку, на доступном пользователю оборудовании. Построенная модель распределенной вычислительной подсистемы представлена на рисунке 1.

Основным компонентом подсистемы распределенного молекулярно-динамического моделирования будет являться приложение по автоматической балансировке нагрузки между доступными вычислителями. Пользователю также дана возможность корректировать нагрузку между вычислителями вручную, задавая самостоятельно нагрузку для каждого вычислителя.

Модель распределения нагрузки основана на проведении запросов к вычислительной системе, с целью получения её параметров, и соотношения доступных возможностей с требованиями пользователя. Запросы производятся с помощью утилиты CudaInfo. Был создан проект, позволяющий проводить эксперименты с вычислениями парных взаимодействий между объектами в системе. На основе полученных данных из утилиты и экспериментальных данных проекта была выстроена модель определения максимально допустимых размеров системы.

Графический процессор позволяет сильно ускорить вычисления над большими массивами объектов. Для составления модели мне понадобились следующие данные относительно современных архитектур графических процессоров.[1-3]

Рисунок 1 - Модель подсистемы распределенных вычислений.

молекулярный динамический моделирование вычислительный

Для каждого мультипроцессора GPU доступно 65536 32-битных регистров. Учитывая, что одновременно на одном мультипроцессоре может выполняться один блок, для устройства GTX 760 параллельно будут рассчитаны 6 блоков по 1024 нити.[4] Для определения количества доступных регистров разделим 65536 на 1024 и получим 64 регистров для каждой нити. Такого количество регистров с запасом хватает для моделирования и дает возможность создавать локальные переменные внутри методов. Таким образом, локальные переменные, создаваемые внутри методов, не потребуют глобальной памяти, что серьезно увеличит скорость моделирования.

На первом этапе накопители рассчитываются независимо друг от друга внутри каждой нити и сохраняются в регистрах или локальной памяти. В результате получаем количество различных накопителей равное количеству нитей. Следующий шаг -- это объединение полученных накопителей в блоки через распределенную память каждого блока, так как по архитектуре CUDA нити взаимодействуют друг с другом только в пределах блока и используют для обмена общую память. Последний этап расчета накопителей - объединением полученных значений в блоках в одну переменную в глобальной памяти для дальнейшего использования.[5-7]

Максимальное количество элементов, при условии что одна нить рассчитывать одну частицу равно максимальному количеству блоков в сетке умноженному на максимальное количество нитей в блоке.

В таблице 1 приведены типы и описания переменных, необходимых при расчетах, в вычислительном приложении.

Таблица 1

Переменные, использующиеся в вычислительном приложении

Тип

ол-во

К

Вид памяти

Объем

памяти

Локальные

переменные

6

Регистры

4 байта

Массивы

6

Глобальная

память

4 байта

Самым требовательным по памяти методом является метод расчета нового ускорения для всех частиц системы.

Основную часть памяти при моделировании занимают массивы, размер которых равен количеству частиц в системе, соответственно при моделировании системы из 60 миллионов частиц с точностью float потребуется:

6 4 6 10 = 1.34 Гбайт глобальной памяти

MEMдоступн = 0.5Gb / 1Gb / 1.5 Gb / 2G и больше, в зависимости от оборудования, данные снимаются утилитой cudaInfo.cu.

MEMиспользуемая = MEMдоступн - 0.5Gb, если MEMдоступн > 0.5

MEMиспользуемая = MEMдоступн- 0.2Gb, если MEMдоступн ? 0.5

Для увеличения размера моделируемой системы можно уменьшить размер резервной памяти, но это не рекомендуется. Зарезервированная память графического процессора уходит на поддержание графического отображения, нехватка памяти GPU может привести к падению графических драйверов, система выдаст предупреждение о возможном риске.

точн = 4, точн = 8,

если MEMиспользуемая ? 1.5

если MEMиспользуемая > 1.5

Коэффициент точности можно выставить вручную, сильно влияет на возможный размер моделируемой системы.

MEMиспользуемая 1024

системы = Размещено на http://www.allbest.ru/

, млн

6 точн 10

Также в реализации проекта и модели были использованы современные алгоритмы для параллельных вычислений, позволяющие приумножить эффективность графического процессора, такие как Reduce, Scan/Sort в реализации Hillis\Steele.[8-9]

Список использованной литературы

1. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. -СПб: BHV, 2002.

2. NAMD Version CVS-2016-09-22 M. Bhandarkar, A. Bhatele Theoretical and Computational Biophysics Group, Beckman Institute, University of Illinois, 2016.

3. GROMACS, Emile Apol, RossenApostolov, Herman J.C. Berendsen, The GROMACS development teams at the Royal Institute of Technology and Uppsala University, Sweden, 2016

4. Трунов А.С., Воронова Л.И., Воронов В.И., Разработка параллельного алгоритма для информационно-исследовательской системы “MD-SLAG-MELT” на основе технологии CUDA. Вестник Нижневартовского

5. Пилипчак П.Е., Трунов А.С. Параллельный расчет системы N-частиц с использованием технологии MPI и CUDA // Современные наукоемкие технологии. - 2014. - № 5-2. - С. 217-218;

6. Shane Cook, CUDA Programming, Elsevier Inc. 2013, 591c.

7. Воронова Л.И., Трунов А.С. Оптимизация параллельного алгоритма подсистемы распределенного молекулярно-динамического моделирования. - Межотраслевая информационная служба, №3, 2011, 12с.

8. Информационно-аналитические материалы по параллельным вычислениям (http://www.parallel.ru)

9. UDACITY Parallel Computing on CUDA (Teaching Course) (https://classroom.udacity.com/courses/cs344)

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.