Тестирование производительности пакета SOP-GPU

Мы протестировали производительность программы SOP-GPU, реализованной на CUDA (диалект языков С/С++) на графической карте Tesla C1060 (NVIDIA), и сравнили результаты с производительностью оптимизированной программы SOP на языке C, запущенной на двухпроцессорной Quad Core Xeon 2,83 ГГц машине соответствующего технологического уровня.

Мы проанализировали результаты вычислений на ЦП и ГП, сравнивая спектр сил — f, т.е. профиль растяжения f(X) в зависимости от смещения, распределение денатурирующих сил (пик силы на спектре) и среднюю температуру ⟨T(t)⟩, для ww-домена (рис. 1). Несмотря на небольшие отклонения из-за различных начальных условий профили f(X) и ⟨T⟩, и гистограма денатурирующей силы, полученные на ЦП и ГП хорошо согласуются.

 Рис. 1. Сравнение результатов симуляций растяжения WW-домена на ЦП и ГП (скорость тяги vf=2,5 мкм/c). (a) пример спектра силы, (b) гистограмма распределения денатурирующих сил, (c) средняя температура как функция времени ⟨T(t)⟩.

Мы сравнили итоговую производительность разработанного для ГП приложения (пакет SOP-GPU) с оптимизированной версией реализации для ЦП (программа SOP-CPU). Оба приложения описывают динамику Ланжевена молекулярной системы для ww-домена в состоянии равновесия. Мы представили вычислительную производительность программы SOP-GPU как функцию от числа независимых траекторий, обсчитываемых одновременно на одном ГП (подход «множество-тректорий-на-одном-ГП»). Одно ядро ЦП может генерировать только одну траекторию за раз, в то время как ГП может запускать несколько траекторий одновременно. Полученные результаты показывают, что для небольшой системы из 34 аминокислотных остатков (WW-домен), использование одного ГП позволяет ускорить вычисления при условии одновременного выполнения 3-ёх и более независимых потоков. Эквивалентную загрузку одного ГП обеспечивает запуск обсчёта одной траектории для системы из 102 частиц (подход «один-запуск-на-ГП»). Это критическая точка. Если время моделирования на ЦП линейно возрастает с увеличением количества запускаемых потоков, то нагрузка на ГП в таком режиме остаётся сублинейной (примерно постоянной) вплоть до 1000 частиц. В этой точке ГП показывает значительный выигрыш по сравнению с ЦП, достигая максимального ускорения в 80-90 раз (рис 2б). Количество встроенной памяти ГП, т.е. ~4 Гб (Tesla C1060), достаточно для описания достаточно длительной симуляции динамики Ланжевена большой биомолекулярной системы из ~104 аминокислотных остатков, что сравнимо по размеру с димером фибриногена (Fb)2.

Рис 2. (a) Логарифмический график зависимости времени вычислений 1000 модельных шагов на ЦП и ГП от размера системы N (подход «один-запуск-на-ГП») и от числа независимых одновременных траекторий s, запущенных на ГП (подход «множество-тректорий-на-одном-ГП»), для ww-домена, состоящего из β-структуры. Производительность ГП протестирована для размеров блока B = 64, 128, 256 и 512. (b) График вычисительного ускорения ГП по отношению к ЦП как функция N и s. Производительность сравнивается для программы SOP-GPU и при наличии оптимизаций с использованием текстурного кэша, и текстурного кэша плюс встроенные математические функции.