Ph. Marion 3dc6c56041 OAR_array : 2ième exemple matlab | 6 年之前 | |
---|---|---|
.. | ||
Makefile | 6 年之前 | |
README.md | 6 年之前 | |
gc_array.oar | 6 年之前 | |
gc_input.txt | 6 年之前 | |
gc_matlab.sh | 6 年之前 | |
gc_postraitement.sh | 6 年之前 | |
gradientconj.m | 6 年之前 | |
pi.c | 6 年之前 | |
pi_array.oar | 6 年之前 | |
pi_input.txt | 6 年之前 |
La «bonne pratique» pour lancer massivement, en parallèle, le même
programme avec des paramètres différents : **utiliser l'option
--array-param-file parametres.txt
d'OAR **. Cette option lance un
«tableau de tâches» chacune indépendantes les unes des autres
Note: ce fichier peut contenir des centaines, des milliers de lignes
#OAR --array-param-file parametres.txt
Rappel: en besteffort, les ressources sont illimitées mais les jobs sont non prioritaires (ils peuvent être supprimés sans préavis si des jobs de priorité supérieure sont lancés). À noter dans ce cas que le strict nécessaire aux jobs prioritaires est «libéré»: ce n'est pas le tableau de tâches qui est intégralement supprimé. De plus, l'option idempotent permet de relancer automatiquement toutes les expériences (qui auraient été tuées par des jobs prioritaires)
le programme pi.exe calcule une approximation de pi par l'intégration de f(x)=4/(1+x^2) sur [0;1]. Le nombre d'intervalles est passé en argument (regroupé dans le fichier pi_input.txt)
Le programme résout un système linéaire par la méthode itérative du gradient conjugué. Le script matlab a été tranformé en fonction: gradientconj(n,tolerance,maxiter)
note: contrairement à l'exemple 1 (ci-dessus) et à l'exemple des tutoriaux gradient conjugué le script bash OAR ne peut accepter la syntaxe de commande:
matlab -nodisplay -nodesktop -nojvm -r 'testgradientconj("$@");exit'"
L'astuce ici est de passer par autre script de lancement intermédiaire: gc_matlab.sh