wiki:SoftWare/SignalCheckpoint

Version 2 (modified by g7moreau, 8 years ago) (diff)

Module et Test

Signal_Checkpoint - Module Fortran 90 de gestion des signaux à usage du calcul

Signal_Checkpoint est un module en Fortran 90 permettant une gestion basique des signaux POSIX (UNIX). L'utilisation est très orienté calcul. L'idée est que le scheduleur de job envoi avant la fin du walltime un signal au job (checkpoint), le job finit alors proprement. S'il a été lancé avec l'option idempotent (par exemple sous OAR oarsub -t idempotent), le scheduleur le relance alors automatiquement...

Module

Le module Signal_Checkpoint gère pour le moment le signal USR12 utilisé par défaut dans OAR. Il a été testé et validé avec les compilateurs GNU/gfortran et Intel/ifort. Il fait un appel POSIX à la commande signal qui n'est pas normalisé en Fortran, en ce sens, ce n'est pas du pur Fortran...

Cependant, coté utilisateur, l'API est très simple et indépendante du compilateur.

Le projet est très jeune. Il n'y a pas de bibliothèque de compilé pour le moment. Pour l'intégrer dans votre projet, le plus simple pour le moment est de l'intégrer dans vos sources

wget http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/signal-checkpoint/signal_checkpoint.F90

Test

Un programme de test et d'exemple sgck-test1 est fournit. Pour le récupérer et le tester

mkdir sgck-test1
cd sgck-test1
wget http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/signal-checkpoint/sgck-test1.f90
wget http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/signal-checkpoint/signal_checkpoint.F90
  • compilation avec GNU/gfortran
    rm sgck-test1 signal_checkpoint.mod signal_checkpoint.o
    gfortran -c signal_checkpoint.F90
    gfortran -o sgck-test1 sgck-test1.f90 signal_checkpoint.o
    
  • compilation avec Intel/ifort
    rm sgck-test1 signal_checkpoint.mod signal_checkpoint.o
    ifort -c signal_checkpoint.F90
    ifort -o sgck-test1 sgck-test1.f90 signal_checkpoint.o
    

Pour tester le programme, il faut deux terminaux

  • Terminal 1 - celui ou la commande tourne réellement
    ./sgck-test1
    
  • Terminal 2 - jour le rôle du scheduleur
    ps fux | grep ./sgck-test1 | grep -v grep | awk '{print $2}' | xargs kill -USR2
    

Repository

L'ensemble du code est sous licence libre. les modules sources Fortran90 sont sous LGPL version 2 ou plus récente (sans restriction d'édition de lien avec la GPL v3 par exemple), les programmes de tests en Fortran90 sont dans le domaine public.

Tous les sources sont disponibles sur la forge du LEGI : http://servforge.legi.grenoble-inp.fr/svn/soft-trokata/trunk/signal-checkpoint

Les sources sont gérés via subversion (http://subversion.tigris.org/). Il est très facile de rester synchronisé par rapport à ces sources.

  • la récupération initiale
    svn checkout http://servforge.legi.grenoble-inp.fr/svn/soft-trokata/trunk/signal-checkpoint signal-checkpoint
    
  • les mises à jour par la suite
    svn update
    

Il est possible d'avoir un accès en écriture à la forge sur demande motivée à Gabriel Moreau. Pour des questions de temps d'administration et de sécurité, la forge n'est pas accessible en écriture sans autorisation.