Diferencia entre revisiones de «Usoslurm»
(No se muestran 6 ediciones intermedias del mismo usuario) | |||
Línea 100: | Línea 100: | ||
= Mínimo uso de recursos = | = Mínimo uso de recursos = | ||
Siempre que quiera correr una tarea, asegurese que va a pedir lo minimo posible de CPU | Siempre que quiera correr una tarea, asegurese que va a pedir lo minimo posible de CPU / gpu, sino, | ||
por un lado estara acaparando recursos que no usa y por lo tanto quedaran osciosos y por el otro, será mas dificil que su trabajo entre en la cola de procesamiento | por un lado estara acaparando recursos que no usa y por lo tanto quedaran osciosos y por el otro, será mas dificil que su trabajo entre en la cola de procesamiento | ||
<syntaxhighlight lang="bash" > | <syntaxhighlight lang="bash" > | ||
#SBATCH -p gpu # usar particion de GPU | #SBATCH -p gpu # usar particion de GPU | ||
#SBATCH --cpus-per-task 4 | #SBATCH --cpus-per-task 4 | ||
#SBATCH --gres=gpu:1 # cantidad de gups a utilizar | #SBATCH --gres=gpu:1 # cantidad de gups a utilizar | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Línea 115: | Línea 114: | ||
Pasar el limpio esto: https://gist.github.com/ezequieljsosa/f820947b9c3a861930013bc37b2ff5b1 | Pasar el limpio esto: https://gist.github.com/ezequieljsosa/f820947b9c3a861930013bc37b2ff5b1 | ||
= Usar AlphaFold = | |||
<syntaxhighlight lang="bash" > | |||
# Pedir un nodo con GPU: -p gpu --gres=gpu:1 | |||
srun --nodes=1 --ntasks-per-node=1 --cpus-per-task=1 -p gpu --gres=gpu:1 --pty bash -i | |||
#cargar el ambiente de conda: | |||
eval "$(/home/shared/miniconda3.8/bin/conda shell.bash hook)" | |||
conda activate colabfold | |||
# ejecutar: primer parámetro son las secuencias, el segundo el directorio de resultados. | |||
# Para extra información consultar la ayuda de colabfold_batch | |||
colabfold_batch --amber --templates --use-gpu-relax aa.fasta dir_resultados | |||
</syntaxhighlight> |
Revisión actual del 17:25 24 oct 2023
IMPORTANTE
Nunca, jamas, ejecutar un trabajo directamente sobre la terminal. El trabajo nunca terminara y estará perjudicando a TODOS los usuarios del cluster.
Cola de trabajos
Explicar lo que es el slurm, los recursos GPU, CPU y particiones
Permisos
Usted como usuario, NO tiene permisos de admin ni sudo, eso implica que no puede instalar programas o librerias a nivel sistema, por ejemplo con apt-get, snap o R. Siempre que quiera usar algo verifique primero si esta en [programas|programas disponibles]. Si no es así, debe instalar su propio ambiente en su usuario. Para eso recomendamos el uso de Miniconda https://docs.conda.io/en/latest/miniconda.html
Tipos de trabajos
qué hago si debo descargar un programa ?
Si la operacion consiste solo en descargar datos, por ejemplo con wget o rsync, recomendamos abrir una sesión de screen y realizar la descarga directamente.
Tenga en cuenta que, a nivel red de la FCEN, estan bloqueados TODOS los puertos menos los standard (http 80, https 443, ftp 21, ssh 22 ). Si quiere descargar algo que no esta en esos puertos, tendra que hacerlo desde otro lado y luego copiarlo a su usuario.
Tambien recomendamos mirar la carpeta /home/shared/databases en la cual hay numerosas base de datos descargadas.
qué hago si debo compilar o preprocesar datos
Para eso recomendamos usar una session interactiva:
screen # recomendamos para evitar problemas de conexion
srun --nodes=1 --ntasks-per-node=1 --cpus-per-task=1 --time=01:00:00 --pty bash -i
Con esto, se asignara un procesador sobre un nodo y se ofrecera una consola de manera interactiva (si es que hay una disponible), ahi podra realizar los comandos que necesite, por ejemplo: "make", "gcc", find, md5, "makeblastdb", etc...
Aqui debe pedir solo un nodo y solo un procesador
Ejemplo para conda
Para eso se debe crear un archivo bash, que contenga que parametros utilizara el script, para que pueda ser encolado de acuerdo a los recursos disponibles. A continuacion hay un ejemplo de como correr blast:
blast.sh
#!/bin/bash
#SBATCH -p cpu
#SBATCH --job-name=testg5pdb # Job name
#SBATCH -e slurm-%j.err
#SBATCH -o slurm-%j.out
#SBATCH --cpus-per-task 2
#SBATCH --mem=4gb
# Se loguean los datos del trabajo
echo "trabajo \"${SLURM_JOB_NAME}\""
echo " id: ${SLURM_JOB_ID}"
echo " partición: ${SLURM_JOB_PARTITION}"
echo " nodos: ${SLURM_JOB_NODELIST}"
echo
date +"inicio %F - %T"
echo "
--------------------------------------------------------------------------------
"
# se activa el ambiente de conda
eval "$(conda shell.bash hook)"
source activate blast
# se ejecuta el comando
srun blastp -query vf.fasta -db VFDB_setB_pro.fas
echo "
--------------------------------------------------------------------------------
"
# se guarda información de uso
sacct --format=JobID,Submit,Start,End,State,Partition,ReqTRES%30,CPUTime,MaxRSS,NodeList,MaxVMSize,MaxVMSizeNode --units=M -j $SLURM_JOBID
Para ejecutar el comando:
sbatch blast.sh
Recuerde que no tiene permiso de admin, asi que la mayoria del software tendra que instalarla en su usuario. En este caso, para usar el programa blast, primero se creo un ambiente conda, donde se instalo el mismo. Si no usa conda, esas 2 lineas NO son necesarias.
Mínimo uso de recursos
Siempre que quiera correr una tarea, asegurese que va a pedir lo minimo posible de CPU / gpu, sino, por un lado estara acaparando recursos que no usa y por lo tanto quedaran osciosos y por el otro, será mas dificil que su trabajo entre en la cola de procesamiento
#SBATCH -p gpu # usar particion de GPU
#SBATCH --cpus-per-task 4
#SBATCH --gres=gpu:1 # cantidad de gups a utilizar
Ejemplo para Amber
Completar!!
Script con parámetros
Pasar el limpio esto: https://gist.github.com/ezequieljsosa/f820947b9c3a861930013bc37b2ff5b1
Usar AlphaFold
# Pedir un nodo con GPU: -p gpu --gres=gpu:1
srun --nodes=1 --ntasks-per-node=1 --cpus-per-task=1 -p gpu --gres=gpu:1 --pty bash -i
#cargar el ambiente de conda:
eval "$(/home/shared/miniconda3.8/bin/conda shell.bash hook)"
conda activate colabfold
# ejecutar: primer parámetro son las secuencias, el segundo el directorio de resultados.
# Para extra información consultar la ayuda de colabfold_batch
colabfold_batch --amber --templates --use-gpu-relax aa.fasta dir_resultados