Оптимизация производительности Quantum Espresso (PWSCF)
Оптимизация производительности Quantum Espresso (PWSCF)
В последние годы от кластерных расчётов перешёл к периодике, использую Quantum Espresso (PWSCF, NEB).
И заметил недавно некоторые неприятные вещи.
Во-первых, попытка перейти с Ubuntu 20.04 на 22.04 (в репозитории первой QE 6.4.1, в репозитории второй 6.7, кажется) оказалась не очень удачной: один и тот же расчёт на одной и той же машине при тех же параметрах командной строки стал идти раза в 3-4 медленнее, и это проявлялось и на AMD FX, и на AMD Ryzen 9! Все необходимые пакеты (OpenMPI, BLAS, LAPACK, FFTW3, ATLAS и т.д.) поставлены, даже проглядывал полностью список установленных пакетов для нормальной работы под 20.04 - разницы нет. Пробовал собирать из исходников, также пробовал MPICH3 вместо OpenMPI - разница незначительная в ту или другую сторону, и всё равно существенно медленнее, чем было под 20.04.
Где копать?
Другой момент. Запускаю расчёт на стареньком Phenom II x4 (4 ядра) и его же на Ryzen 7 2700 (16 логических ядер, так что mpirun -np 16 --use-hwtread-cpus), и ускорение выходит чуть ли не меньше, чем в 2 раза. Может, важно грамотно распараллелить расчёт при использовании 16 или 32 потоков, прописав -ni, -nk, -nt, -nd? Есть какие-то принципы, по которым это логично делать?
И заметил недавно некоторые неприятные вещи.
Во-первых, попытка перейти с Ubuntu 20.04 на 22.04 (в репозитории первой QE 6.4.1, в репозитории второй 6.7, кажется) оказалась не очень удачной: один и тот же расчёт на одной и той же машине при тех же параметрах командной строки стал идти раза в 3-4 медленнее, и это проявлялось и на AMD FX, и на AMD Ryzen 9! Все необходимые пакеты (OpenMPI, BLAS, LAPACK, FFTW3, ATLAS и т.д.) поставлены, даже проглядывал полностью список установленных пакетов для нормальной работы под 20.04 - разницы нет. Пробовал собирать из исходников, также пробовал MPICH3 вместо OpenMPI - разница незначительная в ту или другую сторону, и всё равно существенно медленнее, чем было под 20.04.
Где копать?
Другой момент. Запускаю расчёт на стареньком Phenom II x4 (4 ядра) и его же на Ryzen 7 2700 (16 логических ядер, так что mpirun -np 16 --use-hwtread-cpus), и ускорение выходит чуть ли не меньше, чем в 2 раза. Может, важно грамотно распараллелить расчёт при использовании 16 или 32 потоков, прописав -ni, -nk, -nt, -nd? Есть какие-то принципы, по которым это логично делать?
-
- Сообщения: 1124
- Зарегистрирован: Ср фев 26, 2014 11:22 am
Re: Оптимизация производительности Quantum Espresso (PWSCF)
Вы не одиноки https://bugs.launchpad.net/ubuntu/+sour ... ug/1973434
https://askubuntu.com/questions/1406263 ... s-too-slow - советуют пересобрать ядро еще, но конечно вариант с intel_iommu проще
https://askubuntu.com/questions/1406263 ... s-too-slow - советуют пересобрать ядро еще, но конечно вариант с intel_iommu проще

Re: Оптимизация производительности Quantum Espresso (PWSCF)
Понял, спасибо! Попробую на днях поэкспериментировать.
Теперь бы ещё по второму вопросу получить ответ.
Теперь бы ещё по второму вопросу получить ответ.
-
- Сообщения: 1124
- Зарегистрирован: Ср фев 26, 2014 11:22 am
Re: Оптимизация производительности Quantum Espresso (PWSCF)
А он связан с первым. Если этот QE использует GPU (похоже на то, по крайней мере в реестре Nvidia QE есть), то не все от CPU зависит. Попробуйте посмотреть как загружены ядра и видеокарта при работе этого приложения.
Re: Оптимизация производительности Quantum Espresso (PWSCF)
Я считаю только на ядрах, видюхи самые простые стоят. Разработчики вроде в последних версиях уже тоже для CUDA всё сделали, но сами рекомендуют считать на ядрах.Sartorius84 писал(а): ↑Пт июл 01, 2022 1:39 pmЕсли этот QE использует GPU (похоже на то, по крайней мере в реестре Nvidia QE есть), то не все от CPU зависит. Попробуйте посмотреть как загружены ядра и видеокарта при работе этого приложения.
Re: Оптимизация производительности Quantum Espresso (PWSCF)
Отключил intel_iommu в 22.04. В результате при почти 100% загрузке ядер Phenom II x4 965 (4 ядра, 3.4 ГГц) в Ubuntu 20.04, QE 6.4.1 считал мою небольшую задачу за 15,5 минут, а FX-8350 (8 ядер, 4.0 ГГц) в Ubuntu 22.04, QE 6.7MaX - за 17,5 минут (а до отключения опции вообще считал 2 часа!). Странно это...
Ладно, попробовал поставить задачку побольше.
Ладно, попробовал поставить задачку побольше.
-
- Сообщения: 1124
- Зарегистрирован: Ср фев 26, 2014 11:22 am
Re: Оптимизация производительности Quantum Espresso (PWSCF)
Попробуйте лог прописать для CPU - хотя бы температура, частота, загрузка. И что за память стоит с CPU в паре?Metalian писал(а): ↑Вт июл 05, 2022 7:05 pmОтключил intel_iommu в 22.04. В результате при почти 100% загрузке ядер Phenom II x4 965 (4 ядра, 3.4 ГГц) в Ubuntu 20.04, QE 6.4.1 считал мою небольшую задачу за 15,5 минут, а FX-8350 (8 ядер, 4.0 ГГц) в Ubuntu 22.04, QE 6.7MaX - за 17,5 минут (а до отключения опции вообще считал 2 часа!). Странно это...
Ладно, попробовал поставить задачку побольше.
Re: Оптимизация производительности Quantum Espresso (PWSCF)
Взял задачку побольше - так на FX-8350 она посчиталась за 5,5 часов, хотя на Ryzen 7 2700 (8 ядер, 16 потоков) в 20.04, QE 6.4.1 считалась 7 часов!
Температура приличная, до 90 градусов в пике, обычно примерно 60-70. На холодных процах (Ryzen 7 2700) - пониже.
Загрузка под 100%.
Память на Ryzen 7 2700 стоит DDR4 2933 (та, что быстрее не работает с ним нормально). На FX-8350 - DDR3 1866, на Phenom II x4, вероятно, какая-то DDR2 (там сейчас винт полетел, машина пока не в работе).
Температура приличная, до 90 градусов в пике, обычно примерно 60-70. На холодных процах (Ryzen 7 2700) - пониже.
Загрузка под 100%.
Память на Ryzen 7 2700 стоит DDR4 2933 (та, что быстрее не работает с ним нормально). На FX-8350 - DDR3 1866, на Phenom II x4, вероятно, какая-то DDR2 (там сейчас винт полетел, машина пока не в работе).
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей