wiki:computo:tutorial_slurm
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previaAmbos lados, revisión siguiente | ||
wiki:computo:tutorial_slurm [2022/01/06 19:52] srgualpa [Ejemplos Script Slurm] | wiki:computo:tutorial_slurm [2022/01/07 20:11] (actual) srgualpa [Ejemplos Script Slurm] | ||
---|---|---|---|
Línea 1457: | Línea 1457: | ||
### Cargar los módulos para la tarea | ### Cargar los módulos para la tarea | ||
# FALTA: Agregar los módulos necesarios | # FALTA: Agregar los módulos necesarios | ||
- | module load gpu cuda/9.1.85 | + | module load gcc |
+ | | ||
### Largar el programa | ### Largar el programa | ||
# FALTA: Cambiar el nombre del programa | # FALTA: Cambiar el nombre del programa | ||
Línea 1503: | Línea 1503: | ||
### Cargar los módulos para la tarea | ### Cargar los módulos para la tarea | ||
# FALTA: Agregar los módulos necesarios | # FALTA: Agregar los módulos necesarios | ||
- | module load clemente ... | + | module load gcc |
+ | module load openmpi | ||
### Largar el programa con los cores detectados | ### Largar el programa con los cores detectados | ||
Línea 1559: | Línea 1560: | ||
### Cargar los módulos para la tarea | ### Cargar los módulos para la tarea | ||
# FALTA: Agregar los módulos necesarios | # FALTA: Agregar los módulos necesarios | ||
- | module load clemente etc... | + | module load gcc |
### Largar el programa | ### Largar el programa | ||
Línea 1573: | Línea 1574: | ||
| | ||
- | | ||
- | | ||
- | | ||
- | |||
- | <button class=" | ||
- | <div class=" | ||
- | </ | ||
| | ||
- | |||
- | | ||
- | |||
- | | ||
- | | ||
- | | ||
- | <button class=" | ||
- | < | ||
- | < | ||
- | < | ||
- | <li class=" | ||
- | <li class=" | ||
- | <li class=" | ||
- | <li class=" | ||
- | </ | ||
- | < | ||
- | </ | ||
- | <file c submit_gromacs.sh[enable_line_numbers=" | ||
- | #!/bin/bash | ||
- | |||
- | ### Las líneas #SBATCH configuran los recursos de la tarea | ||
- | ### (aunque parezcan estar comentadas) | ||
- | |||
- | ### Usar cola gpu | ||
- | #SBATCH --partition=gpu | ||
- | |||
- | ### Nombre de la tarea | ||
- | #SBATCH --job-name=gromacs | ||
- | |||
- | ### Cantidad de nodos a usar | ||
- | #SBATCH --nodes=2 | ||
- | |||
- | ### Procesos por nodo | ||
- | #SBATCH --ntasks-per-node=1 | ||
- | |||
- | ### GPUs por nodo | ||
- | #SBATCH --gres=gpu: | ||
- | |||
- | ### Cores por nodo | ||
- | #SBATCH --cpus-per-task=20 | ||
- | export OMP_NUM_THREADS=20 | ||
- | export MKL_NUM_THREADS=20 | ||
- | |||
- | ### Tiempo de ejecucion. Formato dias-horas: | ||
- | #SBATCH --time 7-0:00 | ||
- | |||
- | ### Environment setup | ||
- | . / | ||
- | |||
- | ### Environment modules | ||
- | module load md/ | ||
- | |||
- | ### Largar el progrma en cuestion | ||
- | srun mdrun_mpi | ||
- | </ | ||
- | < | ||
- | </ | ||
- | |||
- | | ||
- | | ||
- | <button class=" | ||
- | < | ||
- | < | ||
- | < | ||
- | <li class=" | ||
- | <li class=" | ||
- | <li class=" | ||
- | <li class=" | ||
- | </ | ||
- | < | ||
- | </ | ||
- | <file c submit_lammps.sh[enable_line_numbers=" | ||
- | #!/bin/bash | ||
- | |||
- | ### Las líneas #SBATCH configuran los recursos de la tarea | ||
- | ### (aunque parezcan estar comentadas) | ||
- | |||
- | ### Nombre de la tarea | ||
- | #SBATCH --job-name=lammps | ||
- | |||
- | ### Cola a usar (capacity, capability, gpu) | ||
- | #SBATCH --partition=gpu | ||
- | |||
- | ### Cantidad de nodos a usar | ||
- | #SBATCH --nodes=1 | ||
- | |||
- | ### Cantidad de procesos a lanzar por nodo | ||
- | ### capacity=16, | ||
- | #SBATCH --ntasks-per-node=20 | ||
- | |||
- | ### Cores por proceso | ||
- | ### LAMMPS está compilado con OpenMP, probar combinaciones | ||
- | #SBATCH --cpus-per-task=1 | ||
- | export OMP_NUM_THREADS=1 | ||
- | export MKL_NUM_THREADS=1 | ||
- | |||
- | ### GPUs por nodo | ||
- | ### capacity/ | ||
- | #SBATCH --constraint=kepler | ||
- | #SBATCH --gres=gpu: | ||
- | |||
- | ### Tiempo de ejecucion. Formato dias-horas: | ||
- | #SBATCH --time 7-0:00 | ||
- | |||
- | ### Script que se ejecuta al arrancar el trabajo | ||
- | |||
- | ### Cargar el entorno del usuario incluyendo la funcionalidad de modules | ||
- | ### No tocar | ||
- | . / | ||
- | |||
- | ### Cargar los módulos para la tarea | ||
- | # FALTA: Agregar los módulos necesarios | ||
- | module load md/ | ||
- | |||
- | ### Largar el programa con los cores detectados | ||
- | ### La cantidad de nodos y cores se detecta automáticamente | ||
- | # FALTA: agregar parámetros | ||
- | srun lmp_mendieta (...) | ||
- | </ | ||
- | < | ||
- | </ | ||
- | |||
- | | ||
- | | ||
- | | ||
- | <button class=" | ||
- | < | ||
- | < | ||
- | < | ||
- | <li class=" | ||
- | <li class=" | ||
- | <li class=" | ||
- | <li class=" | ||
- | </ | ||
- | < | ||
- | </ | ||
- | <file c submit.sh[enable_line_numbers=" | ||
- | #!/bin/bash | ||
- | |||
- | ### Las líneas #SBATCH configuran los recursos de la tarea | ||
- | ### (aunque parezcan estar comentadas) | ||
- | |||
- | ### Nombre de la tarea | ||
- | #SBATCH --job-name=test-phi-mpi | ||
- | |||
- | ### Cola a usar | ||
- | #SBATCH --partition=phi | ||
- | |||
- | ### No queremos compartir xeon phis, poca memoria | ||
- | #SBATCH --exclusive | ||
- | |||
- | ### Usar un xeon phi de 57 cores | ||
- | #SBATCH --nodes=1 | ||
- | #SBATCH --ntasks-per-node=57 | ||
- | |||
- | ### Cores por proceso (para MPI+OpenMP) | ||
- | #SBATCH --threads-per-core=4 | ||
- | |||
- | ### Tiempo de ejecucion. Formato dias-horas: | ||
- | #SBATCH --time 7-0:00 | ||
- | </ | ||
- | < | ||
- | <file make Makefile[enable_line_numbers=" | ||
- | | ||
- | CFLAGS=-Wall -Wextra -O2 -mmic -openmp -mkl=parallel | ||
- | |||
- | TARGETS=proctest | ||
- | |||
- | proctest: proctest.o | ||
- | $(CC) $(CFLAGS) -o $@ $< | ||
- | |||
- | .PHONY: clean | ||
- | |||
- | clean: | ||
- | rm -f *.o $(TARGETS) | ||
- | |||
- | </ | ||
- | < | ||
- | <file c proctest.c[enable_line_numbers=" | ||
- | #include < | ||
- | #include < | ||
- | |||
- | #include " | ||
- | |||
- | int main(int argc, char ** argv) { | ||
- | |||
- | MPI_Init(& | ||
- | |||
- | int commsize, commrank; | ||
- | MPI_Comm_size(MPI_COMM_WORLD, | ||
- | MPI_Comm_rank(MPI_COMM_WORLD, | ||
- | |||
- | #pragma omp parallel | ||
- | { | ||
- | int omptid = omp_get_thread_num(); | ||
- | int ompthreads = omp_get_num_threads(); | ||
- | |||
- | #pragma omp critical | ||
- | printf(" | ||
- | } | ||
- | |||
- | MPI_Finalize(); | ||
- | return 0; | ||
- | } | ||
- | |||
- | </ | ||
| | ||
- | < | ||
- | </ | ||
- | |||
- | |||
- | | ||
- | |||
- | | ||
- | <button class=" | ||
- | < | ||
- | < | ||
- | < | ||
- | <li class=" | ||
- | <li class=" | ||
- | <li class=" | ||
- | <li class=" | ||
- | </ | ||
- | < | ||
- | </ | ||
- | <file c submit_omp.sh[enable_line_numbers=" | ||
- | # | ||
- | ### Las líneas #SBATCH configuran los recursos de la tarea | ||
- | ### (aunque parezcan estar comentadas) | ||
- | |||
- | ### Nombre de la tarea | ||
- | #SBATCH --job-name=test-phi-openmp | ||
- | |||
- | ### Cola a usar | ||
- | #SBATCH --partition=phi | ||
- | |||
- | ### No queremos compartir xeon phis, poca memoria | ||
- | #SBATCH --exclusive | ||
- | |||
- | ### Un solo proceso para OpenMP | ||
- | #SBATCH --ntasks=1 | ||
- | |||
- | ### Cores por proceso | ||
- | #SBATCH --cpus-per-task=57 | ||
- | #SBATCH --threads-per-core=4 | ||
- | |||
- | ### Tiempo de ejecucion. Formato dias-horas: | ||
- | #SBATCH --time 7-0:00 | ||
- | |||
- | ### Script que se ejecuta al arrancar el trabajo | ||
- | |||
- | ### Cargar el entorno del usuario | ||
- | ### (en phi: MKL e Intel MPI) | ||
- | ### No tocar | ||
- | . / | ||
- | |||
- | ### No tenemos módulos en los xeon phi | ||
- | ### Hasta 4 hilos por core | ||
- | export OMP_NUM_THREADS=228 | ||
- | export MKL_NUM_THREADS=228 | ||
- | |||
- | ### Largar el programa | ||
- | srun ./proctest | ||
- | </ | ||
- | < | ||
- | <file make Makefile[enable_line_numbers=" | ||
- | CC=icc | ||
- | CFLAGS=-Wall -Wextra -O2 -mmic -openmp -mkl=parallel | ||
- | |||
- | TARGETS=proctest | ||
- | |||
- | proctest: proctest.o | ||
- | $(CC) $(CFLAGS) -o $@ $< | ||
- | |||
- | .PHONY: clean | ||
- | |||
- | clean: | ||
- | rm -f *.o $(TARGETS) | ||
- | </ | ||
- | < | ||
- | |||
- | <file c proctest.c[enable_line_numbers=" | ||
- | #include < | ||
- | #include < | ||
- | |||
- | int main(int argc, char ** argv) { | ||
- | |||
- | #pragma omp parallel | ||
- | { | ||
- | int omptid = omp_get_thread_num(); | ||
- | int ompthreads = omp_get_num_threads(); | ||
- | |||
- | #pragma omp critical | ||
- | printf(" | ||
- | } | ||
- | |||
- | return 0; | ||
- | } | ||
- | |||
- | |||
- | </ | ||
- | < | ||
- | </ | ||
</ | </ | ||
wiki/computo/tutorial_slurm.1641498776.txt.gz · Última modificación: 2022/01/06 19:52 por srgualpa