<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://www.math.u-bordeaux.fr/imb/cellule/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>La Cellule Informatique de l'IMB</title>
	<link>https://www.math.u-bordeaux.fr/imb/cellule/</link>
	<description></description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.math.u-bordeaux.fr/imb/cellule/spip.php?id_mot=9&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>PlaFRIM2 - avanc&#233; : gros travaux segmentables ou besoin de r&#233;activit&#233; (testpreempt)</title>
		<link>https://www.math.u-bordeaux.fr/imb/cellule/plafrim2-avance-gros-travaux-segmentables-ou-besoin-de-reactivite-testpreempt</link>
		<guid isPermaLink="true">https://www.math.u-bordeaux.fr/imb/cellule/plafrim2-avance-gros-travaux-segmentables-ou-besoin-de-reactivite-testpreempt</guid>
		<dc:date>2017-06-13T10:15:56Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Laurent Facq</dc:creator>


		<dc:subject>plafrim</dc:subject>
		<dc:subject>plafrim2</dc:subject>

		<description>&lt;p&gt;[rouge]&lt;strong&gt;Attention : cet article concerne feu la plateforme PlaFRIM2&lt;/strong&gt;[/rouge]&lt;/p&gt;

-
&lt;a href="https://www.math.u-bordeaux.fr/imb/cellule/plafrim2-archives" rel="directory"&gt;PlaFRIM2 (Archives)&lt;/a&gt;

/ 
&lt;a href="https://www.math.u-bordeaux.fr/imb/cellule/plafrim" rel="tag"&gt;plafrim&lt;/a&gt;, 
&lt;a href="https://www.math.u-bordeaux.fr/imb/cellule/plafrim2" rel="tag"&gt;plafrim2&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;[rouge]&lt;strong&gt;Attention : cet article concerne feu la plateforme PlaFRIM2&lt;/strong&gt;[/rouge]&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Pr&#233;sentation de la file &#034;testpreempt&#034;&lt;/h2&gt;
&lt;p&gt;Une file en test &#034;testpreempt&#034; permet de lancer des jobs &lt;strong&gt;au del&#224; des limites&lt;/strong&gt; habituelles de fa&#231;on &#224; pouvoir exploiter au mieux les c&#339;urs non utilis&#233;s (la journ&#233;e mais surtout la nuit et le week end) sans p&#233;naliser les jobs respectant les contraintes des files standards.&lt;/p&gt;
&lt;p&gt;Le prix &#224; payer pour cela est que &lt;strong&gt;ces jobs peuvent &#234;tre arr&#234;t&#233;s (&#034;pr&#233;empt&#233;s&#034;) brutalement &#224; tout moment&lt;/strong&gt; si un job r&#233;gulier peut d&#233;marrer.&lt;/p&gt;
&lt;p&gt;Votre job est ensuite red&#233;marr&#233; quand de la place s'est lib&#233;r&#233;e. (&lt;i&gt;ne semble pas fonctionner actuellement&lt;/i&gt;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Votre code doit donc sauvegarder tr&#232;s r&#233;guli&#232;rement son &#233;tat (&#034;checkpoint&#034;)&lt;/strong&gt; en garantissant l'int&#233;grit&#233; de cette sauvegarde (au cas o&#249; le job soit interrompu pendant la sauvegarde) et &#234;tre capable de repartir depuis cette sauvegarde.&lt;/p&gt;
&lt;p&gt; Pour &#233;viter que cette file ne soit utilis&#233;e par m&#233;garde et qu'elle ne trouble les utilisateurs des files standards, elle n'appara&#238;t pas naturellement dans les commandes &lt;code class='spip_code' dir='ltr'&gt;sinfo&lt;/code&gt; et &lt;code class='spip_code' dir='ltr'&gt;squeue&lt;/code&gt; : l'option &lt;code class='spip_code' dir='ltr'&gt;-a&lt;/code&gt; est n&#233;cessaire pour la voir.&lt;br class='autobr' /&gt; Pour d&#233;marrer les tests, les param&#232;tres suivants ont &#233;t&#233; retenus (ils sont susceptibles d'&#233;voluer par la suite) :&lt;br class='autobr' /&gt; Le temps d'ex&#233;cution d'un job dans cette file est limit&#233; &#224; 8h&lt;br class='autobr' /&gt; Tous les n&#339;uds sont accessibles via cette file, si vous souhaitez cibler des n&#339;uds particuliers, utilisez l'option &lt;code class='spip_code' dir='ltr'&gt;--constraint&lt;/code&gt;&lt;br class='autobr' /&gt; ex :&lt;/p&gt;
&lt;ul class=&#034;spip&#034;&gt;&lt;li&gt; &lt;code class='spip_code' dir='ltr'&gt;--constraint=&#034;Miriel&#034;&lt;/code&gt; pour tourner sur une Miriel&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code' dir='ltr'&gt;--constraint=&#034;Miriel|Mistral&#034;&lt;/code&gt; pour tourner sur une Miriel ou une Mistral&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; Pour avoir la liste des contraintes utilisables, utilisez la commande suivante : &lt;code class='spip_code' dir='ltr'&gt;sinfo -o &#034;%30N %10c %10m %30f %10G&#034;&lt;/code&gt; (colonne FEATURES)&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Conseils pour la sauvegarde de l'&#233;tat de votre job (&lt;i&gt;checkpointing&lt;/i&gt;)&lt;/h2&gt;
&lt;p&gt; &#201;crire une fonction d&#233;di&#233;e &#224; cette tache ainsi qu'une fonction d&#233;di&#233;e &#224; la restauration des donn&#233;es &#224; partir de la sauvegarde.&lt;/p&gt;
&lt;p&gt; Sauvegarder l'&#233;tat de votre programme dans un fichier temporaire (ou dans plusieurs fichiers dans un r&#233;pertoire temporaire) puis renommer (op&#233;ration atomique) avec le nom d&#233;finitif ce fichier (ou r&#233;pertoire) temporaire de fa&#231;on &#224; &#034;valider&#034; la sauvegarde.&lt;/p&gt;
&lt;p&gt; de cette fa&#231;on, si votre job est interrompu pendant pendant la sauvegarde de son &#233;tat, cela n'aura pour effet que de g&#233;n&#233;rer un fichier (ou r&#233;pertoire) temporaire inutilis&#233;. La pr&#233;c&#233;dente sauvegarde sera toujours coh&#233;rente et c'est elle qui sera reprise pour red&#233;marrer le job.&lt;/p&gt;
&lt;p&gt; Quand votre job d&#233;marre il doit regarder en premier s'il existe un &#233;tat sauvegard&#233; et si oui, repartir de cet &#233;tat.&lt;/p&gt;
&lt;p&gt; La sauvegarde de l'&#233;tat se fait typiquement derri&#232;re un point de synchronisation MPI pour &#234;tre s&#251;r que toutes les instances de votre code fassent leur sauvegarde en m&#234;me temps.&lt;/p&gt;
&lt;p&gt; La fr&#233;quence de ces sauvegardes est &#224; adapter en fonction de sa dur&#233;e (temps d'&#233;criture des donn&#233;es). Pour donner un ordre de grandeur, votre code ne devrait pas tourner plus de 30 minutes &#224; 1 heure sans faire de sauvegarde.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
