Guía de referencia del clúster HPC ctcomp2
# Acceso ssh -p <port> nome.apelido@ctcomp2.inv.usc.es # importar scp -p <port> \ fich_orixe \ nome.apelido@ctcomp2.inv.usc.es:~/fich_destino scp -p <port> -r \ dir_orixe \ nome.apelido@ctcomp2.inv.usc.es:~/dir_destino # exportar scp -p <port> \ nome.apelido@ctcomp2.inv.usc.es:~/fich_orixe \ fich_destino scp -p <port> -r \ nome.apelido@ctcomp2.inv.usc.es:~/dir_orixe \ dir_destino
# Gestión de módulos module avail module list module load <module_name> module unload <module_name> module purge
# Compilación GCC gcc -O exemplo.c -o exe g++ -O exemplo.cpp -o exe gfortran -O exemplo.f -o exe
# Compilación OpenMP (+GCC) gcc -O -fopenmp exemplo.c -o exe-omp g++ -O -fopenmp exemplo.cpp -o exe-omp gfortran -O -fopenmp exemplo.f -o exe-omp
# Compilación OpenMPI (+GCC) module load openmpi mpicc -O exemplo.c -o exe-mpi mpicxx -O exemplo.cpp -o exe-mpi mpif77 -O exemplo.f -o exe-mpi
# Manejo de la cola de trabajos chmod u+x myjob.sh qsub myjob.sh qstat qstat -q pbsnodes qdel <job_id> qsub -q short myjob.sh qsub -q bigmem myjob_64ppn.sh qsub -I -q interactive
#!/bin/bash # --- Ejemplo de configuración PBS --- # #PBS -l nodes=1:ppn=1,walltime=1:00:00 #PBS -N proba-PBS #PBS -e mySTD.err #PBS -o mySTD.out #PBS -m ae -M nome.apelido@usc.es cd $PBS_O_WORKDIR ./executable
#!/bin/bash # --- Ejemplo de ejecución: nodos Intel M910 --- # #PBS -l nodes=1:ppn=1:intel:xeonl,walltime=1:00:00 cd $PBS_O_WORKDIR ./executable_intel
#!/bin/bash # --- Ejemplo de ejecución: nodos Intel M620 --- # #PBS -l nodes=1:ppn=1:intel:xeone5,walltime=1:00:00 cd $PBS_O_WORKDIR ./executable_intel
#!/bin/bash # --- Ejemplo de ejecución: nodos AMD --- # #PBS -l nodes=1:ppn=1:amd,walltime=1:00:00 cd $PBS_O_WORKDIR ./executable_amd
#!/bin/bash # --- Ejemplo trabajo secuencial --- # #PBS -l nodes=1:ppn=4,walltime=1:00:00 #PBS -N ej-secuencial cd $PBS_O_WORKDIR (cd dir1; ./exec1) & (cd dir2; ./exec2) & (cd dir3; ./exec3) & (cd dir4; ./exec4) & wait
#!/bin/bash # --- Ejemplo trabajo JAVA --- # #PBS -l nodes=1:ppn=64,walltime=1:00:00 #PBS -N ej-java cd $PBS_O_WORKDIR export _JAVA_OPTIONS=-Xmx16777216K module load java java executable
#!/bin/bash # --- Ejemplo trabajo OpenMP --- # #PBS -l nodes=1:ppn=64,walltime=1:00:00 #PBS -N ej-openmp cd $PBS_O_WORKDIR export OMP_NUM_THREADS=64 ./executable
#!/bin/bash # --- Ejemplo trabajo MPI --- # #PBS -l nodes=2:ppn=64,walltime=1:00:00 #PBS -N ej-mpi cd $PBS_O_WORKDIR module load openmpi mpirun -np 128 ./executable
#/bin/bash # --- Ejemplo trabajo R --- # #PBS -l nodes=1:ppn=1,walltime=1:00:00 #PBS -N ej-R cd $PBS_O_WORKDIR module load R R --no-save < test.R
MATLAB secuencial:
#!/bin/bash # --- Ejemplo trabajo MATLAB (SECUENCIAL) --- # #PBS -l nodes=1:ppn=1,walltime=1:00:00 #PBS -N ej-MATLAB cd $PBS_O_WORKDIR module load matlab matlab -r test -nodisplay -nosplash -nojvm -singleCompThread # -r: indicar el fichero a ejecutar (sin .m) # (!) Incluir la orden quit al final del fichero # -nodisplay: sin display X. # -nosplash: sin pantalla inicial (OPCIONAL) # -nojvm: sin entorno java (OPCIONAL) # -singleCompThread: ejecuta MATLAB secuencialmente
MATLAB paralelo, exclusivo nodos AMD (64 threads implícitos):
#!/bin/bash # --- Ejemplo trabajo MATLAB (PARALELO nodos amd: 64 threads implícitos) --- # #PBS -l nodes=1:ppn=64:amd,walltime=1:00:00 #PBS -N ej-MATLAB cd $PBS_O_WORKDIR module load matlab matlab -r test -nodisplay -nojvm -nosplash # -r: indicar el fichero a ejecutar (sin .m) # (!) Incluir la orden quit al final del fichero # -nodisplay: sin display X. # -nosplash: sin pantalla inicial (OPCIONAL) # -nojvm: sin entorno java (OPCIONAL)
MATLAB paralelo, exclusivo nodos INTEL (32 threads implícitos):
#!/bin/bash # --- Ejemplo trabajo MATLAB (PARALELO nodos intel: 32 threads implícitos) --- # #PBS -l nodes=1:ppn=32:intel,walltime=1:00:00 #PBS -N ej-MATLAB cd $PBS_O_WORKDIR module load matlab matlab -r test -nodisplay -nojvm -nosplash # -r: indicar el fichero a ejecutar (sin .m) # (!) Incluir la orden quit al final del fichero # -nodisplay: sin display X. # -nosplash: sin pantalla inicial (OPCIONAL) # -nojvm: sin entorno java (OPCIONAL)