{"id":224,"date":"2014-03-26T08:16:09","date_gmt":"2014-03-26T12:16:09","guid":{"rendered":"http:\/\/binsrv3.iric.ca\/wpbioinfo\/?page_id=224"},"modified":"2023-04-26T20:28:43","modified_gmt":"2023-04-26T20:28:43","slug":"grappe-de-calcul","status":"publish","type":"page","link":"https:\/\/bioinfo.iric.ca\/fr\/documentation\/grappe-de-calcul\/","title":{"rendered":"Grappe de calcul"},"content":{"rendered":"<p>L&rsquo;IRIC poss\u00e8de une grappe de calcul d\u00e9di\u00e9e et emploie le logiciel <em>SLURM<\/em> pour distribuer les t\u00e2ches sur ces ressources.\u00a0 Pour y acc\u00e9der, vous devez poss\u00e9der un <a title=\"Comptes usagers\" href=\"http:\/\/www.bioinfo.iric.ca\/wpbioinfo\/fr\/documentation\/comptes-usagers\/\">compte Linux<\/a> sur nos serveurs et utiliser un client SSH afin de rejoindre le noeud ma\u00eetre de la grappe \u00e0 l&rsquo;adresse suivante:<\/p>\n<blockquote><p>cluster.iric.ca<\/p><\/blockquote>\n<p>Tous les r\u00e9pertoires usagers sont export\u00e9s sur cette grappe de calcul par NFS et vous aurez donc acc\u00e8s \u00e0 vos donn\u00e9es de n&rsquo;importe quel noeud en utilisant le m\u00eame r\u00e9pertoire (e.g. \/u\/usager).<\/p>\n<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 hundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-overflow:visible;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last fusion-column-no-min-height\" style=\"--awb-bg-size:cover;--awb-margin-bottom:0px;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div class=\"fusion-title title fusion-title-1 fusion-title-text fusion-title-size-two\"><h2 class=\"fusion-title-heading title-heading-left\" style=\"margin:0;\">Lancer une t\u00e2che<\/h2><span class=\"awb-title-spacer\"><\/span><div class=\"title-sep-container\"><div class=\"title-sep sep-double sep-solid\" style=\"border-color:#e0dede;\"><\/div><\/div><\/div>\n<p>La soumission d&rsquo;une t\u00e2che se fait en utilisant la commande <em>salloc<\/em> pour un acc\u00e8s interactif et <em>sbatch<\/em> autrement, et en sp\u00e9cifiant les ressources requise pour cette t\u00e2che. Dans sa forme la plus simple, il est possible de se connecter de fa\u00e7on interactive sur un noeud de calcul en utilisant les commandes suivantes:<\/p>\n<blockquote><p><code style=\"font-size:0.85em;\">salloc \u2013nodes=1 \u2013ntasks=2 \u2013mem=8gb \u2013time=4:00:00<\/code><\/p><\/blockquote>\n<p>Cette commande vous connectera sur le prochain noeud de calcul disponible en r\u00e9servant 2 coeurs de CPU et 8GB de m\u00e9moire et ce, pour une dur\u00e9e maximale de 4 heures apr\u00e8s laquelle vous serez automatiquement d\u00e9connect\u00e9. Durant cette p\u00e9riode, vous pourrez ex\u00e9cuter votre programme sur ce noeud de calcul en mode interactif, ce qui est particuli\u00e8rement utile pour tester vos analyses. Une fois que vous \u00eates confiant de votre analyse, il est plus efficace de lancer les t\u00e2ches en mode batch en cr\u00e9ant un script qui d\u00e9finit les commandes \u00e0 \u00eatre ex\u00e9cut\u00e9es, par exemple:<\/p>\n<blockquote><p><code style=\"font-size:0.85em;\">#!\/bin\/bash<br \/>\n#SBATCH \u2013mem=2g # memory<br \/>\n#SBATCH \u2013nodes 1 # nodes<br \/>\n#SBATCH \u2013ntasks=4 # cores<br \/>\n#SBATCH \u2013time=0-04:00 # time (DD-HH:MM)<br \/>\nmodule load star<br \/>\nmodule load samtools<br \/>\nSTAR ...<br \/>\nsamtools ...<\/code><\/p><\/blockquote>\n<p>et de soumettre ce script, par exemple nomm\u00e9 test.sh, \u00e0 la grappe de calcul ainsi:<\/p>\n<blockquote><p>sbatch test.sh<\/p><\/blockquote>\n<p>A noter que les ressources demand\u00e9es peuvent \u00eatre sp\u00e9cifi\u00e9es dans le script ou en argument de la ligne de commande sbatch. Les sorties stdout et stderr de vos programmes seront redirig\u00e9s dans des fichiers du r\u00e9pertoire de travail.\u00a0 Une t\u00e2che qui tenterait d&rsquo;allouer plus de m\u00e9moire que demand\u00e9 sera stopp\u00e9e tandis qu&rsquo;une t\u00e2che qui utiliserait plus de coeurs que r\u00e9serv\u00e9 sera tout de m\u00eame ex\u00e9cut\u00e9 mais sera restreinte au nombre de coeurs physique demand\u00e9.<\/p>\n<p>Pour plus de d\u00e9tails sur les param\u00e8tres de sbatch, vous pouvez consulter la documentation officielle de <a href=\"https:\/\/slurm.schedmd.com\/documentation.html\">Slurm<\/a>.<\/p>\n<div class=\"fusion-clearfix\"><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last fusion-column-no-min-height\" style=\"--awb-bg-size:cover;--awb-margin-bottom:0px;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div class=\"fusion-title title fusion-title-2 fusion-title-text fusion-title-size-two\"><h2 class=\"fusion-title-heading title-heading-left\" style=\"margin:0;\">Espace de stockage local<\/h2><span class=\"awb-title-spacer\"><\/span><div class=\"title-sep-container\"><div class=\"title-sep sep-double sep-solid\" style=\"border-color:#e0dede;\"><\/div><\/div><\/div>\n<p>Pour chaque t\u00e2che soumise \u00e0 la grappe de calcul, un espace de stockage local est automatiquement cr\u00e9\u00e9 sur le noeud de calcul et peut \u00eatre utilis\u00e9 dans vos scripts pour acc\u00e9l\u00e9rer certaines op\u00e9rations. La variable $TMPDIR contiendra le nom de ce dossier temporaire. La taille disponible dans cet espace local est variable d&rsquo;un noeud \u00e0 l&rsquo;autre et un noeud poss\u00e9dant une taille suffisante pour votre usage peut \u00eatre demand\u00e9 \u00e0 l&rsquo;aide d&rsquo;un param\u00e8tre suppl\u00e9mentaire.<\/p>\n<blockquote><p><code style=\"font-size:0.85em;\">sbatch \u2013nodes 1 \u2013tmp=100gb test.sh # To reserve a node with at least 100GB in $TMPDIR<\/code><\/p><\/blockquote>\n<div class=\"fusion-clearfix\"><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last fusion-column-no-min-height\" style=\"--awb-bg-size:cover;--awb-margin-bottom:0px;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div class=\"fusion-title title fusion-title-3 fusion-title-text fusion-title-size-two\"><h2 class=\"fusion-title-heading title-heading-left\" style=\"margin:0;\">Monitorer une t\u00e2che<\/h2><span class=\"awb-title-spacer\"><\/span><div class=\"title-sep-container\"><div class=\"title-sep sep-double sep-solid\" style=\"border-color:#e0dede;\"><\/div><\/div><\/div>\n<p>Vous pouvez afficher l&rsquo;\u00e9tat de vos t\u00e2ches en utilisant la commande squeue et supprimer l&rsquo;une d&rsquo;elle avec la commande scancel:<\/p>\n<blockquote><p><code style=\"font-size:0.85em;\">squeue<br \/>\nscancel<\/code><\/p><\/blockquote>\n<p>L&rsquo;\u00e9tat g\u00e9n\u00e9ral de la grappe de calcul peut aussi \u00eatre affich\u00e9 \u00e0 l&rsquo;aide de la commande:<\/p>\n<blockquote><p><code style=\"font-size:0.85em;\">sinfo<\/code><\/p><\/blockquote>\n<p>ou pour plus de d\u00e9tails sur une partition:<\/p>\n<blockquote><p><code style=\"font-size:0.85em;\">sinfo -o \"%12N %.10c  %8O %.8m  %20f  %20G %10T %10d %.4w %P\" -N -p gpu<br \/>\n<\/code>\n<\/p><\/blockquote>\n<p>et en consultant l&rsquo;outil de monitoring ganglia: <a href=\"http:\/\/bioinfo.iric.ca\/ganglia\">http:\/\/bioinfo.iric.ca\/ganglia<\/a>.<\/p>\n<div class=\"fusion-clearfix\"><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last fusion-column-no-min-height\" style=\"--awb-bg-size:cover;--awb-margin-bottom:0px;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div class=\"fusion-title title fusion-title-4 fusion-title-text fusion-title-size-two\"><h2 class=\"fusion-title-heading title-heading-left\" style=\"margin:0;\">R\u00e9servation de GPU<\/h2><span class=\"awb-title-spacer\"><\/span><div class=\"title-sep-container\"><div class=\"title-sep sep-double sep-solid\" style=\"border-color:#e0dede;\"><\/div><\/div><\/div>\n<p>Slurm permet de r\u00e9server des resources sp\u00e9cifiques pour du calcul GPU en utilisant l&rsquo;option gres. Par exemple:<\/p>\n<blockquote><p><code style=\"font-size:0.85em;\">sbatch \u2013nodes 1 \u2013gres=gpu:1 # Reserve a node and a single card, regardless of its type<br \/>\nsbatch \u2013nodes 1 \u2013gres=gpu:rtx2080:2 # Reserve a node with 2 RTX2080 cards<\/code><\/p><\/blockquote>\n<p>Les GPUs disponibles sont d\u00e9crits dans la colonne GRES du r\u00e9sultat de la commande sinfo. La variale d&rsquo;environnement $CUDA_VISIBLE_DEVICES contiendra l&rsquo;id du ou des GPU r\u00e9serv\u00e9s, ce qui peut \u00eatre utile lorsqu&rsquo;une t\u00e2che est ex\u00e9cut\u00e9e sur un noeud contenant plusieurs GPUs.<\/p>\n<div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;IRIC poss\u00e8de une grappe de calcul d\u00e9di\u00e9e et emploie le logiciel SLURM pour distribuer les t\u00e2ches sur ces ressources.\u00a0 Pour y acc\u00e9der, vous devez poss\u00e9der un compte Linux sur nos serveurs et utiliser un client SSH afin de rejoindre le noeud ma\u00eetre de la grappe \u00e0 l&rsquo;adresse suivante: cluster.iric.ca Tous les r\u00e9pertoires usagers sont export\u00e9s sur cette grappe de calcul par NFS et vous aurez donc acc\u00e8s \u00e0 vos donn\u00e9es de n&rsquo;importe quel noeud en utilisant le m\u00eame r\u00e9pertoire (e.g. <a href=\"https:\/\/bioinfo.iric.ca\/fr\/documentation\/grappe-de-calcul\/\"> [&#8230;]<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":52,"menu_order":0,"comment_status":"open","ping_status":"open","template":"side-navigation.php","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-224","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/pages\/224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/comments?post=224"}],"version-history":[{"count":24,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/pages\/224\/revisions"}],"predecessor-version":[{"id":100148,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/pages\/224\/revisions\/100148"}],"up":[{"embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/pages\/52"}],"wp:attachment":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/media?parent=224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}