{"id":373,"date":"2020-04-10T16:03:49","date_gmt":"2020-04-10T14:03:49","guid":{"rendered":"http:\/\/calculs.univ-cotedazur.fr\/?page_id=373"},"modified":"2021-03-02T16:31:28","modified_gmt":"2021-03-02T15:31:28","slug":"evaluer-la-memoire-et-le-walltime-necessaires","status":"publish","type":"page","link":"https:\/\/calculs.univ-cotedazur.fr\/?page_id=373","title":{"rendered":"\u00c9valuer les ressources n\u00e9cessaires pour son job"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_11 counter-hierarchy counter-decimal ez-toc-grey\">\n<nav><ul class=\"ez-toc-list ez-toc-list-level-1\"><li class=\"ez-toc-page-1 ez-toc-heading-level-4\"><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/calculs.univ-cotedazur.fr\/?page_id=373#Ne_pas_reserver_de_ressources_inutiles\" title=\"Ne pas r\u00e9server de ressources inutiles\">Ne pas r\u00e9server de ressources inutiles<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-4\"><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/calculs.univ-cotedazur.fr\/?page_id=373#Definir_la_memoire_a_reserver\" title=\"D\u00e9finir la m\u00e9moire \u00e0 r\u00e9server \">D\u00e9finir la m\u00e9moire \u00e0 r\u00e9server <\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-4\"><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/calculs.univ-cotedazur.fr\/?page_id=373#J%E2%80%99ai_augmente_le_nombre_de_coeurs_mais_les_performances_ne_s%E2%80%99ameliorent_pas\" title=\"J&rsquo;ai augment\u00e9 le nombre de coeurs mais les performances ne s&rsquo;am\u00e9liorent pas\">J&rsquo;ai augment\u00e9 le nombre de coeurs mais les performances ne s&rsquo;am\u00e9liorent pas<\/a><\/li><\/ul><\/nav><\/div>\n<h4><span class=\"ez-toc-section\" id=\"Ne_pas_reserver_de_ressources_inutiles\"><\/span>Ne pas r\u00e9server de ressources inutiles<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Des commandes peuvent vous aider \u00e0 d\u00e9finir une r\u00e9servation ad\u00e9quate de ressources (CPU, m\u00e9moire, walltime).  L&rsquo;int\u00e9r\u00eat : si le cluster est tr\u00e8s utilis\u00e9, peu de ressources restent disponibles donc un job qui requiert peu de ressources aura plus de chances de voir son ex\u00e9cution lanc\u00e9e rapidement apr\u00e8s sa soumission. De plus, un quota d&rsquo;heures de calcul annuel est allou\u00e9 \u00e0 votre projet et cela vous \u00e9vitera de consommer des heures inutiles.<\/p>\n\n\n\n<p>Vous pouvez utiliser le \u00ab\u00a0Slurm job efficiency report\u00a0\u00bb (seff) qui vous indique les ressources ayant r\u00e9ellement \u00e9t\u00e9 utilis\u00e9es pour ex\u00e9cuter votre job, par rapport \u00e0 la r\u00e9servation de ressources initiales.<\/p>\n\n\n\n<p>Pour constater si vous ne r\u00e9servez pas trop de ressources, lancez la commande ci-dessous, une fois une premi\u00e8re ex\u00e9cution du job termin\u00e9e :<\/p>\n\n\n\n<pre class=\"wp-block-verse\">seff &lt;JOBID&gt;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"553\" height=\"240\" src=\"http:\/\/calculs.univ-cotedazur.fr\/wp-content\/uploads\/2020\/05\/seff.png\" alt=\"\" class=\"wp-image-666\" srcset=\"https:\/\/calculs.univ-cotedazur.fr\/wp-content\/uploads\/2020\/05\/seff.png 553w, https:\/\/calculs.univ-cotedazur.fr\/wp-content\/uploads\/2020\/05\/seff-300x130.png 300w\" sizes=\"(max-width: 553px) 100vw, 553px\" \/><figcaption>Exemple d&rsquo;un job qui r\u00e9serve 2 n\u0153uds entiers alors qu&rsquo;un seul serait suffisant (CPU Efficiency inf\u00e9rieur \u00e0 50%) <\/figcaption><\/figure>\n\n\n\n<p>La commande ci-dessous vous permettra de voir quels ont \u00e9t\u00e9 la consommation m\u00e9moire et le temps \u00e9coul\u00e9 pour chaque \u00e9tape du job. Ainsi, vous pourrez r\u00e9ajuster ces param\u00e8tres pour vos prochaines ex\u00e9cutions :<\/p>\n\n\n\n<pre>sacct -j &lt;JOBID&gt; --format=jobid,jobname,reqnodes,reqcpus,reqmem,maxrss,averss,elapsed,TotalCPU<\/pre>\n\n\n\n<p>De mani\u00e8re plus g\u00e9n\u00e9rale, si vous souhaitez afficher les informations pour tous vos jobs, utilisez cette commande :<\/p>\n\n\n\n<pre>sacct -S &lt;START_DATE&gt; --format=jobid,jobname,reqnodes,reqcpus,reqmem,maxrss,averss,elapsed,cputime,time,start,end -u &lt;USERNAME&gt;<\/pre>\n\n\n\n<p>La liste compl\u00e8te des champs que vous pouvez afficher <a href=\"https:\/\/slurm.schedmd.com\/sacct.html\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"est disponible ici (s\u2019ouvre dans un nouvel onglet)\">est disponible ici<\/a>.<\/p>\n\n\n\n<h4><span class=\"ez-toc-section\" id=\"Definir_la_memoire_a_reserver\"><\/span>D\u00e9finir la m\u00e9moire \u00e0 r\u00e9server <span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Pour d\u00e9finir la m\u00e9moire n\u00e9cessaire \u00e0 votre job, les options Slurm \u00e0 votre disposition sont les suivantes : <\/p>\n\n\n\n<pre class=\"wp-block-verse\">--mem=<br>--mem-per-cpu=<br>--mem-per-gpu=<\/pre>\n\n\n\n<p>Par d\u00e9faut, la valeur sp\u00e9cifi\u00e9e est consid\u00e9r\u00e9e \u00eatre en M\u00e9gaOctets, mais vous pouvez changer l&rsquo;unit\u00e9 de mesure en rajoutant \u00e0 sa suite [K|M|G|T].<\/p>\n\n\n\n<h4><span class=\"ez-toc-section\" id=\"J%E2%80%99ai_augmente_le_nombre_de_coeurs_mais_les_performances_ne_s%E2%80%99ameliorent_pas\"><\/span>J&rsquo;ai augment\u00e9 le nombre de coeurs mais les performances ne s&rsquo;am\u00e9liorent pas<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Bien qu&rsquo;une ex\u00e9cution parall\u00e8le de code peut permettre d&rsquo;importants gains de temps par rapport \u00e0 une ex\u00e9cution sur un seul c\u0153ur, vous serez peut-\u00eatre amen\u00e9s \u00e0 remarquer que la rapidit\u00e9 d&rsquo;ex\u00e9cution de votre code   n&rsquo;augmente pas proportionnellement au nombre de ressources    informatiques utilis\u00e9es. En effet, les portions s\u00e9quentielles (= non-parall\u00e9lisables) de votre code ne sont pas sensibles \u00e0 l&rsquo;augmentation du nombre de c\u0153urs.  Ainsi, en fonction de votre code, \u00e0 partir d&rsquo;un certain nombre de ressources l&rsquo;acc\u00e9l\u00e9ration d&rsquo;ex\u00e9cution atteindra son seuil maximal et il sera donc inutile de lancer ce code sur davantage de ressources. Pour plus d&rsquo;informations \u00e0 ce sujet, voir la <a rel=\"noreferrer noopener\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Loi_d%27Amdahl\" target=\"_blank\">loi d&rsquo;Amdahl<\/a>.  <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ne pas r\u00e9server de ressources inutiles Des commandes peuvent vous aider \u00e0 d\u00e9finir une r\u00e9servation ad\u00e9quate de ressources (CPU, m\u00e9moire, walltime). L&rsquo;int\u00e9r\u00eat : si le cluster est tr\u00e8s utilis\u00e9, peu de ressources restent disponibles donc un job qui requiert peu &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":140,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/calculs.univ-cotedazur.fr\/index.php?rest_route=\/wp\/v2\/pages\/373"}],"collection":[{"href":"https:\/\/calculs.univ-cotedazur.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/calculs.univ-cotedazur.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/calculs.univ-cotedazur.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/calculs.univ-cotedazur.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=373"}],"version-history":[{"count":12,"href":"https:\/\/calculs.univ-cotedazur.fr\/index.php?rest_route=\/wp\/v2\/pages\/373\/revisions"}],"predecessor-version":[{"id":1199,"href":"https:\/\/calculs.univ-cotedazur.fr\/index.php?rest_route=\/wp\/v2\/pages\/373\/revisions\/1199"}],"up":[{"embeddable":true,"href":"https:\/\/calculs.univ-cotedazur.fr\/index.php?rest_route=\/wp\/v2\/pages\/140"}],"wp:attachment":[{"href":"https:\/\/calculs.univ-cotedazur.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}