You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
3.2 KiB
Markdown
127 lines
3.2 KiB
Markdown
# Paralelización de simulación de permeabilidad en Cluster HPC (SLURM)
|
|
|
|
## ANTES DEL PRIMER USO
|
|
|
|
Seguir los siguientes pasos del tutorial:
|
|
|
|
1. Clonar este repositorio
|
|
2. Entrar al entorno NIX
|
|
3. Generar entorno Python para la simulación
|
|
|
|
## USO HABITUAL:
|
|
|
|
Habiendo completado las instrucciones previas al primer uso:
|
|
|
|
1. Entrar al entorno NIX
|
|
2. Activar el entorno python
|
|
3. 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 el `NOMBRE` 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.
|