Tapez lmstat pour connaitre le nombre et l’utilisation des jetons de licence.

Job utilisant un jeton

Réservation d’un job séquentiel utilisant 1 Go de RAM et 1 jeton de licence Matlab.

#$ -N job-jeton
#$ -q seq_medium
#$ -l m_mem_free=1G
#$ -m esa
#$ -M prenom.nom@u-cergy.fr
#$ -cwd
#$ -j y
## Demande de jeton matlab 
#$ -soft
#$ -l matlab=1
module load matlab
matlab -nodesktop -nosplash -batch program.m

Job utilisant une toolbox

Réservation d’un job parallèle 4 coeurs utilisant 2 Go de RAM (4 * 500 Mo), 1 jeton de licence Matlab et un jeton de licence pour la toolbox « Image ».

#$ -N job-jeton
#$ -pe openmp 4
#$ -l m_mem_free=500M
#$ -m esa
#$ -M prenom.nom@u-cergy.fr
#$ -cwd
#$ -j y
## Demande de jetons matlab et toolbox
#$ -soft
#$ -l matlab=1
#$ -l image_tbx=1
module load matlab
matlab -nodesktop -nosplash -batch parallel-program.m

Job compilé sans jeton

En compilant son programme matlab il est possible de se passer de jeton de licence. Il est alors possible de lancer beaucoup d’instances de ce programme en même temps (voir aussi job array).

Exemple de fichier makefile permettant de compiler un programme matlab :

SRC = my_program.m  dependancy1.m  dependancy2.m  path/to/dependancy3.m
COMP = mcc
FLAGS = -mv
all : my_program
my_program : $(SRC)
    $(COMP) $(FLAGS) $(SRC)  # !!! tabulation
clean :
    \rm my_program run_my_program.sh  # !!! tabulation

Exemple de script de job pour un programme matlab compilé

#$ -N my_program
## Job séquentiel
#$ -q seq_long
#$ -l m_mem_free=1G
#$ -m esa
#$ -M prenom.nom@u-cergy.fr
#$ -cwd
#$ -j y
## Pas de demande de jeton ni de chargement de module
./run_my_program.sh /usr/local/matlab