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