===== Guía de referencia del clúster HPC ctcomp2 =====
# Acceso
ssh -p nome.apelido@ctcomp2.inv.usc.es
# importar
scp -p \
fich_orixe \
nome.apelido@ctcomp2.inv.usc.es:~/fich_destino
scp -p -r \
dir_orixe \
nome.apelido@ctcomp2.inv.usc.es:~/dir_destino
# exportar
scp -p \
nome.apelido@ctcomp2.inv.usc.es:~/fich_orixe \
fich_destino
scp -p -r \
nome.apelido@ctcomp2.inv.usc.es:~/dir_orixe \
dir_destino
# Gestión de módulos
module avail
module list
module load
module unload
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
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)