DOCUMENTATION

Scilab est un logiciel open source de calcul numérique qui fournit un puissant environnement de développement pour les applications scientifiques et l’ingénierie.

Fonctionnalités :

Site web : http://www.scilab.org

Pour l'utiliser, il faut charger le module suivant :

module load scilab/scilab

Appel en ligne de commande avec fichier d'entrée :

scilab -nwni -f script_scilab

Contrainte : pour un appel en ligne de commande, le script Scilab doit se terminer par "quit;".

Script Scilab utilisant une section parallélisée

Dans le contexte de cet exemple, la parallélisation est limitée au nombre de coeurs d'un noeud.

Le script calcule en parallèle les valeurs d'un vecteur (res), par paquets correspondants au nombre de coeurs disponibles (nombre de coeurs alloués en batch ou nombre de coeurs disponibles en interactif). Les données en entrée sont dans un vecteur de 20 valeurs (1:20).

u = file ( 'open' , 'parallel_run.out' , 'unknown' );

// La macro parallel_run necessite de faire les calculs dans une fonction
function r = f(v)
// Ecrit sur la sortie standard
disp( "start for " + string(v) );
r = 1;
for i = 1:5000000
r = r + sin(i*v) * sqrt(i*v)
end;
disp ( "end for " + string(v) );
endfunction

// Appel en parallele de la fonction f pour les valeurs de 1 à 20
res = parallel_run ( 1:20 , f );

write ( u , res );
file ( 'close' , u );
quit;

Script Slurm pour utiliser Scilab en batch et en parallèle

Ce script va réserver 16 coeurs sur 1 noeud.

Si le script Scilab ci-dessus est appelé dans ce script Slurm, alors parallel_run va d'abord effectuer en parallèle 16 calculs, chacun sur 1 coeur, avec les valeurs 1 à 16, puis 4 autres calculs avec les valeurs 17 à 20 en utilisant cette fois 4 coeurs uniquement.

Dans le fichier scilab-*.out on pourra suivre le déroulement des calculs, grâce au résultat des appels à la macro disp du script Scilab ci-dessus.

Le résultat des calculs se trouvera dans le fichier parallel_run.out (voir script Scilab).

#! /bin/bash
#SBATCH -N 1-1 -n 16
#SBATCH -o scilab-%j.out

module load scilab/scilab

scilab -nwni -f test_parallel_run.scilab

VERSIONS ET SCRIPTS D'INSTALLATION


TAGS