2.8 KiB
Paralelización de simulación de permeabilidad
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
Habilitar NIX e ingresar a entorno
enable_nix
nix-shell
Para más info ver el archivo shell.nix
.
Instalación de las librerías (Python 3)
Los siguentes requisitos vienen provistos por nix-shell
:
python3
python3-pip
gfortran
gcc
build-essentials
make install
El instalador genera un entorno virtual en venv
.
Para activar el entorno virtual:
source venv/bin/activate
Para desactivarlo deactivate
.
Correr simulación/tests/performance en cluster
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 eoncolado 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.