diff --git a/2-ressources.ipynb b/2-ressources.ipynb index d950c5b..1d45430 100644 --- a/2-ressources.ipynb +++ b/2-ressources.ipynb @@ -218,6 +218,18 @@ "```" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Si vous utilisez\n", + "[JupyterHub](https://docs.alliancecan.ca/wiki/JupyterHub/fr)\n", + "pour profiler votre programme, vous pouvez visualiser en temps\n", + "réel la consommation de ressources dans l'onglet NV Dashboard:\n", + "\n", + "![NV Dashboard CPU](images/nv-dashboard_cpu.png)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -294,6 +306,18 @@ "```" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Si vous utilisez\n", + "[JupyterHub](https://docs.alliancecan.ca/wiki/JupyterHub/fr)\n", + "pour profiler votre programme GPU, vous pouvez visualiser en temps\n", + "réel la consommation de ressources dans l'onglet NV Dashboard:\n", + "\n", + "![NV Dashboard GPU](images/nv-dashboard_gpu.png)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -451,12 +475,17 @@ "metadata": {}, "source": [ "* **Sous Linux** et sur les **grappes de calcul** :\n", - " * L'environnement graphique peut offrir le même genre d'outils, mais tout dépend de la distribution et du bureau.\n", - " * La commande `du -bs DOSSIER` (`b` : taille apparente en octets, `s` : somme totale) calcule récursivement et affiche la taille totale en octets. La taille apparente est celle qui importe lors d'un transfert ou d'une sauvegarde de données.\n", - " * La commande `find DOSSIER | wc -l` compte récursivement et affiche le nombre de fichiers et de sous-dossiers.\n", + " * L'environnement graphique peut offrir le même genre d'outils,\n", + " mais tout dépend de la distribution et du bureau.\n", + " * La commande `du -sb DOSSIER` (`s` : somme totale, `b` : taille\n", + " apparente en octets) calcule récursivement et affiche la\n", + " taille totale en octets. La taille apparente est celle qui\n", + " importe lors d'un transfert ou d'une sauvegarde de données.\n", + " * La commande `find DOSSIER | wc -l` compte récursivement\n", + " et affiche le nombre de fichiers et de sous-dossiers.\n", "\n", "```Bash\n", - "du -bs donnees\n", + "du -sb donnees\n", "find donnees | wc -l\n", "```" ] @@ -555,7 +584,7 @@ " * `time` et autres bibliothèques de mesure du temps écoulé\n", " * `top`, `htop`, `nvtop`, `nvidia-smi`\n", " * `sacct`, `seff`\n", - " * `du -bs`, `find | wc -l` et autres outils du système d'exploitation\n", + " * `du -sb`, `find | wc -l` et autres outils du système d'exploitation\n", "* On vise une **efficacité de 90%** et plus pour les tâches CPU\n", " * L'accélération avec un accélérateur (GPU) doit être significative (>5x)\n", "* Le choix de la grappe dépend des besoins de chaque type de calcul" @@ -585,7 +614,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.5" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/3-lots-taches.ipynb b/3-lots-taches.ipynb index 09d40cc..521759a 100644 --- a/3-lots-taches.ipynb +++ b/3-lots-taches.ipynb @@ -233,14 +233,8 @@ " [pour des calculs séquentiels seulement](https://docs.alliancecan.ca/wiki/GLOST/fr)\n", "\n", "* META-Farm\n", - " [pour le meilleur de GNU Parallel et GLOST](https://docs.alliancecan.ca/wiki/META-Farm/fr)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Vecteurs de tâches\n", + " [pour le meilleur de GNU Parallel et GLOST](https://docs.alliancecan.ca/wiki/META-Farm/fr)\n", + "\n", "Alors que les précédents outils s'utilisent bien avec un lot de\n", "calculs séquentiels ou parallèles de petite taille (16 processeurs\n", "ou moins), **ils ne sont pas** vraiment **appropriés pour**\n", @@ -249,8 +243,17 @@ "* on veut éviter les longues tâches qui dépassent trois (3) jours et\n", "* on veut réduire le risque de subir une défaillance matérielle.\n", "\n", - "Dans le cas où un même programme parallèle doit être exécuté avec\n", - "différentes combinaisons de paramètres, il y a moyen de soumettre un seul\n", + "C'est pourquoi, dans certains cas, il vaut\n", + "mieux utiliser les vecteurs de tâches." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Vecteurs de tâches\n", + "Dans le cas où un même programme doit être exécuté avec différentes\n", + "combinaisons de paramètres, il y a moyen de soumettre un seul\n", "[vecteur de tâches](https://docs.alliancecan.ca/wiki/Job_arrays/fr)\n", "et de coder le script de tâche de telle sorte que les paramètres\n", "seront déterminés **en fonction d'un indice unique** du vecteur de tâches.\n", @@ -382,7 +385,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.5" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/4-stockage.ipynb b/4-stockage.ipynb index b84243b..9eec7bf 100644 --- a/4-stockage.ipynb +++ b/4-stockage.ipynb @@ -315,8 +315,7 @@ "\n", "En pratique, les grappes de calcul offrent des\n", "[outils efficaces](https://docs.alliancecan.ca/wiki/Diskusage_Explorer)\n", - "pour mesurer l'espace utilisé en fonction de l'espace alloué.\n", - "Nous verrons cela à la fin du chapitre." + "pour mesurer l'espace utilisé en fonction de l'espace alloué." ] }, { @@ -452,7 +451,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.5" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/99-references.ipynb b/99-references.ipynb index 5ef6847..6a2097c 100644 --- a/99-references.ipynb +++ b/99-references.ipynb @@ -67,6 +67,7 @@ " * [Installation de logiciels dans votre répertoire `/home`](https://docs.alliancecan.ca/wiki/Installing_software_in_your_home_directory/fr)\n", " * [Politique d'ordonnancement des tâches](https://docs.alliancecan.ca/wiki/Job_scheduling_policies/fr)\n", " * [Partitionnement des grappes](https://docs.alliancecan.ca/wiki/Job_scheduling_policies/fr#Pourcentages_des_n.C5.93uds_disponibles)\n", + " * Profilage des tâches via [JupyterHub](https://docs.alliancecan.ca/wiki/JupyterHub/fr)\n", " * [Tâches exécutées avec GPU](https://docs.alliancecan.ca/wiki/Using_GPUs_with_Slurm/fr)\n", " * [Scalabilité](https://docs.alliancecan.ca/wiki/Scalability/fr)\n", " * [Suivi des tâches](https://docs.alliancecan.ca/wiki/Running_jobs/fr#Suivi_des_t.C3.A2ches)\n", @@ -209,7 +210,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.5" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/images/nv-dashboard_cpu.png b/images/nv-dashboard_cpu.png new file mode 100644 index 0000000..02aeaae Binary files /dev/null and b/images/nv-dashboard_cpu.png differ diff --git a/images/nv-dashboard_gpu.png b/images/nv-dashboard_gpu.png new file mode 100644 index 0000000..3d80e73 Binary files /dev/null and b/images/nv-dashboard_gpu.png differ