Amber con aceleración en la GPU

Empieza hoy mismo con esta guía para aplicaciones listas para GPU.

Amber

AMBER es una aplicación de dinámica molecular desarrollada para la simulación de sistemas biomoleculares. AMBER es una aplicación con aceleración en la GPU que ejecuta tanto simulaciones de PME con solvente explícito como de GB con solvente implícito.

La versión más reciente, AMBER 16, se ejecuta hasta 15 veces más rápido en GPU NVIDIA que en sistemas con solo CPU*, lo que permite a los usuarios ejecutar simulaciones biomoleculares en horas en vez de días. AMBER se distribuye con licencia de la Universidad de California.

*Servidor de doble CPU: Intel E5-2690 v4 @ 2,6 GHz | Turbo (Broadwell-EP) 3,5 GHz | NVIDIA® Tesla® P100 | Desactivación de ECC | Activación de aumento automático | Conjunto de datos PME-JAC_NVE_2fs

Amber se ejecuta hasta 15 veces más rápido en las GPU

Instalación

Requisitos del sistema

AMBER se puede transferir a cualquier versión de Linux con compiladores C, C++ y Fortran 95. AMBER hace un uso intensivo de la GPU, por lo que las GPU más recientes ofrecerán el máximo rendimiento. Consulta la sección Configuraciones recomendadas del sistema para obtener más detalles. 

Instrucciones de descarga e instalación

AMBER se distribuye en formato de código fuente con la compra de una licencia. Puedes encontrar más información en el sitio web de la aplicación. 

A CONTINUACIÓN SE PRESENTA UN BREVE RESUMEN DEL PROCEDIMIENTO DE COMPILACIÓN

1. Descarga los archivos de código fuente de AMBER y AmberTools.

2. Instala las dependencias. Para obtener información sobre cómo instalar las dependencias de AMBER en diversas distribuciones Linux, haz clic aquí. Para más información, consulta el manual de referencia oficial.

3. Extrae los paquetes y establece la variable de entorno AMBERHOME (mostrada aquí para Bash):

tar xvjf AmberTools16.tar.bz2
tar xvjf Amber16.tar.bz2
cd amber16
export AMBERHOME=`pwd` # bash, zsh, ksh, etc.
setenv AMBERHOME `pwd` # csh, tcsh

4.Configura AMBER.

Es posible que el script de compilación tenga que actualizar AMBER o AmberTools. Cada vez que se te pregunte, selecciona "y" para aceptar.

./configure -cuda -noX11 gnu # Compatibilidad con CUDA, compiladores de GNU
./configure -cuda -mpi -noX11 gnu # Compatibilidad con CUDA y MPI, compiladores de GNU

5.Compila AMBER.

make install -j8 # use 8 threads to compile

Si quieres realizar ejecuciones de GPU tanto individuales como múltiples, debes realizar los pasos de configuración y compilación para ambos casos, con y sin MPI.

./configure -cuda -noX11 gnu
make install -j32
./configure -cuda -mpi -noX11 gnu
make install -j32

Para realizar ejecuciones de pruebas de referencia con solo CPU, puede que también haya que compilar código binario no habilitado para CUDA.

./configure -mpi -noX11 gnu
make install -j32

Ejecución de trabajos

Antes de ejecutar una versión de AMBER con aceleración en la GPU, instala el controlador de pantalla más reciente de NVIDIA para tu GPU.

Para ejecutar AMBER, necesitas el ejecutable "pmemd.cuda". En el caso de ejecuciones de GPU múltiples también necesitas el ejecutable "pmemd.cuda.MPI" (consulta las instrucciones de descarga e instalación para ver cómo realizar compilaciones compatibles con MPI). En el caso de ejecuciones de GPU múltiples, las GPU deben estar situadas en el mismo nodo físico y las que se usen deben ser compatibles con la comunicación del mismo nivel para conseguir el mejor rendimiento posible.

También has de descargar el conjunto de pruebas de referencia de AMBER16, disponible gratuitamente en su página de pruebas de referencia. A partir de este momento presuponemos que has descargado estas pruebas y las has extraído a un directorio que denominaremos $BENCHMARKS.

OPCIONES DE LA LÍNEA DE COMANDOS

Se recomienda establecer los relojes boost GPU en el máximo al ejecutar AMBER para obtener el mejor rendimiento. En este caso, establecimos los relojes para GPU 0, que utiliza los relojes boost con una tarjeta Tesla K80 en la primera línea, una tarjeta Tesla M40 en la segunda y una tarjeta Tesla P100 en la tercera. Tenga en cuenta que es posible que los dispositivos GeForce no tengan relojes boost modificables.

nvidia-smi -i 0 -ac 2505,875 # K80
nvidia-smi -i 0 -ac 3004,1114 # M40
Nvidia-smi -i 0 -ac 715,1328 # P100

Línea de comandos general que ejecuta AMBER en un sistema de un solo nodo:

$AMBERHOME/bin/pmemd.cuda -i {input} -o {output file} {options}

En un sistema de GPU múltiples, es preciso ejecutar AMBER con mpirun tal y como se especifica a continuación:

mpirun -np $AMBERHOME/bin/pmemd.cuda.MPI -i {input} -o {output} {options}

{options}

1. -O : sobrescribir el archivo de salida si ya existe.

2. -o : especificar el nombre de archivo de la salida en la que se va a escribir

Se recomienda comprobar siempre el comienzo del archivo de salida para asegurarse de que los 87 parámetros, en concreto las GPU, se han especificado correctamente.

{input}

Utiliza el correspondiente archivo de entrada en uno de los conjuntos de datos de la subsección siguiente (por lo general, mdin.GPU)

Ejemplo 1. Ejecuta JAC production NVE (DHFR (NVE) 2fs en la página de pruebas de referencia) en una GPU individual:

cd $BENCHMARKS/PME/JAC_production_NVE
$AMBERHOME/bin/pmemd.cuda -i mdin.GPU -O -o mdout

Ejemplo 2. Ejecuta Cellulose production NPT en dos GPU (en el mismo nodo):

cd $BENCHMARKS/PME/Cellulose_production_NPT
mpirun -np 2 $AMBERHOME/bin/pmemd.cuda.MPI -i mdin.GPU -O -o mdout

Ejemplo 3. Ejecuta Cellulose production NPT en 32 GPU (en el mismo nodo):

cd $BENCHMARKS/PME/Cellulose_production_NPT
mpirun -np 32 $AMBERHOME/bin/pmemd.MPI -i mdin.CPU -O -o mdout

Pruebas de referencia

En esta sección se muestra la aceleración en la GPU con determinados conjuntos de datos. Las pruebas de referencia se enumeran por orden creciente de número de átomos. Al leer la salida, el factor de mérito es "ns/día" (cuanto más alto, mejor), situado al final de la salida en el archivo "mdout". Es mejor realizar la medición de todas las etapas (en lugar de los últimos 1000 pasos).

Production MD NPT típica con BUENA conservación energética, 2fs.
# of Atoms
23,558

Typical Production MD NPT with GOOD energy conservation, 2fs.

&cntrl
ntx=5, irest=1,
ntc=2, ntf=2, tol=0.000001,
nstlim=250000,
ntpr=2500, ntwx=2500,
ntwr=250000,
dt=0.002, cut=8.,
ntt=0, ntb=1, ntp=0,
ioutfm=1,
/
&ewald
dsum_tol=0.000001,
/

DHFR (JAC PRODUCTION) NPT 2FS

JAC (Joint Amber CHARMM) Production NPT corresponde a DHFR en una caja de agua TIP3P. Se trata de una de las pruebas de referencia más pequeñas, con 23 588 átomos que incluyen agua. La prueba de referencia se ejecuta con un modelo de solvente explícito (PME).

Production MD NPT típica con BUENA conservación energética.
# of Atoms
90,906

Typical Production MD NPT with GOOD energy conservation.

&cntrl
ntx=5, irest=1,
ntc=2, ntf=2, tol=0.000001,
nstlim=70000,
ntpr=1000, ntwx=1000,
ntwr=10000,
dt=0.002, cut=8.,
ntt=0, ntb=1, ntp=0,
ioutfm=1,
/
&ewald
dsum_tol=0.000001
/

FACTOR IX NPT

FactorIX es una prueba de referencia que simula el factor IX de coagulación sanguínea. Consiste en 90 906 átomos que incluyen agua. El agua es un solvente TIP3P explícito. Esta prueba de referencia se ejecuta con un modelo de solvente explícito (PME).

Production MD NVT típica
# of Atoms
408,609

Typical Production MD NVT
 

& cntrl
ntx=5, irest=1,
ntc=2, ntf=2,
nstlim=14000,
ntpr=1000, ntwx=1000,
ntwr=8000,
dt=0.002, cut=8.,
ntt=1, tautp=10.0,
temp0=300.0,
ntb=2, ntp=1, barostat=2,
ioutfm=1,
/

CELLULOSE NPT

Esta prueba de referencia simula una fibra de celulosa. Se trata de uno de los modelos más grandes que se pueden simular en la prueba de referencia con 408 609 átomos que incluyen agua. El agua se modela como método TIP3P explícito. La prueba de referencia se realiza con un modelo de solvente explícito (PME).

Resultados del rendimiento esperado

En esta sección se incluyen pruebas de referencia del rendimiento esperado en distintos sistemas de uno o varios nodos.

Rendimiento de Amber (JAC_NVE) en un servidor de un solo nodo
Rendimiento de Amber (factorIX_NVE) en un servidor de un solo nodo
Rendimiento de Amber (Cellulose_NPT) en un servidor de un solo nodo

Configuraciones recomendadas del sistema

Configuración de hardware

PC

Parámetro
Especificaciones

Arquitectura de CPU

x86

Memoria del sistema

16-32 GB

CPU

1-2

Modelo de GPU

NVIDIA TITAN X

GPU

1-2

Servidores

Parámetro
Especificaciones

Arquitectura de CPU

x86

Memoria del sistema

64-128 GB

CPU

1-2

Modelo de GPU (para estaciones de trabajo)

Tesla® P100

Modelo de GPU (para servidores))

Tesla® P100

GPU

1-2 P100 PCIe
1-4 P100 SMX2

Configuración de software

Pila de software

Parámetro
Versión

Aplicación

AMBER 16

SO

CentOS 7.2

Controlador de GPU

375.20 o posterior

Kit de herramientas de CUDA

8.0 o posterior

Ve una lista de GPU compatibles en Amber.

Crea tu solución ideal de GPU hoy mismo.