Quantum ESPRESSO
👉Вернуться к списку инструкций
Quantum ESPRESSO - это пакет программ с открытым исходным кодом для ab initio расчетов электронной структуры и моделирования материалов.
Официальный сайт: https://www.quantum-espresso.org/
Доступные версии на суперкомпьютере НИУ ВШЭ
module load quantumespresso/7.5 # Универсальная сборка для всех типов GPU кластера (рекомендуется)
module load quantumespresso/7.5-cpu # CPU-only версия для небольших задач, когда все GPU заняты
Обновление версий производится по запросу пользователей.
Файлы псевдопотенциалов SSSP (UPF) доступны в каталоге:
cd /opt/software/quantum_espresso/SSSP_1.1.2_PBE_efficiency/
Примеры входных файлов доступны в каталоге:
cd /opt/software/quantum_espresso/examples/
Пользователи: Международная лаборатория Суперкомпьютерного атомистического моделирования и многомасштабного анализа, любые подразделения НИУ ВШЭ
Выполнение расчётов на суперкомпьютере
Подготовьте скрипт-файл для очереди задач (см. инструкцию по запуску задач на суперкомпьютере и продвинутую инструкцию по запуску), или же воспользуйтесь генератором sbatch-файлов .
Sbatch-файл qe.sbatch для запуска на GPU:
#!/bin/bash #SBATCH --job-name="QuantumEspresso" # Название задачи #SBATCH --time=0-01:00 # Лимит времени (ДД-ЧЧ:ММ). Чем меньше лимит, тем раньше произойдет запуск. #SBATCH --gpus=2 # Количество GPU #SBATCH --ntasks=2 # Количество ядер CPU (должно быть равно количеству GPU) #SBATCH --nodes=1 # Все GPU и CPU будут находиться на одном вычислительном узле. #SBATCH --constraint="type_a|type_b|type_c" # Предпочтительные типы вычислительных узлов. #SBATCH --mail-user=ваша_почта # Email для отправки уведомлений (если нужно).
#SBATCH --mail-type=END,FAIL # События, требующие уведомления.
module purge # Выгружаем все модули module load quantumespresso/7.5 # Загрузка модуля QuantumEspresso.
# Запуск расчета: mpirun --bind-to none -np ${SLURM_NTASKS} pw.x -nk ${SLURM_NTASKS} -in grir443.in
# Рекомендуемые параметры запуска Quantum Espresso с GPU:
# 1 GPU V100 и 1 ядро CPU,
# 2 GPU V100 и 2 ядра CPU,
# 4 GPU V100 и 4 ядра CPU.
# Как можно больше заполняйте память GPU. Мониторьте: https://lk.hpc.hse.ru/
Если все GPU заняты, Вы можете запускать задачи QuantumEspresso на центральных процессорах вычислительных узлов. Задача, запущенная на 24 ядрах без ускорителя будует работать примерно в 3 раза дольше, чем задача, запущенная на 1CPU + 1GPU, однако, для коротких и учебных задач это может не иметь большой разницы.
Для постановки задачи в очередь запустите команду:
sbatch qe.sbatch
Если вы зарегестрированы в нескольких проектах на суперкомпьютере, нужно указать проект, к которому относится этот расчет:
sbatch -A ID_проекта qe.sbatch
Для отслеживания текущих задач можете воспользоваться командой mj или mj --exp
Если вам нужно использовать свои файлы псевдопотенциалов, вы можете сохранить их в директорию, из которой будете запускать расчеты и добавить в начало input-файла следующие строчки:
&CONTROL pseudo_dir = '.' /
Подробнее про input-файлы для PWscf вы можете узнать на официальном сайте: https://www.quantum-espresso.org/Doc/INPUT_PW.html
Thermo_pw
Thermo_pw - надстройка над Quantum ESPRESSO для автоматизированного расчёта свойств материалов. Использует рутины QE как вычислительное ядро, но сам организует многошаговые расчёты: там, где вручную нужна цепочка pw.x → ph.x → q2r.x → matdyn.x с ручной сборкой промежуточных результатов, thermo_pw.x выполняет её одной задачей и сразу формирует готовые к публикации графики.
Что позволяет рассчитать:
- температурно-зависимые упругие константы (квазигармоническое приближение);
- термодинамические свойства: тепловое расширение, теплоёмкость, свободную энергию, параметры Грюнайзена;
- фононные дисперсии и плотность фононных состояний;
- зонные структуры с классификацией состояний по симметрии, поверхностные состояния;
- спектры EELS и оптические свойства.
Кому полезен: исследователям, рассчитывающим термодинамические и упругие свойства кристаллов при конечных температурах и давлениях — задачи физики твёрдого тела и материаловедения. Для разового SCF-расчёта или одиночного фонона достаточно обычных pw.x и ph.x.
Официальный сайт: https://dalcorso.github.io/thermo_pw/
module load quantumespresso/7.5 # thermo_pw.x входит в состав модуля
Установлена версия thermo_pw 2.2.0, собранная в связке с QE 7.5. Версии thermo_pw и Quantum ESPRESSO жёстко связаны между собой: с другими версиями QE данная сборка несовместима.
Запуск расчётов
Основное отличие от pw.x — параллелизм по образам (images, ключ -ni). Thermo_pw распределяет независимые геометрии и q-точки между образами и считает их асинхронно, поэтому количество MPI-процессов должно нацело делиться на число образов.
#!/bin/bash
#SBATCH --job-name="thermo_pw"
#SBATCH --time=0-04:00 # Лимит времени (ДД-ЧЧ:ММ)
#SBATCH --gpus=4 # Количество GPU
#SBATCH --ntasks=4 # Количество ядер CPU (должно быть равно количеству GPU)
#SBATCH --nodes=1 # Все GPU и CPU на одном вычислительном узле
#SBATCH --constraint="type_a|type_b|type_c" # Предпочтительные типы вычислительных узлов
module purge # Выгружаем все модули
module load quantumespresso/7.5-tpw # Загрузка модуля Quantum ESPRESSO
# Запуск расчета:
# -ni 2 — число образов; ${SLURM_NTASKS} должно делиться на него нацело
mpirun --bind-to none -np ${SLURM_NTASKS} thermo_pw.x -ni 2 -in thermo.in
Постановка задачи в очередь выполняется так же, как для остальных расчётов Quantum ESPRESSO:
sbatch thermo_pw.sbatch
Примеры входных файлов thermo_pw доступны в каталоге:
cd /opt/software/quantum_espresso/thermo_pw/
examples/— демонстрация возможностей thermo_pw. Примеры намеренно сделаны быстрыми и не являются сошедшимися по точности;inputs/— более реалистичные входные файлы, приближенные к практическим расчётам.
Скрипты примеров записывают результаты рядом с собой, поэтому перед запуском скопируйте нужный пример в свой рабочий каталог:
cp -r /opt/software/quantum_espresso/thermo_pw/examples/example01 ~/ cd ~/example01
Особенности работы
- Очищайте каталоги результатов между запусками. Thermo_pw переиспользует содержимое
outdirи каталоговresults,dynamical_matrices,therm_files,restart. Повторный запуск поверх результатов предыдущего расчёта — наиболее частая причина непонятных ошибок и пропущенных q-точек. - GPU-ускорение частичное. На GPU вынесена не вся функциональность, часть шагов выполняется на центральных процессорах. Наибольший выигрыш даёт опция
many_kдля металлов с небольшими элементарными ячейками. - Для построения графиков используется gnuplot, для изображений зоны Бриллюэна — asymptote.
- Динамические матрицы сохраняйте в формате
.xml(указав расширение в переменнойfildyn) — иначе не работает анализ симметрии колебательных мод.
Документация: https://people.sissa.it/dalcorso/thermo_pw/user_guide/index.html
Краткий туториал: https://people.sissa.it/dalcorso/thermo_pw/tutorial/tutorial.html
Дополнительная информация
Для более подробной информации о работе с пакетом можете обратиться к официальным ресурсам Quantum ESPRESSO.
Руководства (тут вы можете найти примеры input-файлов для PWscf): https://www.quantum-espresso.org/tutorials/
Документация: https://www.quantum-espresso.org/documentation/
FAQ: https://www.quantum-espresso.org/faq/
Полезные ссылки
- Инструкция по работе с системой HPC TaskMaster
Нашли опечатку?
Выделите её, нажмите Ctrl+Enter и отправьте нам уведомление. Спасибо за участие!
Сервис предназначен только для отправки сообщений об орфографических и пунктуационных ошибках.