ИСТИНА |
Войти в систему Регистрация |
|
ИСТИНА ЦЭМИ РАН |
||
В данной работе описывается аналитическая модель А3, предназначенная для оценки эффективности выполнения параллельного кода на GPU. Теоретическая часть модели была разработана в рамках исследования по распараллеливанию метода SCF, входящий в состав пакета Siesta [1]. Поскольку модель А3 будет внедрена в систему автоматизации распараллеливания САПФОР [2] в качестве одного из инструментов для предсказания эффективности при распараллеливании последовательных Fortran программ, алгоритмы реализации модели были изменены с учетом требований САПФОР. Модель может быть использована для оценки возможности распараллеливания с помощью высокоуровневого языка Fortran DVMH и также для выбора оптимальных схем распараллеливания. Предлагаемая модель является востребованным инструментом для распараллеливания больших программ, время выполнения которых занимает от нескольких часов и более. А3 статически анализирует регионы кода исходной программы, которые могут выполняться параллельно на GPU, и оценивает эффективность их выполнения без программирования и запуска на реальном GPU. По сравнению с существующей моделью оценки, входящей в состав фреймворка Grophecy [3], А3 более универсальна, т.к. она не требует участия программиста в процессе работы. Такое преимущество возможно благодаря мощному анализатору системы САПФОР. Более того, А3 анализирует не только CWP (Compute Warp Parallelism) и MWP (Memory Warp Parallelism), но и ILP (Instruction Level Parallelism) и TLP (Thread Level Parallelism) – совокупность всех этих четырех факторов позволяет значительно быстрее сократить пространство поиска возможных схем распараллеливания. Другим преимуществом является статическое моделирование объема используемых регистров, что позволяет оценить степень занятости GPU до получения параллельного кода и его компиляции. В модели А3 каждый параллельный регион рассматривается как отдельная функция-ядро (далее ядро). Для каждого ядра собираются характеристики, влияющие на возможность его распараллеливания и на эффективность выполнения. Эффективность выполнения ядра – это время его выполнения на GPU. Оптимальная схема распараллеливания ядра – это схема с минимальным временем выполнения. Оптимальная схема распараллеливания всей программы – это множество схем распараллеливания ядер, при которых время выполнения программы минимально. Применение модели А3 позволяло распараллелить метод SCF за 11 дней. Ускорение на тестах, связанных с молекулой h2o (32h2o, h2o, h2o_2, h2o_4, h2o_basis, и др.) составило от 6х и выше. В данный момент ведется работа над внедрением модели А3 в систему САПФОР.