Diferencia entre revisiones de «VASP»
Línea 251: | Línea 251: | ||
====Recomendaciones Adicionales==== | ====Recomendaciones Adicionales==== | ||
'''Regla general''': | |||
{{math|NPAR × KPAR ≈ Núcleos totales}} | |||
'''Ejemplo para 64 núcleos''': | |||
NPAR × KPAR | * {{mono|NPAR{{=}}16}}, {{mono|KPAR{{=}}4}} (16 × 4 = 64) | ||
* '''Alternativa''': {{mono|NPAR{{=}}8}}, {{mono|KPAR{{=}}8}} (8 × 8 = 64) | |||
{| class="wikitable" | |||
|+ Recomendaciones de configuración | |||
|- | |||
! Núcleos !! NPAR !! KPAR | |||
|- | |||
| 24 || 6 || 4 | |||
|- | |||
| 64 || 16 || 4 | |||
|- | |||
| 128 || 32 || 4 | |||
|} | |||
== Evitar OpenMP == | |||
{{caution|icon=performance}} Las pruebas muestran que: | |||
* '''MPI puro''' es significativamente más rápido que | |||
* Configuraciones híbridas (MPI + OpenMP) '''o''' | |||
* Solo OpenMP | |||
== Monitoreo de Rendimiento == | |||
'''Pasos recomendados''': | |||
# Verificar el archivo {{mono|OUTCAR}} (buscar "Maximum memory used") | |||
# Ajustar {{mono|NPAR}}/{{mono|KPAR}} si se observan: | |||
** Cuellos de botella en E/S | |||
** Problemas de comunicación entre nodos | |||
** Bajo rendimiento | |||
{{tip|Para sistemas grandes (>200 átomos), considerar aumentar NPAR en un 10-20%}} | |||
== Uso de software licenciado == | == Uso de software licenciado == |
Revisión del 18:39 8 abr 2025
¿Qué es?
VASP (Vienna Ab initio Simulation Package) es un paquete de mecánica cuántica para simulaciones de dinámica molecular a nivel ab initio, utilizando pseudopotenciales o el método Projector-Augmented Wave (PAW) y una base de ondas planas.
La metodología usada en este software se basa en la aproximación local de la densidad (LDA) y una evaluación exacta del estado fundamental en cada paso de la dinámica molecul
Modulos
VASP se encuentra disponible en varias versiones, tanto para infraestructura INTEL como para AMD.
Las últimas versiones disponibles son:
* 6.2.1 * 6.3.2 * 6.4.3
Puede buscar las versiones de VASP para intel ejecutando:
intelsoftware ml spider VASP
Y para buscar las versiones de AMD puede ejecutar:
amdsoftware ml spider vasp
Definir entorno
En el archivo INCAR configuramos las siguientes variables respecto a la reserva que hagamos para tener idealmente de 1 átomo por core.
NPAR = 5 #cantidad de nodos NCORE = 20 #cantidad de cores por nodo #evitar exceso de carga en I/O LWAVE = .FALSE. LCHARG = .FALSE. LVTOT = .FALSE.
Ejemplo de Lanzador
Para INTEL
Ejemplo de SBATCH para enviar a particiones general y largemem:
#!/bin/bash #SBATCH -J ejemplo #SBATCH -p general #SBATCH -n 88 #SBATCH --ntasks-per-node=44 #SBATCH --mem-per-cpu=4200 #SBATCH --mail-user=usuario@correo.cl #SBATCH --mail-type=ALL #SBATCH -o %j_%x.out #SBATCH -e %j_%x.err ml purge ml intel/2022.00 ml VASP/6.3.2 export OMP_NUM_THREADS=1 export MKL_NUM_THREADS=1 export MKL_DYNAMIC=FALSE #vasp_std for standard NVT calculation and non-gamma k-points #vasp_gam for standard NVT calculation and only gamma-point #vasp_ncl for NPT ensemble and non-gamma-point calculations EXEC=vasp_gam BINVASP="${EXEC}" export BINVASP srun $BINVASP
Para AMD
El siguiente ejemplo muestra la versión de VASP 6.4.3 para ser ejecutada en un nodo de la partición main.
Es importante destacar que al momemento de cargar estos módulos se generan avisos de tipo Warning, por lo que se recomienda monitorear la tarea y su comportamiento.
#!/bin/bash #SBATCH --job-name="TareaVASP" #SBATCH --partition="main" #SBATCH -n 1 #SBATCH -c 256 #SBATCH --mem-per-cpu=2839 ##SBATCH --ntasks-per-node=64 #SBATCH --output=TareaVASP-%j.out # #SBATCH --mail-type=ALL ml aocc ml openmpi/5.0.5-zen4-j ml amdfftw/4.2-mpi-openmp-zen4-tjgyk3c ml vasp/6.4.3-mpi-openmp-zen4-e export OMPI_MCA_mtl=ofi export OMP_NUM_THREADS=256 export OMP_PLACES=cores srun vasp_std
Pruebas y recomendaciones de ejecución AMD
Los ejemplos descritos a continuación describen la configuración recomendada para ejecutar simulaciones con VASP (Vienna Ab initio Simulation Package) de manera eficiente (procesos) utilizando el paradigma MPI por sobre OpenMP o configuraciones híbridas (MPI + OpenMP)..
A continuación, compartimos configuraciones recomendadas para distintos números de núcleos, que podrían ser útiles para mejorar el rendimiento de tus simulaciones.
Script de Ejemplo (24 núcleos)
#!/bin/bash #SBATCH --job-name="MPI" #SBATCH -p main #SBATCH -n 24 # Total de procesos MPI #SBATCH --ntasks-per-node=24 # Procesos por nodo (ajustar según arquitectura) #SBATCH -c 1 # 1 thread por proceso (MPI puro) #SBATCH --mem=30000 # Memoria en MB (ajustar según necesidades) #SBATCH --output=MiTareaVASP-log/%j.out #SBATCH --error=MiTareaVASP-log/%j.err # Cargar módulos necesarios ml gcc/14.2.0-zen4-y ml vasp/6.4.3-mpi-openmp-h5-zen4-c # Limpiar archivos previos rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT # Configuración MPI (opcional) export OMPI_MCA_mtl=ofi # Medir tiempo de ejecución echo "Inicio: $(date)" /usr/bin/time -v srun vasp_std echo "Fin: $(date)"
Parámetros Clave en el INCAR
Parámetro | Valor recomendado (24 núcleos) | Descripción |
---|---|---|
NPAR | 6 | Número de bandas calculadas en paralelo. |
NCORE | 1 | Evita OpenMP (MPI puro es más eficiente). |
KPAR | 4 | División de la malla k-point. |
Script de Ejemplo (64 núcleos)
#!/bin/bash #SBATCH --job-name="MPI" #SBATCH -p main #SBATCH -n 64 # Total de procesos MPI #SBATCH --ntasks-per-node=64 # Procesos por nodo (ajustar según arquitectura) #SBATCH -c 1 # 1 thread por proceso (MPI puro) #SBATCH --mem=80000 # Memoria en MB (ajustar según necesidades) #SBATCH --output=MiTareaVASP-log/%j.out #SBATCH --error=MiTareaVASP-log/%j.err # Cargar módulos necesarios ml gcc/14.2.0-zen4-y ml vasp/6.4.3-mpi-openmp-h5-zen4-c # Limpiar archivos previos rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT # Configuración MPI (opcional) export OMPI_MCA_mtl=ofi # Medir tiempo de ejecución echo "Inicio: $(date)" /usr/bin/time -v srun vasp_std echo "Fin: $(date)"
Parámetros Clave en el INCAR
Parámetro | Valor recomendado (24 núcleos) | Descripción |
---|---|---|
NPAR | 16 | Número de bandas calculadas en paralelo. |
NCORE | 1 | Evita OpenMP (MPI puro es más eficiente). |
KPAR | 4 | División de la malla k-point. |
Script de Ejemplo (128 núcleos)
#!/bin/bash #SBATCH --job-name="MPI" #SBATCH -p main #SBATCH -n 128 # Total de procesos MPI #SBATCH --ntasks-per-node=128 # Procesos por nodo (ajustar según arquitectura) #SBATCH -c 1 # 1 thread por proceso (MPI puro) #SBATCH --mem=160000 # Memoria en MB (ajustar según necesidades) #SBATCH --output=MiTareaVASP-log/%j.out #SBATCH --error=MiTareaVASP-log/%j.err # Cargar módulos necesarios ml gcc/14.2.0-zen4-y ml vasp/6.4.3-mpi-openmp-h5-zen4-c # Limpiar archivos previos rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT # Configuración MPI (opcional) export OMPI_MCA_mtl=ofi # Medir tiempo de ejecución echo "Inicio: $(date)" /usr/bin/time -v srun vasp_std echo "Fin: $(date)"
Parámetros Clave en el INCAR
Parámetro | Valor recomendado (24 núcleos) | Descripción |
---|---|---|
NPAR | 32 | Número de bandas calculadas en paralelo. |
NCORE | 1 | Evita OpenMP (MPI puro es más eficiente). |
KPAR | 4 | División de la malla k-point. |
Recomendaciones Adicionales
Regla general: Plantilla:Math
Ejemplo para 64 núcleos:
- Plantilla:Mono, Plantilla:Mono (16 × 4 = 64)
- Alternativa: Plantilla:Mono, Plantilla:Mono (8 × 8 = 64)
Núcleos | NPAR | KPAR |
---|---|---|
24 | 6 | 4 |
64 | 16 | 4 |
128 | 32 | 4 |
Evitar OpenMP
Plantilla:Caution Las pruebas muestran que:
- MPI puro es significativamente más rápido que
- Configuraciones híbridas (MPI + OpenMP) o
- Solo OpenMP
Monitoreo de Rendimiento
Pasos recomendados:
- Verificar el archivo Plantilla:Mono (buscar "Maximum memory used")
- Ajustar Plantilla:Mono/Plantilla:Mono si se observan:
- Cuellos de botella en E/S
- Problemas de comunicación entre nodos
- Bajo rendimiento
Uso de software licenciado
El uso de este software está restringido a los usuarios que dispongan de una licencia válida de VASP, la cual deben enviar al correo de soporte.
Referencias
* The VASP site * How to use VASP * First time you run a VASP job? * VASP bwHPC * VASP Wiki-Ncore