• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

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).
  • Включает инструменты для постобработки результатов, такие как визуализация зонной структуры, вычисление энергии связи и анализ симметрии кристаллической структуры.

Рис. 1. Пример визуализации расчёта с использованием VASP – диаграмма зонной структуры

Выполнение расчетов на суперкомпьютере

Для выполнения расчёта на суперкомпьютере необходимо подготовить скрипт-файл для очереди задач с запросом требуемых ресурсов (см. общую инструкцию по запуску задач на суперкомпьютере).
VASP предоставляет широкие возможности для конфигурирования параметров запуска. Для составления качественного sbatch-скрипта необходимо понимание основ параллельных вычислений. Здесь приведены некоторые общие рекомендации, которые применимы для большей части расчётов с использованием VASP:

  • VASP использует MPI для распределения задач между узлами и ядрами. Количество MPI-процессов определяется общим числом доступных ядер.

  • Дополнительно к MPI, VASP поддерживает многопоточность через OpenMP. Количество потоков на процесс устанавливается переменной окружения OMP_NUM_THREADS. Рекомендуется выбирать значение, соответствующее числу физических ядер на узел, деленному на количество MPI-процессов на узел.
В VASP имеются следующие основные параметры параллелизации вычислений:
  • 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 - номер задачи в очереди).

Дополнительная информация


 

Нашли опечатку?
Выделите её, нажмите Ctrl+Enter и отправьте нам уведомление. Спасибо за участие!
Сервис предназначен только для отправки сообщений об орфографических и пунктуационных ошибках.