parent
fc50b6b600
commit
949b7853ab
@ -0,0 +1,73 @@
|
|||||||
|
# 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
|
||||||
|
```
|
||||||
|
|
||||||
|
## Instalación de las librerías (Python 3)
|
||||||
|
|
||||||
|
Como requisitos previos a la instalación hace falta tener:
|
||||||
|
|
||||||
|
* `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 la simulación
|
||||||
|
|
||||||
|
```
|
||||||
|
make run
|
||||||
|
```
|
||||||
|
|
||||||
|
## Correr los casos de prueba
|
||||||
|
|
||||||
|
```
|
||||||
|
make test
|
||||||
|
```
|
||||||
|
|
||||||
|
## Correr las pruebas de performance
|
||||||
|
|
||||||
|
```
|
||||||
|
make perf
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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.
|
@ -0,0 +1,109 @@
|
|||||||
|
# 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 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.
|
@ -1,84 +1,9 @@
|
|||||||
# Paralelización de simulación de permeabilidad
|
# Paralelización de simulación de permeabilidad
|
||||||
|
|
||||||
## Clonar este repositorio
|
## Corrida en PC de escritorio/laptop
|
||||||
|
|
||||||
```
|
Ver archivo **README-LOCAL.md**.
|
||||||
# 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
|
## Corrida en cluster TUPAC
|
||||||
|
|
||||||
```
|
Ver archivo **README-TUPAC.md**.
|
||||||
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)
|
|
||||||
|
|
||||||
Como requisitos previos a la instalación hace falta tener:
|
|
||||||
|
|
||||||
**(Si se usa `nix-shell` ya están provistas estas dependencias)**
|
|
||||||
|
|
||||||
* `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 la simulación
|
|
||||||
|
|
||||||
```
|
|
||||||
make run
|
|
||||||
```
|
|
||||||
|
|
||||||
## Correr los casos de prueba
|
|
||||||
|
|
||||||
```
|
|
||||||
make test
|
|
||||||
```
|
|
||||||
|
|
||||||
## Correr las pruebas de performance
|
|
||||||
|
|
||||||
```
|
|
||||||
make perf
|
|
||||||
```
|
|
||||||
|
|
||||||
## 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.
|
|
||||||
|
@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#SBATCH -o perf-$j.out
|
||||||
|
#SBATCH -e perf-%j.err
|
||||||
|
#SBATCH -N 1
|
||||||
|
#SBATCH --ntasks-per-node 32
|
||||||
|
#SBATCH --partition=free-rider
|
||||||
|
|
||||||
|
hostname
|
||||||
|
date
|
||||||
|
|
||||||
|
source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||||
|
|
||||||
|
# vuelca lista de nodos asignados a un archivo "nodefile"
|
||||||
|
nodelist=$(scontrol show hostname $SLURM_NODELIST)
|
||||||
|
printf "%s\n" "${nodelist[@]}" > nodefile
|
||||||
|
|
||||||
|
source venv/bin/activate
|
||||||
|
|
||||||
|
# ejecuta mpirun con el nodefile creado
|
||||||
|
make perf
|
||||||
|
|
||||||
|
rm nodefile
|
@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#SBATCH -o simulation-%j.out
|
||||||
|
#SBATCH -e simulation-%j.err
|
||||||
|
#SBATCH -N 2
|
||||||
|
#SBATCH --ntasks-per-node 32
|
||||||
|
#SBATCH --partition=free-rider
|
||||||
|
|
||||||
|
hostname
|
||||||
|
date
|
||||||
|
|
||||||
|
source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||||
|
|
||||||
|
# vuelca lista de nodos asignados a un archivo "nodefile"
|
||||||
|
nodelist=$(scontrol show hostname $SLURM_NODELIST)
|
||||||
|
printf "%s\n" "${nodelist[@]}" > nodefile
|
||||||
|
|
||||||
|
source venv/bin/activate
|
||||||
|
|
||||||
|
# ejecuta mpirun con el nodefile creado
|
||||||
|
mpirun --hostfile nodefile python3 ./mpirunner.py
|
||||||
|
|
||||||
|
rm nodefile
|
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#SBATCH -o test-%j.out
|
||||||
|
#SBATCH -e test-%j.err
|
||||||
|
#SBATCH -N 1
|
||||||
|
#SBATCH --ntasks-per-node 32
|
||||||
|
#SBATCH --partition=free-rider
|
||||||
|
|
||||||
|
hostname
|
||||||
|
date
|
||||||
|
|
||||||
|
source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||||
|
|
||||||
|
# vuelca lista de nodos asignados a un archivo "nodefile"
|
||||||
|
nodelist=$(scontrol show hostname $SLURM_NODELIST)
|
||||||
|
printf "%s\n" "${nodelist[@]}" > nodefile
|
||||||
|
|
||||||
|
source venv/bin/activate
|
||||||
|
|
||||||
|
# ejecuta mpirun con el nodefile creado
|
||||||
|
#mpirun --hostfile nodefile python3 ./mpirunner.py
|
||||||
|
make test
|
||||||
|
|
||||||
|
rm nodefile
|
Loading…
Reference in New Issue