3.2 KiB
Paralelización de simulación de permeabilidad en Cluster HPC (SLURM)
ANTES DEL PRIMER USO
Seguir los siguientes pasos del tutorial:
- Clonar este repositorio
- Entrar al entorno NIX
- Generar entorno Python para la simulación
USO HABITUAL:
Habiendo completado las instrucciones previas al primer uso:
- Entrar al entorno NIX
- Activar el entorno python
- Ejecutar las siimulaciones de interés
Clonar este repositorio
# Por HTTPS
git clone https://git.csc.gob.ar/ssantisi/simulacion-permeabilidad.git
# Por SSH
git clone git@git.csc.gob.ar:ssantisi/simulacion-permeabilidad.git
Entrar a la carpeta del proyecto
cd simulacion-permeabilidad
Entrar al entorno NIX
nix-shell
Para más info ver el archivo shell.nix
.
Generar entorno Python para la simulación
Los siguentes requisitos ya vienen provistos por nix-shell
:
python3
python3-pip
gfortran
gcc
build-essentials
make install
El instalador genera un entorno virtual en venv
.
Activar el entorno python
Para activar el entorno virtual (LUEGO DE HABER ACTIVADO EL ENTORNO NIX):
source venv/bin/activate
Para desactivarlo deactivate
.
Correr simulaciones de interés
Los siguientes comandos encolan trabajos en el cluster, que correrán tan pronto como les toque su lugar en la cola de trabajos.
Se puede monitorear el estado de el/los trabajos encolados con squeue
.
Se puede cancelar un trabajo encolado con scancel numero_de_trabajo
Correr la simulación (en SLURM)
Por defecto: 2 nodos, 32 tasks por nodo.
Para cambiarlo editar archivo run-simulation-slurm
.
make run-slurm
Una vez en ejecución, la salida se escribe a los siguientes archivos:
simulation-nro-de-trabajo.out
la salida del trabajo.simulation-nro-de-trabajo.err
los errores del proceso
Correr los casos de prueba (en SLURM)
Por defecto: 1 nodo, 64 cpus por nodo.
Para cambiarlo editar archivo run-tests-slurm
.
make test-slurm
Una vez en ejecución, la salida se escribe a los siguientes archivos:
test-nro-de-trabajo.out
la salida del trabajo.test-nro-de-trabajo.err
los errores del proceso
Correr las pruebas de performance (en SLURM)
Por defecto: 1 nodo, 64 cpus por nodo.
Para cambiarlo editar archivo run-perf-slurm
.
make perf-slurm
Una vez en ejecución, la salida se escribe a los siguientes archivos:
perf-nro-de-trabajo.out
la salida del trabajo.perf-nro-de-trabajo.err
los errores del proceso
Branches de github
Explicacion sobre las branches que quedaron en github para entender cuales usar:
-
main
-> solo la migracion a python3 sin ninguna cambio sobre el modulo de FFTMA (sin mejoras) -
improvement_NOMBRE
-> branch con elNOMBRE
de la mejora que esta explicado que hace cada una en el analisis
donde la primera es remove_generate_array
y la ultima es multiple_buffers
-
improvement_NOMBRE-logs
-> misma branch de mejora pero agregando informacion de logs que se utilizo para realizar los analisis y no deberian utilizarse porque degradan la performance considerablemente. -
migrate_fortran
-> una branch donde se trato de migrar de fortran a C pero quedo inconcluso el trabajo y no se continuo.