English
!

Архив публикаций

Тезисы

XX-ая конференция

Распараллеливание алгоритмов многочастичной броуновской динамики для графических процессоров

Устинин Д.М., Коваленко И.Б., Хрущев С.С.

Москва, Биологический факультет МГУ

1  стр. (принято к публикации)

В настоящее время наличие подробных данных о структуре и функционировании субклеточных систем позволяет строить подробные компьютерные модели процессов, происходящих в живой клетке. Методы броуновской динамики удобно использовать для моделирования систем, включающих десятки и сотни взаимодействующих белковых молекул, например, фотосинтетической мембраны. Однако, современная вычислительная техника развивается в основном в сторону увеличения количества параллельно работающих вычислительных ядер, т.к. рост быстродействия отдельных процессоров упирается в физические ограничения. Типичным примером такого подхода являются современные графические процессоры (GPU), включающие сотни вычислительных ядер в одном устройстве. Наша работа посвящена созданию параллельных версий алгоритмов для основных стадий метода броуновской динамики, оптимизированных для расчетов на графических процессорах.

Можно выделить несколько основных стадий, требующих распараллеливания.

1) Генерация случайных чисел для вычисления броуновской силы, действующей на молекулу белка. В настоящий момент существуют эффективные параллельные генераторы случайных чисел на GPU. Мы использовали параллельный генератор случайных чисел Mersenne Twister.

2) Вычисление электростатической силы, действующей на заряды одного белка при взаимодействии с полем, создаваемым другим белком. Взаимодействие каждого заряда белка с полем можно вычисляется независимо от других зарядов, таким образом, эта часть естественным образом распараллеливается. Каждая нить (thread), выполняемая на графическом процессоре, вычисляет для своего атома взаимодействие с полем.

3) Наиболее сложной алгоритмически является проверка столкновений между белками или с мембраной. Используется несколько вариантов проверки столкновений – вычисление дистанции между сферами, аппроксимирующими поверхность белка, либо вычисление дистанции между заряженными аминокислотными остатками, либо между отдельными атомами. При подготовке данным составляется линейный массив из всех пар «сфера-сфера» (либо «атом-атом»), затем каждая нить GPU производит подсчет расстояния для своей пары и проверку на пересечение.

Таким образом, для всех основных стадий алгоритма броуновской динамики удалось построить параллельные алгоритмы. В результате, удалось получить ускорение в несколько раз по сравнению с CPU-версией.

Работа поддержана грантами РФФИ 12-07-33036 и 12-07-00783.



© 2004 Дизайн Лицея Информационных технологий №1533