SoftWare/SignalCheckpoint / API - Application Programming Interface
L'API du module SignalCheckpoint
est simple, réduite au maximum.
C'est voulu.
L'objectif est d'avoir une bibliothèque facile à mettre en oeuvre dans le cadre du calcul intensif.
Constantes
Le module Fortran Signal_Checkpoint
exporte un certain nombre de signaux.
Plutôt que de mettre tous les signaux, seuls les signaux utiles ont été définis.
Il est très facile d'en rajouter un s'il le faut.
integer,parameter :: SIGHUP = 1 ! Signal HUP integer,parameter :: SIGINT = 2 ! Signal INT integer,parameter :: SIGQUIT = 3 ! Signal QUIT integer,parameter :: SIGUSR1 = 10 ! Signal USR1 integer,parameter :: SIGUSR2 = 12 ! Signal USR2 integer,parameter :: SIGTERM = 15 ! Signal TERM integer,parameter :: SIGXCPU = 24 ! Signal XCPU
Appels de fonction et de procédure
Quelques procédures et fonctions permettent la gestion de ces signaux
signal_checkpoint_connect
subroutine signal_checkpoint_connect (SIG_NUM, EXIT) integer,intent(in) :: SIG_NUM logical,intent(in),optional :: EXIT
Appel à placer en début de programme afin d'indiquer le ou les signaux à prendre en compte. Le paramètreEXIT
permet de lever un drapeau supplémentaire si le signal est reçu. Ce drapeau est utile si on souhaite que son programme puisse réagir de manière différente à deux signaux.
signal_checkpoint_is_received
function signal_checkpoint_is_received () result (IS_RECEIVED) logical :: IS_RECEIVED
Fonction qui retourne positivement si un signal a été reçu. Il est donc temps de penser à finir proprement...
signal_checkpoint_ask_for_exit_code
function signal_checkpoint_ask_for_exit_code () result (EXIT) logical :: EXIT
Drapeau permettant de savoir si le signal marquéEXIT
a été reçu. Cela permet de quitter le programme avec un code d'erreur par exemple et non avec la valeur classique 0. En effet, ce code de retour peut être utilisé par le scheduleur ou le script de lancement batch pour savoir si le code doit être re-soumis ou non.
signal_checkpoint_received_times
function signal_checkpoint_received_times () result (RECEIVED_TIMES) integer :: RECEIVED_TIMES
Fonction qui retourne le nombre de signaux reçu. Cette fonction ne sers à rien dans un code de calcul car ce nombre n'a pas de signification autre que== 0
ou> 0
, signification déjà donné par l'appelsignal_checkpoint_is_received
. Elle est juste utile en phrase de test afin de valider que l'on reçois bien les signaux !
Last modified 12 years ago
Last modified on Oct 11, 2012, 2:14:48 PM