[[ es:centro:servizos:hpc:escribir_script| >> Volver á páxina anterior ]]
====== Exemplos de scripts ======
A continuación amósanse varios exemplos de scripts que amosan o conxunto básico de instrucións para o envío de diferentes tipos de traballos ao xestor de colas.
Podes atopar máis exemplos no directorio ''/optct/templates''.
==== Exemplo de traballo secuencial: ====
#!/bin/bash
#PBS -l nodes=1:ppn=1,walltime=1:00:00
#PBS -N ejemplo
#PBS -o salida.out
#PBS -e salida.err
#PBS -m ae -M direccion_correo@usc.es
cd $PBS_O_WORKDIR
./executable
==== Exemplo de traballos secuenciais en paralelo: ====
#!/bin/bash
#PBS -l nodes=1:ppn=4,walltime=1:00:00
#PBS -N ejemplo
#PBS -m n
cd $PBS_O_WORKDIR
(cd dir1; ./executable1) &
(cd dir2; ./executable2) &
(cd dir3; ./executable3) &
(cd dir4; ./executable4) &
wait
==== Exemplo de traballo Java: ====
Java consome, por defecto, toda a memoria do sistema. Nun sistema compartido por diferentes usuarios é preciso limitar a cantidade de memoria asignada a cada proceso, polo que o tamaño do //heap// de Java en ''ctcomp2'' está limitado ao 25 do límite de memoria da cola asignada ao proceso e, calquera caso, cun tamaño máximo de 8 GB.
Os usuarios poden utilizar outros tamaños de //heap// nos seus traballos se modifican, antes de executar JAVA, o valor da opción -Xmx de JAVA a través da variable ''_JAVA_OPTIONS''. Por exemplo, se queremos que o //heap// teña 16 GB, o comando sería:
export _JAVA_OPTIONS=-Xmx16777216K
Ao modificar o tamaño do //heap// o usuario debe asegurarse, baixo a súa responsabilidade, que o conxunto de procesos que se estean executando concorrentemente no seu traballo non exceda o límite de memoria establecido na correspondente cola, xa que nese caso o traballo será cancelado automaticamente.
Os usuarios que executen nos seus traballos unha soa instancia de java (independentemente dos threads que execute) poderán aumentar o tamaño do //heap//, pero recoméndase que non sexa un valor próximo ao límite de memoria da correspondente cola.
#!/bin/bash
#PBS -l nodes=1:ppn=64,walltime=1:00:00
#PBS -N ej-java
#PBS -m n
cd $PBS_O_WORKDIR
module load jdk
export _JAVA_OPTIONS=-Xmx16777216K
java executable
==== Exemplo de traballo OpenMP: ====
#!/bin/bash
#PBS -l nodes=1:ppn=64,walltime=1:00:00
#PBS -N ej-openmp
#PBS -m n
cd $PBS_O_WORKDIR
export OMP_NUM_THREADS=64
./executable