{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Dask\n", "====\n", "\n", "\n", "\n", "\n", "Dask est une bibliothèque de calcul parallèle flexible pour le calcul analytique. Dask fournit un ordonnancement dynamique des tâches parallèles et des collections de données volumineuses de haut niveau comme `dask.array` et `dask.dataframe`. Pour en savoir plus sur Dask, voir : https://docs.dask.org/en/latest/\n", "\n", "_Note: Des parties de ce notebook proviennent des sources suivantes:_\n", "\n", "- https://github.com/rabernat/research_computing\n", "- https://github.com/dask/dask-examples" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Démarrer un cluster distribué Dask et un client pour le tableau de bord\n", "\n", "Le démarrage du Cluster/Client Dask est généralement facultatif. \n", "Il fournit un tableau de bord qui est utile pour avoir un aperçu du calcul. \n", "L'utilisation de `dask_jobqueue` permet également d'obtenir une plus grande puissance de calcul en mettant à l'échelle Dask sur plusieurs noeuds du HPC.\n", "\n", "Le lien vers le tableau de bord sera visible lorsque vous créerez le cluster ou le client ci-dessous. Comme [dask-labextension](https://github.com/dask/dask-labextension) est intégré dans l'environnement actuel, il peut être suffisant pour surveiller les tâches Dask (voir les fenêtres Task Stream et Progress sur la droite). Sinon, nous vous recommandons d'avoir le tableau de bord ouvert d'un côté de votre écran tout en utilisant votre ordinateur portable de l'autre côté. Cela peut demander un certain effort pour arranger vos fenêtres, mais les voir toutes les deux en même temps est très utile pour apprendre." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Création du cluster local" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/softs/rh7/conda-envs/pangeo_202012/lib/python3.8/site-packages/distributed/node.py:151: UserWarning: Port 8787 is already in use.\n", "Perhaps you already have a cluster running?\n", "Hosting the HTTP server on port 37665 instead\n", " warnings.warn(\n" ] } ], "source": [ "import dask.distributed\n", "cluster = dask.distributed.LocalCluster()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Connexion d'un client au cluster:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n",
"Client\n", "
| \n",
"\n",
"Cluster\n", "
| \n",
"
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "