Pour chaque application installée sur le mésocentre vous pouvez trouver un exemple de script dans la rubrique Logiciels installés

Applications séquentielles

job_seq.sge
#!/bin/bash
 
#$ -N test_sge
#$ -o $JOB_NAME.$JOB_ID.out
#$ -e $JOB_NAME.$JOB_ID.err
 
 
time ./monProgrammeCompile

Applications parallèles

array.sge
#!/bin/bash
#$ -q all.q  ## adapter selon cluster
#$ -V
#$ -cwd
#$ -N test_sge
#$ -t 1-100 -tc 50
#$ -o $JOB_NAME.$JOB_ID.out
#$ -e $JOB_NAME.$JOB_ID.err
 
./appli input$SGE_TASK_ID output$SGE_TASK_ID
appli_mpi.sge
#!/bin/bash 
 
#$ -q parallel.q
#$ -pe mpi 32
 
#$ -V
#$ -N test_sge
#$ -o $JOB_NAME.$JOB_ID.out
#$ -e $JOB_NAME.$JOB_ID.err
 
 
#### on charge le module open mpi
 
module load mpi/openmpi/icc/1.7.5
 
## lancement de l'application
mpirun -np $NSLOTS ./appli_mpi
appli_openmp.sge
#!/bin/bash
#$ -N test_sge
#$ -pe openmp 8  ## on demande 8 coeurs 
#$ -o $JOB_NAME.$JOB_ID.out
 
export OMP_NUM_THREADS=$NSLOTS
 
## lancement de l'application 
 
./appli input

Par exemple, nous souhaitons utiliser 2 process MPI sur chaque noeud. Chaque process lancent 16 threads.

appli_openmp.sge
#!/bin/bash
 
#$ -o $JOB_NAME.$JOB_ID.out
 
#$ -N test_sge
 
#$ -pe mpi 32  ## on demande 32 coeurs au total 
 
 
export OMP_NUM_THREADS=16
 
module load mpi/openmpi/icc/2.1.1 
 
## lancement de l'application avec mpirun
 
mpirun  --map-by ppr:1:node -bind-to none ./application
  • –map-by ppr:1:node –> On each node, launch one process, since we request 32 cores, we will have 2 nodes with 16 free cores on each
  • -bind-to none –> disable corebinding, else all threads goes to 1 socket
appli_gpu.sge
#!/bin/bash
#$ -N test_sge
#$ -o $JOB_NAME.$JOB_ID.out
#$ -q tesla.q ## by default 1 GPU will be allocated
 
## lancement de l'application 
 
module load gpu/cuda
 
./appli input