VASP
👉Вернуться к списку инструкций
VASP – программное обеспечение для проведения сложных численных исследований в области физики твердого тела и материаловедения. Оно предоставляет мощные инструменты для моделирования атомных и электронных структур, а также динамики твердотельных систем с высокой точностью. VASP основан на методе функционала плотности (DFT) и включает в себя расчёты на основе метода проекций плоских волн (PAW) и обобщённого градиентного приближения (GGA). Благодаря широким возможностям, VASP применяется для изучения свойств кристаллических материалов, поверхностных явлений, дефектных структур и фазовых переходов.
Официальный сайт: https://www.vasp.at/
Доступные версии на суперкомпьютере НИУ ВШЭ
module load vasp/v6.4.3 # VASP версии 6.4.3
Пользователи: Базовая кафедра квантовых технологий Института общей физики им. А.М. Прохорова РАН, любые подразделения НИУ ВШЭ
Ключевые особенности
Отличительные черты- Разработан с учетом требований высокопроизводительных вычислений (HPC) и способен эффективно работать на суперкомпьютерах, используя тысячи процессорных ядер для параллельных расчетов.
- Код масштабируется на большие системы, что позволяет моделировать сложные материалы с большим числом атомов в расчетной ячейке.
- Поддерживает гибридные вычислительные архитектуры, включая CPU и GPU, что обеспечивает высокую производительность при моделировании электронных структур и динамики атомов.
- Использует метод функционала плотности (DFT) в сочетании с передовыми методами, такими как обобщенный градиентный подход (GGA), метод Хартри-Фока (HF), GW-аппроксимация и теория динамического среднего поля (DMFT).
- Вычисление плотности состояний, зонной структуры, плотности заряда, волновых функций и других характеристик материалов.
- Изучение механических, термодинамических, магнитных и оптических свойств кристаллических систем, поверхностей и молекулярных кластеров.
- Поддержка различных приближений, включая DFT, TD-DFT, DFT+U, Hybrid-DFT, GW-расчеты и BSE (уравнение Бете-Солпитера).
- Моделирование динамики атомов с использованием первого принципа (ab initio) для исследования структурной эволюции, диффузии и фазовых переходов.
- Возможность обмена данными с программами для визуализации (VESTA, VMD) и другими пакетами квантовой химии (Gaussian, Quantum ESPRESSO, WIEN2k).
- Включает инструменты для постобработки результатов, такие как визуализация зонной структуры, вычисление энергии связи и анализ симметрии кристаллической структуры.
Выполнение расчетов на суперкомпьютере
Для выполнения расчёта на суперкомпьютере необходимо подготовить скрипт-файл для очереди задач с запросом требуемых ресурсов (см. общую инструкцию по запуску задач на суперкомпьютере).
VASP предоставляет широкие возможности для конфигурирования параметров запуска. Для составления качественного sbatch-скрипта необходимо понимание основ параллельных вычислений. Здесь приведены некоторые общие рекомендации, которые применимы для большей части расчётов с использованием VASP:
-
VASP использует MPI для распределения задач между узлами и ядрами. Количество MPI-процессов определяется общим числом доступных ядер.
- Дополнительно к MPI, VASP поддерживает многопоточность через OpenMP. Количество потоков на процесс устанавливается переменной окружения
OMP_NUM_THREADS
. Рекомендуется выбирать значение, соответствующее числу физических ядер на узел, деленному на количество MPI-процессов на узел.
- NBANDS: Количество энергетических зон, распределяемых между MPI-процессами.
- NCORE: Определяет количество ядер, используемых для параллельного выполнения быстрых преобразований Фурье (FFT). Значение
NCORE
должно быть кратно общему числу ядер и делить его без остатка. - KPAR: Параллелизация по k-точкам. Полезно при большом числе k-точек; значение должно быть делителем общего числа MPI-процессов.
- IMAGES: Используется для параллельного расчета нескольких изображений в методах, таких как NEB (Nudged Elastic Band).
Пример запуска на CPU
Для постановки задачи в очередь сформируем скрипт vasp-cpu.sbatch
#!/bin/bash #SBATCH --job-name=vasp_cpu # Название задачи #SBATCH --time=01:00:00 # Максимальное время выполнения #SBATCH --error=vasp-cpu-%j.err # Файл для вывода ошибок #SBATCH --output=vasp-cpu-%j.log # Файл для вывода результатов #SBATCH --constraint="type_d" # Предпочитаемый тип узла #SBATCH --nodes 4 # Число используемых узлов #SBATCH --ntasks 4 # Количество MPI процессов
#SBATCH --cpus-per-task=16 # Количество ядер CPU на каждую задачу #SBATCH --mail-user=ваша_почта # Укажите ваш email для отправки уведомлений #SBATCH --mail-type=END,FAIL # События, требующие уведомления
# Деактивация окружения
source deactivate
# Очистка модулей
module purge # Загрузка модуля VASP module load vasp/v6.4.3
# Указание количества потоков OpenMP
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
# Команда запуска
mpirun vasp_std
Для постановки задачи в очередь необходимо выполнить команду sbatch vasp-cpu.sbatch.Посмотреть состояние своих задач можно с помощью команды mj.
Результат выполнения скрипта будет сохранён в файл vasp-cpu-00000.log (где 00000 - номер задачи в очереди). Сообщения, выводимые в процессе работы VASP, будут записаны в файл vasp-cpu-00000.err (где 00000 - номер задачи в очереди).
Пример запуска на GPU (рекомендуется)
Для постановки задачи в очередь сформируем скрипт vasp-gpu.sbatch
#!/bin/bash #SBATCH --job-name=vasp_gpu # Название задачи #SBATCH --time=01:00:00 # Максимальное время выполнения #SBATCH --error=vasp-gpu-%j.err # Файл для вывода ошибок #SBATCH --output=vasp-gpu-%j.log # Файл для вывода результатов #SBATCH --constraint="type_a|type_b|type_c|type_e" # Тип узла #SBATCH --nodes 1 # Число используемых узлов #SBATCH --ntasks 1 # Количество MPI процессов
#SBATCH --gpus=1 # Количество графических процессоров
#SBATCH --cpus-per-task=4 # Количество ядер CPU на задачу #SBATCH --mail-user=ваша_почта # Укажите ваш email для отправки уведомлений #SBATCH --mail-type=END,FAIL # События, требующие уведомления
# Деактивация окружения
source deactivate
# Очистка модулей
module purge # Загрузка модуля VASP module load vasp/v6.4.3
# Указание количества потоков OpenMP
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
# Команда запуска
mpirun vasp_std
Для постановки задачи в очередь необходимо выполнить команду sbatch vasp-gpu.sbatch. Посмотреть состояние своих задач можно с помощью команды mj.
Результат выполнения скрипта будет сохранён в файл vasp-gpu-00000.log (где 00000 - номер задачи в очереди). Сообщения, выводимые в процессе работы VASP, будут записаны в файл vasp-cpu-00000.err (где 00000 - номер задачи в очереди).
Дополнительная информация
- Официальная страница VASP
- Инструкция по работе с системой мониторинга эффективности HPC TaskMaster
Нашли опечатку?
Выделите её, нажмите Ctrl+Enter и отправьте нам уведомление. Спасибо за участие!
Сервис предназначен только для отправки сообщений об орфографических и пунктуационных ошибках.