--
AdminUser - 30 Jan 2023
Que es AMBER?
AMBER es el acrónimo de "Assisted Model Building with Energy Refinement" con el que se nombra al conjunto de herramientas compuestas por
Amber18 , principalmente el programa de simulacion
pmemd (“pmemd” stands for “Particle Mesh Ewald Molecular Dynamics”). y
AmberTools18, un conjunto de programas con licencia no propietaria para análisis y simulación biomolecular.
AMBER18 integra el uso de
GPU`s para los métodos GPU accelerated Thermodynamic Integration (TI) y Free Energy Perturbation (FEP).
El container con Amber18 esta en: /localapps/Amber18_cuda_10.2_centos7
Usted puede ejecutar Amber18 en la Federación de cluster en una sesión iteractiva donde los
resultados se esperan en tiempos NO MAYORES a Cuatro(4) horas; para tiempos superiores debe agendar la ejecucion mediante scripts.
Ejecutar Amber18 en una sesion Interactiva vía SRUN en un cluster Federado
Este procedimiento posibilita usar inmediatamente los recursos con los que ejecutará los procesos;
Siempre y cuando esten disponibles y su programa no requiera mas de Cuatro(4) horas de reloj pared – wall-clock – de procesamiento.
Luego de conectarse con una sesión ssh en el nodo de logeo del cluster o en el nodo de logeo de la Federación de clusters, debe solicitar los recursos en una sesión interactiva usando el commando
srun con los parametros
Commando | Parametro Formato Corto y Largo | Ejemplo | Descripcion |
srun |
-M NombreCluster
-clusters= NombreCluster
|
-Mqteorica
--clusters=qteorica
| Cluster Federado donde estan los Recursos |
-pNombre_de_Particion
--partition=Nombre_de_Particion
|
-prack-gpu
--partition=rack-gpu
| Particion del cluster federado donde estan los recursos |
srun -Mqteorica --partition=rack-gpu --pty /bin/bash -i
Para ejecuitar el container de Amber usted debe informar a singularity el directorio de trabajo y/o donde estan ubicados sus datos(ruta o path) usando la variable "SINGULARITY_BINDPATH", P. eje. los datos de este tutorial están en "/media/home/jrbolivarm", por lo que debo pasar esta ruta a la variable:
export SINGULARITY_BINDPATH="/media:/media"
Todo el árbol y contenido del directorio "/media" del sistema operativo,
sera accesible en la ruta "/media" dentro del container. Luego puede ejecutar una "shel"l dentro del container y acceder a los datos en "/media/home/jrbolivarm" usando la GPU(--nv)
El uso de la CPU puede visualizarse con "top", el uso de la GPU puede verse con "nvidia-smi"
En la federación de Clusters del CECC los recursos compartidor entre usuarios son aportados por cluster asociados, para garantizar un uso justo, todos deben realizar el envio de trabajos a través del sistema por lotes que ejecutará las aplicaciones con los recursos reservados.
Usar un script para correr Amber18 en un HPC del CECC
Para enviar su trabajo a procesar en un HPC del CECC debe construir un
script de shell con algunas directivas que especifican la cantidad de CPU, memoria, tiempo a usar, número de nodos y otras directivas que el sistema SLURM interpretará al enviarlo con el comando
sbatch .
Para ejecutar el mismo ejemplo iteractivo de Amber18 cree el archivo
run_amber.sh, incluya la ruta de los directorios a usar con la variable "SINGULARITY_BINDPATH", en el ejemplo, los datos estan en "/media/home/jrbolivarm".
Recuerde que el
directorio de trabajo(donde se ubica los archivos/directorios de entrada/salida) por omision es el directorio actual de trabajo(pwd) y tambien debe ser incluido la variable "SINGULARITY_BINDPATH".
#!/bin/bash -l
#SBATCH --job-name=AmberTE # Nombre del proceso...se mostrara en la cola de procesos
#SBATCH --gres=gpu:turing:1 # GPU por Nodo
#SBATCH --partition=gpu.normal.q # Particion o Grupo donde se encuentra el nodo a usar
#SBATCH --cpus-per-task=6 # CPU cores/threads
#SBATCH --output=amber18_slurm_%j.out # donde almacenara la salida estandar (%j es el ID del proceso o JOBID)
#SBATCH --error=amber18_slurm_%j.err # donde almacenara la salida del error estandar(%j es el ID del proceso o JOBID)
export SINGULARITY_BINDPATH="/media:/media"
singularity run --nv /localapps/Amber18_cuda_10.2_centos7 pmemd.cuda -O -i prod.in -o prod.out -p 6Q04_ion.prmtop -c equil.rst7 -r prod.rst7 -inf prod.info -x prod_6Q04_ion.nc
Luego, para agendar los recursos solicitados y correr el proceso ejecuite en la consola o terminal:
* _sbatch_* run_amber.sh
Puede ver que su proceso corre en la cola de tareas SLURM con el comando
squeue
Tambien puede usar nvidia-smi para ver el uso de la GPU