8 | | le scheduler le relance alors automatiquement... |
| 8 | le scheduleur le relance alors automatiquement... |
| 9 | |
| 10 | == Module == |
| 11 | |
| 12 | Le module '''[source:/trunk/signal-checkpoint/signal_checkpoint.F90 Signal_Checkpoint]''' |
| 13 | gère pour le moment le signal {{{USR12}}} utilisé par défaut dans OAR. |
| 14 | Il a été testé et validé avec les compilateurs {{{GNU/gfortran}}} et {{{Intel/ifort}}}. |
| 15 | Il fait un appel POSIX à la commande {{{signal}}} qui n'est pas normalisé en Fortran, |
| 16 | en ce sens, ce n'est pas du pur Fortran... |
| 17 | |
| 18 | Cependant, coté utilisateur, l'API est très simple et indépendante du compilateur. |
| 19 | |
| 20 | Le projet est très jeune. |
| 21 | Il n'y a pas de bibliothèque de compilé pour le moment. |
| 22 | Pour l'intégrer dans votre projet, le plus simple pour le moment est de l'intégrer dans vos sources |
| 23 | {{{ |
| 24 | wget http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/signal-checkpoint/signal_checkpoint.F90 |
| 25 | }}} |
| 26 | |
| 27 | == Test == |
| 28 | |
| 29 | Un programme de test et d'exemple [source:/trunk/signal-checkpoint/sgck-test1.f90 sgck-test1] est fournit. |
| 30 | Pour le récupérer et le tester |
| 31 | {{{ |
| 32 | mkdir sgck-test1 |
| 33 | cd sgck-test1 |
| 34 | wget http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/signal-checkpoint/sgck-test1.f90 |
| 35 | wget http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/signal-checkpoint/signal_checkpoint.F90 |
| 36 | }}} |
| 37 | |
| 38 | * compilation avec {{{GNU/gfortran}}} |
| 39 | {{{ |
| 40 | rm sgck-test1 signal_checkpoint.mod signal_checkpoint.o |
| 41 | gfortran -c signal_checkpoint.F90 |
| 42 | gfortran -o sgck-test1 sgck-test1.f90 signal_checkpoint.o |
| 43 | }}} |
| 44 | |
| 45 | * compilation avec {{{Intel/ifort}}} |
| 46 | {{{ |
| 47 | rm sgck-test1 signal_checkpoint.mod signal_checkpoint.o |
| 48 | ifort -c signal_checkpoint.F90 |
| 49 | ifort -o sgck-test1 sgck-test1.f90 signal_checkpoint.o |
| 50 | }}} |
| 51 | |
| 52 | Pour tester le programme, il faut deux terminaux |
| 53 | |
| 54 | * Terminal 1 - celui ou la commande tourne réellement |
| 55 | {{{ |
| 56 | ./sgck-test1 |
| 57 | }}} |
| 58 | |
| 59 | * Terminal 2 - jour le rôle du scheduleur |
| 60 | {{{ |
| 61 | ps fux | grep ./sgck-test1 | grep -v grep | awk '{print $2}' | xargs kill -USR2 |
| 62 | }}} |