Проектирование модуля автоматического распределения нагрузки на графический процессор для вычислительной подсистемы программного комплекса "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
Подобные документы
Основные определения, необходимые для разработки алгоритма распределения программных модулей по вычислительным модулям вычислительной сети. Распределение операторов вычислительной системы с распределенной памятью для информационно-логической граф-схемы.
курсовая работа [2,1 M], добавлен 08.01.2016Обоснование языка программирования Object Pascal и среды разработки Delphi. Создание интерфейса пользователя. Проектирование структуры и описание компонентов, использованных при разработке программного продукта. Составление инструкции пользователя.
курсовая работа [888,7 K], добавлен 20.05.2015Определение вычислительной нагрузки. Трудоемкость процессорных операций. Трудоемкости задач и число обращений к файлам. Количество операций непрерывного счета. Выбор базовой конфигурации, накопителей, центрального процессора, числа линий связи.
курсовая работа [712,5 K], добавлен 20.12.2012Логнормальное распределение. Применение моделирования логнормального распределения. Постановка и реализация поставленной задачи. Математическое ожидание. Инструкция пользователю. Описание программного модуля. Общие данные логнормального распределения.
курсовая работа [364,6 K], добавлен 08.01.2009Аппаратные средства вычислительной техники. Центральный процессор. Память как составляющая компьютера, ее типичная иерархическая структура. Устройства ввода-вывода, шины. История развития средств вычислительной техники. Характеристика систем на основе Р6.
реферат [251,3 K], добавлен 08.02.2014Исследование структуры типовой вычислительной сети. Модель процесса вскрытия вычислительной сети и взаимосвязь основных его этапов. Конфликт в информационной сфере между субъектом и объектом познания. Описания алгоритмов динамического масштабирования.
дипломная работа [2,9 M], добавлен 21.12.2012Диагностический анализ системы управления предприятия, его организационной и функциональной структуры. Разработка проекта подсистемы учёта средств вычислительной техники, описание технического обеспечения базы данных. Характеристика программного продукта.
дипломная работа [7,2 M], добавлен 28.06.2011Реализация подсистемы управления файлами, использующей в качестве способа физической организации файла связанный список блоков. Разработка общей структуры модуля. Описание реализуемых в программе алгоритмов. Ввод в действие программного комплекса.
курсовая работа [666,0 K], добавлен 10.07.2015Проектирование функциональной структуры подсистемы учёта средств вычислительной техники. Применяемые средства защиты информации в БД, базовый алгоритм, программное и техническое обеспечение. Вопросы об экономической эффективности и охране труда.
дипломная работа [7,5 M], добавлен 26.06.2011Расчеты параметров проектируемой локальной вычислительной сети. Общая длина кабеля. Распределение IP-адресов для спроектированной сети. Спецификация оборудования и расходных материалов. Выбор операционной системы и прикладного программного обеспечения.
курсовая работа [940,7 K], добавлен 01.11.2014