Научная статья на тему 'ОПТИМИЗАЦИЯ ПАКЕТА QUANTUM ESPRESSO ДЛЯ РАБОТЫ НА GPU NVIDIA С ПОМОЩЬЮ ТЕХНОЛОГИИ CUDA'

ОПТИМИЗАЦИЯ ПАКЕТА QUANTUM ESPRESSO ДЛЯ РАБОТЫ НА GPU NVIDIA С ПОМОЩЬЮ ТЕХНОЛОГИИ CUDA Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
91
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
QUANTUM ESPRESSO / GPU / CUDA / УСКОРЕНИЕ ВЫЧИСЛЕНИЙ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Абдрахманов Д.Л., Жариков Д.Н., Жарикова О.И., Завьялов Д.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Абдрахманов Д.Л., Жариков Д.Н., Жарикова О.И., Завьялов Д.В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

OPTIMIZING QUANTUM ESPRESSO FOR NVIDIA GPUS WITH CUDA TECHNOLOGY

This article explores how to optimize Quantum Espresso for efficient use of Nvidia's graphics processing unit (GPU) using CUDA technology. Quantum Espresso is a powerful tool for quantum mechanical simulation and calculation of material properties. However, the original version of the package was not designed for GPU use, so optimization is required to achieve the best performance.

Текст научной работы на тему «ОПТИМИЗАЦИЯ ПАКЕТА QUANTUM ESPRESSO ДЛЯ РАБОТЫ НА GPU NVIDIA С ПОМОЩЬЮ ТЕХНОЛОГИИ CUDA»

Оптимизация пакета Quantum Espresso для работы на GPU Nvidia с

помощью технологии CUDA

Д.Л. Абдрахманов, Д.Н. Жариков, О.И. Жарикова, Д.В. Завьялов Волгоградский государственный технический университет»

Аннотация: В данной статье исследуется процесс оптимизации пакета Quantum Espresso для эффективного использования графического процессора (GPU) от Nvidia с помощью технологии CUDA. Quantum Espresso является мощным инструментом для квантово-механического моделирования и расчета свойств материалов. Однако, оригинальная версия пакета не была разработана для использования на GPU, поэтому требуется оптимизация для достижения наилучшей производительности. Ключевые слова: Quantum Espresso, GPU, CUDA, ускорение вычислений.

1. Введение

В последние десятилетия современная наука и технологии достигли значительного прогресса в области квантово-механического моделирования и расчета свойств материалов. Одним из важных инструментов для этих расчетов является пакет программного обеспечения Quantum Espresso [1]. Он предоставляет средства для выполнения сложных квантово-механических расчетов, включая электронные структуры, оптические свойства, термодинамические характеристики и многое другое.

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

Quantum Espresso, как и многие другие программные пакеты, изначально разрабатывался для выполнения на центральных процессорах (CPU) и не был оптимизирован для работы на GPU. Однако, благодаря технологии вычислений общего назначения (GPGPU) и инструментарию CUDA от Nvidia, стало возможно оптимизировать Quantum Espresso для работы на GPU Nvidia и повысить его производительность.

2. Установка необходимых инструментов CUDA и Nvidia HPC SDK

Для начала, требуется установить пакет CUDA от Nvidia, который предоставляет средства для разработки программного кода, оптимизированного для работы на GPU [2, 3].

После успешной установки CUDA Toolkit, необходимо также установить Nvidia HPC SDK [4], который предоставляет компиляторы и другие инструменты для разработки программного обеспечения, оптимизированного для работы на GPU Nvidia [5].

3. Настройка компиляции Quantum Espresso

Основная часть исходного кода Quantum Espresso написана на языке Fortran, поэтому важно указать путь, по которому система сможет найти

компилятор Fortran. На рис. 1 указаны пути для версии Nvidia HPC 23.1.

F90=/opt/nvidia/hpc.sdk/Linux_х86_64/23.l/compilers/bin/pgf90 CC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.1/compilers/bin/pgcc F77=/opt/nvidia/hpc_sdk/Linux_x86_64/23.l/compilers/bin/pgf77

Рис. 1. - Путь к компилятору Fortran, пакета Nvidia HPC SDK Кроме того, для предотвращения ошибок в сборке необходимо изменить файл \bashrc' пользователя, добавив формулировку,

представленную на рис.2.

export PATH=,'/opt/nvidia/hpc_sdk/Linux_x86_64/23.1/compilers/bin/:$РАТН"

Рис. 2. - Содержимое файла пользователя .bashrc

4. Указание параметров CUDA и версии библиотек

Quantum Espresso также требует указания параметров CUDA и версии библиотек для корректной работы на GPU Nvidia.

На рис.3 представлены параметры CUDA в команде конфигурации.

--wit -cuda= opt nvidia/hpc_sdk/ .in _х86_64/!3.1/cuda/ --with-cuda-runtime=LI, --with-cuda-cc=5.0

Рис. 3. - Параметры CUDA и версии библиотек

5. Использование MPI и интеграция с GPU Nvidia

Quantum Espresso использует интерфейс MPI для параллельного выполнения задач. Для интеграции с GPU Nvidia необходимо явно указать используемую версию MPI и использовать реализацию от Nvidia, вместо системного MPI [6].

Параметры MPI в команде конфигурации показаны на рис.4. Мы отключим использование системного MPI и будем использовать реализацию от компании Nvidia, которая может работать с GPU. Это позволит Quantum Espresso использовать параллельные возможности GPU Nvidia.

--enable-openmp --disable-parallel --with-cuda-mpi=yes

Рис. 4. - Подключение MPI от Nvidia

6. Сборка и результаты

Итоговая формулировка команды конфигурации представлена на рис.5.

С base) citrullu*@node47:~/q-e-qe-7.2$ ./configure F90=/opt/rwidia/hpc_sdk/Linux_x86_64/23.1/compilers/bin/pgf9G CC=/opt/nvidia/hpc_sdk/LinLix_x86_64/23.l/compilers/bin/pgcc F77=/opt/nvidia/hpc_sdk/Linux_x86_64/23.l/compilers/ bin/pgf77 —with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/23.1/cuda/ —with-ciida-runtime=ll.В —enable-openmp —dis able-parallel|

Рис. 5. - Команда конфигурации После успешной настройки компиляции Quantum Espresso с поддержкой GPU Nvidia, можно перейти к процессу сборки пакета. Используя команду Л makeall -J4\ можно запустить сборку на 4 потоках центрального процессора.

По завершении сборки, в директории 'bin/' будут находиться собранные пакеты Quantum Espresso, готовые к использованию на вычислительных ресурсах (рис.6).

alpha2f.х dvscf_q2r.x gww.x Idl.x ph.x projw-f С . X q2r. x turbo_lanczos.x

average.х dynmat.x head. x manyсp.x plan_avg.x pw2bgw.x rismld. x turbo_magnon.x

bancLinterpolation. х epa.x hp.x manypw.x plotband.x pw2critic.X scan_ibrav.x turbo_spectrum.x

bands.х epsilon.x ibrav2cell.x matdyn.x plotproj.X pw2gw. x simple_bse.x wannier90.x

bse_main.x ev.x initial_state.x molecularnexafs.x plotrho.x pw2wannier90.x simple_ip.x wannier_ham.x

cell2ibrav.x fermi_proj.x kcwpp_interp.x molecularpdos.x pmw. x pwMgww.x simple.x wannier_plot.x

cppp.x fermi_velocity.x kcwpp_sh.x neb.x postahc.x pwcond.x spectra_correction.x w-fck2r.x

cp. X fqha.x kcw.x open_grid.x ppacf.x pwi2xs-f. x sumpdos.x *f dd. x

dist.x fs.x kpoints. x path_interpolation.x pprism.x pw. X turbo_davidson.x xspectra.x

dos. x gww_-fit. x lambda.x phcg.x pp.x q2qstar.x turbo_eels. x

Рис. 6. - Собранные пакеты Quantum Espresso

Данная конфигурация (рис.5) позволила успешно собрать пакет Quantum Espresso версии 6.8 для использования на вычислительных ресурсах кластера Волгоградского государственного технического университета [7-9].

7. Тестирование и анализ производительности

В целях измерения производительности была протестирована задача моделирования вещества методом молекулярной динамики [10]. Чтобы добиться успешного выполнения, систему требовалось привести к равновесному состоянию, из которого начинается моделирование вещества со свойствами, приближенными к реальным.

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

На самом первом этапе, который не входит в представленные ниже результаты, находим основное состояние электронного облака (состояние с минимальной энергией функционала Кона-Шема) с неподвижными ионами.

В дальнейшем на протяжении 7500 шагов симуляции рассматривается динамика ионов для нахождения их оптимальных позиций - при таких позициях силы воздействия на ионы будут минимальны. Для каждого шага динамики ионов один раз вычисляется приближенное значение основного состояния электронного облака.

Последний этап в ходе 5000 шагов включает те же действия, что были в предыдущем, но выполняется 10 итераций приближения в расчёте основного электронного состояния.

Результаты тестирования производительности обновленного пакета Quantum Espresso с поддержкой вычислений на GPU Nvidia представлены в таблице №1.

Мы запускали нашу тестовую задачу на разных аппаратных платформах.

Таблица № 1

Время расчета задачи релаксации ионов + электронов

Ресурсы время CPU+GPU, мин время Wall, мин

7500 шагов (1 шаг электронов за 1 шаг ионов)

Xeon E5-2650v4 (24 п.) 397 425

Xeon Gold-6130 (16п.) 342 371

Xeon Gold-6130 (16n.)+Tesla V100 259 289

5000 шагов (10 шагов электронов за 1 шаг ионов)

Xeon E5-2650v4 (24 п.) 265 284

Xeon Gold-6130 (16п.) 225 253

Xeon Gold-6130 (16n.)+Tesla V100 174 205

Использование GPU как сопроцессоров на отдельных вычислительных узлах дает нам прирост производительности и уменьшает время расчета нашей задачи в среднем на 25 процентов.

Заключение

Оптимизация Quantum Espresso для работы на GPU Nvidia с помощью технологии CUDA открывает новые возможности для ускорения квантово-механических расчетов, позволяет эффективно использовать возможности графических процессоров и повысить производительность расчетов.

Литература

1. User's Guide for Quantum ESPRESSO URL: quantum-espresso.org/Doc/user_guide_PDF/user_guide.pdf (дата обращения: 23.04.2023)

2. Cheng John, Grossman Max, McKercher Ty Professional CUDA® C Programming. - John Wiley & Sons Inc., 2014.- 528 p.: ISBN: 9781118739327

3. Сидорович М.А. Применение технологии cuda для повышения скорости обработки эмпирических данных // Научно-техническое и экономическое сотрудничество стран АТР в XXI веке. 2021. Т. 1. С. 263-267.

4. NVIDIA HPC SDK Version 23.1 Documentation URL: docs.nvidia.com/hpc-sdk/archive/23.1/index.html (дата обращения: 23.04.2023)

5. Wen-mei Hwu, Kirk David, El Hajj Izzat Programming Massively Parallel

Processors. A Hands-on Approach. 4th Edition. - Morgan Kaufmann, 2022. - 580 p.

6. Абдрахманов Д.Л., Жариков Д.Н., Завьялов Д.В. Средства ускорения выполнения задач с большим объёмом операций ввода/вывода в гетерогенной вычислительной системе. // Инженерный вестник Дона, 2022, № 6. URL: ivdon.ru/ru/magazine/archive/n6y2022/7688/.

7. Андреев А.Е., Егунов В.А., Завьялов Д.В., Жариков Д.Н. О применении высокопроизводительных вычислений в фундаментальных исследованиях, прикладных и образовательных проектах ВолгГТУ // Параллельные вычислительные технологии (ПаВТ'2021). Короткие статьи и описания плакатов. XV международная конференция. Челябинск, 2021. С. 131-142.

8. Андреев А.Е., Егунов В.А., Завьялов Д.В., Жариков Д.Н. Развитие направления параллельных и высокопроизводительных вычислений в ВолгГТУ // Параллельные вычислительные технологии (ПаВТ'2021). Короткие статьи и описания плакатов. XV международная конференция. Челябинск, 2021. С. 151-161

9. Алексеев И.А., Егунов В.А., Панюлайтис С.В., Чекушкин А.А. Методы и средства балансировки нагрузки в неоднородных вычислительных системах // Инженерный вестник Дона, 2020, № 11 URL: ivdon. ru/ru/magazine/archive/n 11y2020/6667.

10. Шеин Д.В., Завьялов Д.В., Жариков Д.Н. Моделирование фосфорена методом классической молекулярной динамики с использованием глубокого обучения // Физика. Технологии. Инновации. ФТИ-2022: тез. докл. IX Междунар. молодеж. науч. конф., посвящ. 100-летию со дня рожд. проф. С. П. Распопина (г. Екатеринбург, 16-20 мая 2022 г.) - C. 330-331.

References

1. User's Guide for Quantum ESPRESSO URL: quantumespresso .org/Doc/user_guide_PDF/user_guide.pdf (data obrashheniya: 23.04.2023).

2. Cheng John, Grossman Max, McKercher Ty Professional CUDA® C Programming. John Wiley & Sons Inc., 2014. 528 p.

3. Sidorovich M.A. Nauchno-texnicheskoe i e'konomicheskoe sotrudnichestvo stran ATR v XXI veke. 2021. T. 1. pp. 263-267.

4. NVIDIA HPC SDK Version 23.1 Documentation URL: docs.nvidia.com/hpc-sdk/archive/23.1/index.html (data obrashheniya: 23.04.2023)

5. Wen-mei Hwu, Kirk David, El Hajj Izzat Programming Massively Parallel Processors. A Hands-on Approach. 4th Edition. Morgan Kaufmann, 2022. 580 p. ISBN 9780323912310

6. Abdraxmanov D.L., Zharikov D.N., Zavyalov D.V. Inzhenernyj vestnik Dona, 2022, № 6. URL: ivdon.ru/ru/magazine/archive/n6y2022/7688/.

7. Andreev A.E., Egunov V.A., Zavyalov D.V., Zharikov D.N. Parallelize vy'chisliteFny'e texnologii (PaVT'2021). Korotkie stat i i opisaniya plakatov. XV mezhdunarodnaya konferenciya. Chelyabinsk, 2021. pp. 131-142.

8. Andreev A.E., Egunov V.A., Zavyalov D.V., Zharikov D.N. Parallelize vy'chisliteFny'e texnologii (PaVT'2021). Korotkie stat i i opisaniya plakatov. XV mezhdunarodnaya konferenciya. Chelyabinsk, 2021. pp. 151-161.

9. Alekseev I.A., Egunov V.A., Panyulajtis S.V., Chekushkin A.A. Inzhenernyj vestnik Dona, 2020, № 11. URL: ivdon. ru/ru/magazine/archive/n 11y2020/6667.

10. Shein D.V., Zavyalov D.V., Zharikov D.N. Fizika. Texnologii. Innovacii. FTI-2022: tez. dokl. IX Mezhdunar. molodezh. nauch. konf., posvyashh. 100-letiyu so dnya rozhd. prof. S. P. Raspopina (g. Ekaterinburg, 16-20 maya 2022 g.) pp. 330-331.

i Надоели баннеры? Вы всегда можете отключить рекламу.