L'Alliance Francophone > L'AFabric
[Linux] Script pour suspendre / reprendre les UT
Maeda:
Bonjour à toutes et tous :)
J'ai fait deux petits scripts pratiques permettant de suspendre / reprendre les UT d'un projet au choix pour Linux à lancer dans un terminal.
* Script suspend_calc :Avantages :
* Choix du projet
* On ne bloque pas l'envoi des UT tout projet confondu
* On peut cruncher sur d'autres projets, en sachant que celui ciblé verra ses UT suspendues avant la fin.
* Automatique, pas la peine d'être présent pour suspendre.
* Peut se lancer en parallèle pour toucher plusieurs projets.
* Peut re-suspendre rapidement les UT concernées, notamment le temps de télécharger des UT supplémentaires pour le cache (pour dé-suspendre, utiliser resume_calc justement ;))
* [MAJ 06/08/17 11h55] Un fichier de configuration permet d'indiquer facilement les projets et leur limite de temps / % restant et le script peut être lancé avec ou sans interaction utilisateur (grâce aux arguments).Inconvénients :
* Il reste du temps de calculs à chaque UT
* Il faut avoir une valeur raisonnable de temps estimé restant au plus proche de sa fin
* Les UT suspendues n'étant pas terminées, elles sont stockées en mémoire. Un redémarrage système complet de la machine va faire perdre quelques minutes à chaque UT (dernier point de contrôle). Non négligeable s'il y a beaucoup d'UT, ces minutes seront à recalculer.
* Pas sur Windows pour l'instant :p
* Script resume_calcAvantages :
* On peut donner une date et heure de désuspension des UT (suspendues par le script suspend_calc ou via Boinc Manager)
* Peut se lancer en parallèle pour programmer plusieurs projets.
* Automatique
* [MAJ 05/06/16 11h25] Vérifie et tue le processus suspend_calc au choix avant reprise des UT à l'heure définie
* Peut dé-suspendre rapidement les UT concernées, notamment le temps de télécharger des UT supplémentaires pour le cache (pour re-suspendre, utiliser suspend_calc justement ;))
* [MAJ 20/11/16 16h35] On peut bypasser le délai (en appuyant sur ENTREE) afin de faire une désuspension immédiateInconvénients :
* Pas sur Windows pour l'instant :p
Scripts suspend_calc et resume_calc disponibles sur Codeberg.
[MAJ 17/08/22 : Migration des fichiers vers Codeberg.
N.B : Il faut vérifier les projets/UT pour avoir la bonne valeur limite acceptable, puis l'indiquer dans le fichier de configuration (version 1.0 minimum) ou insérer une ligne supplémentaire dans le script suspend_calc et mettre la bonne "form" (version 0.1, voir README sur Codeberg).
=> Branche 1.1 : le script suspend_calc se base sur la portion (%) restant plutôt que le temps restant. Version testée et fonctionnelle, pas de bug pour l'instant.
=> Branche 1.0 : le script suspend_calc se base sur un fichier de configuration plus explicite. Il est conseillé d'utiliser la version 1.1 actuellement maintenue.
Branche 0.1 (fonctionnelle mais plus maintenue)
N'hésitez pas à me faire des retours uniquement pour discuter du script ou pour une aide au lancement. Pour toute envie de discussion de bug ou d'évolution : merci d'utiliser l'onglet Ticket sur Codeberg.
JeromeC:
Merci pour le tuto et pour le script !
Si je comprends bien (je suis pas linuxien) il faut connaitre le temps de calcul estimé des UT du projet et il faut le mettre en paramètre dans le script ?
Maeda:
Pour WCG, j'ai mis 1 min, et pogs, 28min. Il faut voir pour les autres, si tu as par exemple un temps restant indiqué de 15 min (et 85% complété) et qu'il passe à 100% d'un coup. Dans ce cas, mettre proche des 30 min est sécuritaire.
Si des personnes connaissent, oui il faut mettre d'autres 'case' avec le bon format pour le timing (partie #Seuil de suspension limite en fonction du temps restant en fonction des projets ), exemple :
--- Code: ---#Seuil de suspension limite en fonction du temps restant en fonction des projets
...
url_précise_de_mon_projet)
limite="5899s"
form="$chcom[1-5][0-8][0-9][0-9]\.|$chcom[0-9][0-9][0-9]\.|$chcom[0-9][0-9]\.|$chcom[0-9]\." ;;
--- Fin du code ---
...stoppera lorsqu'il restera 5899s ou moins.
url_précise_de_mon_projet s'obtient avec :
--- Code: ---boinccmd --get_project_status | grep "master URL"
--- Fin du code ---
-> S'assurer de bien tout prendre à partir de http inclus (le "/" à la fin également par exemple).
Sinon comme je l'ai indiqué, pour d'autres projets non listés dans la boucle case / esac, il prendra par défaut 5 min avant la fin.
Maeda:
MAJ du 1er post pour resume_calc.
J'hésite à passer par défaut à moins d'une minute par détaut. Car si tout va bien, autant suspendre à moins d'une minute plutôt que 5 min.
Et justement, si cas particulier il y a, autant rajouter ces cas dans les "case".
Vous en pensez quoi ?
P.S. : je me servirai du script resume_calc ce soir à partir de 2h du matin pour le Pentathlon :hyperbon:.
P.P.S : L'idéal serait d'avoir un fichier de "conf" à côté indiquant les temps restants minimum exploitable pour chaque projet (chaque sous-projet peut-être même...). Mais comme c'est différent en fonction des machines (HT activé ou non, etc.), demander à chaque fois le temps voulu serait peut-être plus simple... A voir, pour l'instant, il n'y a que moi qui l'utilise :cavachier:
Scrat65:
Merci beaucoup pour cette initiative. Je tourne sous LinuxMint 17.3 et c'est ma première participation à un Pentathlon. Comme je ne suis guère à l'aise avec les différentes techniques de lâcher, ton script pourrait m'apporter de la simplicité d'utilisation en gardant l'activité réseau toujours disponible.
Je viens d'utiliser suspend_calc pour The Skynet POGS et PrimeGrid et vais aussi tester resume_calc pour The Skynet POGS dans le cadre du Pentathlon ; mais pas à 2h du matin... :)
A suivre
Pour le temps par défaut à moins d'une minute, cela semble logique de suspendre à moins d'une minute plutôt que 5 mn.
L'idée du fichier .conf serait idéale ; puisque chaque machine est spécifique ne pourrait-on pas imaginer une sorte d'apprentissage du temps de calcul basé sur les calculs précédents pour chaque projet sur la machine concernée ? Sinon, demander à chaque fois le temps restant voulu pour suspendre semble la solution la plus simple. J'espère ne pas avoir dit de bêtises...
Bonjour chez vous
PS : suspend_calc fonctionne très bien !
une UT PrimeGrid PPS (Sieve) 1.39 cudaPPSsieve vient d'être suspendue à 89,114 % (temps restant estimé 00:04:54) :hello:
Navigation
[#] Page suivante
Utiliser la version classique