{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Dask\n", "====\n", "\n", "\"Dask\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", "\n", "\n", "\n", "\n", "
\n", "

Client

\n", "\n", "
\n", "

Cluster

\n", "
    \n", "
  • Workers: 1
  • \n", "
  • Cores: 1
  • \n", "
  • Memory: 4.29 GB
  • \n", "
\n", "
" ], "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import dask.distributed\n", "client = dask.distributed.Client(cluster)\n", "client" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Dask Arrays\n", "\n", "Un tableau dask ressemble beaucoup à un tableau numpy.\n", "Cependant, un tableau dask ne contient pas directement de données.\n", "Il représente plutôt symboliquement les calculs nécessaires pour générer les données.\n", "Rien n'est réellement calculé tant que les valeurs numériques réelles ne sont pas nécessaires.\n", "Ce mode de fonctionnement est appelé \"paresseux\" ; il permet d'effectuer des calculs complexes et volumineux de manière symbolique avant de les transférer au programmateur pour exécution.\n", "\n", "Si nous voulons créer un tableau numérique de tous les calculs, nous le faisons comme ceci :" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " ...,\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.]])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "shape = (1000, 4000)\n", "ones_np = np.ones(shape)\n", "ones_np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ce tableau contient exactement 32 Mo de données :" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "32.0 Mo\n" ] } ], "source": [ "print('%.1f Mo' % (ones_np.nbytes / 1e6))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Maintenant, créons le même tableau en utilisant l'interface de tableau de dask." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Array Chunk
Bytes 32.00 MB 32.00 MB
Shape (1000, 4000) (1000, 4000)
Count 1 Tasks 1 Chunks
Type float64 numpy.ndarray
\n", "
\n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 4000\n", " 1000\n", "\n", "
" ], "text/plain": [ "dask.array" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import dask.array as da\n", "ones = da.ones(shape)\n", "ones" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cela fonctionne, mais nous n'avons pas dit à Dask comment diviser le tableau, il n'est donc pas optimisé pour le calcul distribué.\n", "\n", "Une différence essentielle avec dask est que nous devons spécifier l'argument `chunks`. `chunks` décrit comment le tableau est réparti sur plusieurs sous-tableaux.\n", "\n", "![Dask Arrays](https://docs.dask.org/en/latest/_images/dask-array-black-text.svg)\n", "\n", "Il y a plusieurs [manières de spécifier le morcèlement des tableaux](https://docs.dask.org/en/latest/array-creation.html#chunks).\n", "Dans cette présentation, nous utiliserons une forme de bloc." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Array Chunk
Bytes 32.00 MB 8.00 MB
Shape (1000, 4000) (1000, 1000)
Count 4 Tasks 4 Chunks
Type float64 numpy.ndarray
\n", "
\n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 4000\n", " 1000\n", "\n", "
" ], "text/plain": [ "dask.array" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chunk_shape = (1000, 1000)\n", "ones = da.ones(shape, chunks=chunk_shape)\n", "ones" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remarquez que nous ne voyons qu'une représentation symbolique de l'ensemble, y compris sa forme, son type et sa taille.\n", "Aucune donnée n'a encore été générée. Lorsque nous appelons `.compute()` sur un tableau Dask, le calcul est déclenché et le tableau Dask devient un tableau numpy." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " ...,\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.]])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ones.compute()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Afin de comprendre ce qui s'est passé lorsque nous avons appelé `.compute()`, nous pouvons visualiser le _graphe_ Dask, c'est-à-dire les opérations symboliques qui composent le tableau." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAACyCAYAAACweS83AAAABmJLR0QA/wD/AP+gvaeTAAAbV0lEQVR4nO3deVDU9/3H8ddyyCkEUVHjgYwcxkSNGuuRkKhR60htpjFeeMw0Ga1ObOJMWmtr6pHfeDWXiZoQk5oKeECsWs/GAwlKNErihYo6aAS0EjQgLNcC798fjCQbFtiF/e6H/e7rMbN/8N3l8/3sM8ybsO5hEBEBERE5s2Q31TsgIqKW4zAnItIBDnMiIh3w+OWB3NxcpKenq9iLU5k0aZIm67K/ddhfLfZXy2J/+YXt27cLAF6auGiF/dnfGS7s3+r6JzX4MIuI8GLhsn379oaS2ZXq+9laL+zP/q58aaw/HzMnItIBDnMiIh3gMCci0gEOcyIiHeAwJyLSAQ5zIiId4DAnItIBDnMiIh3gMCci0gEOcyIiHeAwJyLSAQ5zIiId4DAnItIBDnMiIh1wyDD/8ssvsWfPnrqvz5w5gxdffBFvvPEGZs+ejX/961/NXruxtc6dO4d169ZBRFq0f2enZX8AKCwsxOLFi7Fo0SKz4+xfS8v+W7ZswaBBgxAQEIDBgwdj3759ddexfy0t+ycnJ2PAgAHw9/dH3759sXv37rrrHN5ffuHhm8Pby4YNG2TDhg11X589e1b8/PzkxIkTIiJSVlYmERER8tFHH9m8tjVrnTp1Sv785z+38F78xN59tF5fy/4iIv/5z39k0qRJAkBeffXVetezv3b93333XRk3bpy8//778vrrr4uvr68YDAY5dOhQ3W3YX7v+n3/+ucyePVtSUlLk6NGj8uSTT4qnp6dcvXq17jYO7J+k6TA/fPiwTJw40ezYqFGjZOTIkWbH1q9fL/7+/vLgwQOb1rd2reXLl8u6dets3L1lzvTDrHX/h4qKihoc5iLs/3P26l9cXCxTpkwxO/b111+Lm5ubjBkzxuw4+//EXv0rKytl7dq1ZscyMjIEgMTHx5sdd1B/7YZ5VVWVPPHEE5KZmVl37Pbt2wJAli5danbbCxcuCACz36BNsWWtkpIS6dixo1y/fr2Z9+YnzvLDrHX/nysvL290mLN/LXv2P3z4sFy6dKne8YEDB0pYWJjZMfavZc/+VVVVYjKZzI7dvHlTAMiVK1fMjjuof8MfG9dSn332GYqKivDYY4/VHbt06RIAIDw83Oy2D7+25YNcbVnLz88PgwYNwooVK2y4B85N6/62YP9a9uw/atQo9O7du97xwMBAhIaGmh1j/1r27O/u7g4PDw+zY4mJiVi2bBkiIyPNjjuqv2bD/N///jd+9atfmR27cuUKgNofuJ/z8vKCl5cXcnJyrF7f1rWGDh2KHTt2oLq62upzODOt+9uK/bXvX11djQsXLiA2NrbedeyvXf+SkhIsX74c7733Hnr27GnxNo7or9kwv3z5MoKDg82O5eXlAQD8/f3r3d7f3x937961en1b1woJCUFRUVHdb2e907q/rdhf+/579uzBo48+ilmzZtW7jv216W80GvHOO+/gwoULuH//PmbOnInPPvus3u0c0V+TYW40GpGTk4OgoCCz4926dQMAlJaW1vue0tJSdO/e3epz2LrWI488AgCaDqzWwhH9bcX+2vavrKzEmjVrkJSUBHd393rXs782/f38/LBkyRIkJyfjv//9L4KCgiw+nOKI/poMc5PJBBGp9ydFr169AABFRUVmxysrK1FWVlbvsabG2LqWm1vtXfXx8bH6HM7KEf1txf7a9v/LX/6ClStX1ns8+CH21/7n//nnn8eCBQtw48YNmEwms+sc0V+TYR4YGAhvb28UFhaaHe/Tpw8MBgNu3rxpdvzh11FRUVafw9a17t+/DwAW/9FIbxzR31bsr13/DRs2IDo6Gs8++2yDt2F/x/z89+nTB127doWnp6fZcUf012SYGwwGDBs2DLdv3zY73qVLF0RHRyM1NdXseGpqKtq0aYMXX3zR6nPYulZBQQE6deqEdu3a2XhvnI8j+tuK/bXpv2XLFnh7e+OFF14wO56Wlmb2Nfs75uf/ypUrmDBhQr3jjuiv2T+ATps2Denp6fVeyrpmzRocP34c3333HYDaP3E+/PBDLF68GCEhIQCAefPm4emnn8b169cbPYc1az2Unp6OcePG2evutXqO6P+Q0WgEAJSXlzd4G/avZc/++/fvx4cffgiTyYS4uDjExcXh448/xquvvorz58+b3Zb9a9mrf2FhIWJjY5GYmFh3juvXryM1NRWrV6+ud3uH9LfhSek2qayslPDwcElPT6933enTp2Xy5MmyaNEimTp1qqxbt05qamrqrh8/fry4ubnJwoULmzxPU2uJiJSWlkq7du3qPZm/OZzlRROO6p+WliYvv/yyAJCQkBDZunWr3Llz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\n", "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ones.visualize()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notre tableau comporte 4 morceaux. Pour le générer, dask appelle 4 fois `np.ones` et les concatène ensuite en un tableau.\n", "\n", "Plutôt que de charger immédiatement un tableau Dask (qui met toutes les données dans la RAM), il est plus courant de réduire les données d'une manière ou d'une autre. Par exemple :" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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d30zlc7s2rULy5Yt0+z87N829leL/dVqq7/TMm82bdo0zQbSs/DwcE2/mZuxv2vsrxb7q9VWf/967kBERB3CZU5EZABc5kREBsBlTkRkAFzmREQGwGVORGQAXOZERAbAZU5EZABc5kREBsBlTkRkAFzmREQGwGVORGQAXOZERAbAZU5EZAA+WeYbNmxAbm5uy5+/+OILTJw4EbNnz8b06dM79buL2zrXV199haVLl+KCz98IOFr2B4CysjLMnTsXc+bMcTjO/k207J+RkYFBgwYhJiYG119/PT7++OOW29i/iZb9s7Ozcd111yEqKgr9+/fHhx9+2HKbz/vLBd577z1xcbjDXnnlFXnllVda/rx3716JjIyU7du3i4hIbW2t9O7dW1599VWPz+3Ouf7zn//I448/3slH8RNv99H6/Fr2FxFZt26d3HfffQJAZs2a5XQ7+2vX/4UXXpDbbrtNXnzxRXn00UclIiJCTCaTbNy4seU+7K9d/3feeUemT58uW7Zskc2bN8u1114rISEhUlxc3HIfH/bP0nSZb9q0Se69916HY6NHj5ZRo0Y5HFu2bJlERUVJRUWFR+d391wLFiyQpUuXeji9a3r6Zta6f7Py8vJWl7kI+5/PW/0rKyvlgQcecDj2+eefi9lslrFjxzocZ/+feKu/1WqVl156yeHYnj17BICsWrXK4biP+mu3zO12u/Tr108OHDjQcuz48eMCQObPn+9w3/379wsAh79B2+PJuaqqqqR79+5SUlLSwUfzE718M2vd/3x1dXVtLnP2b+LN/ps2bZJvvvnG6fjAgQPlqquucjjG/k282d9ut4vNZnM49sMPPwgAKSwsdDjuo/5Zmv3M/K233kJ5eTn69OnTcuybb74BACQnJzvct/nPO3bscPv8npwrMjISgwYNwj//+U8PHoG+ad3fE+zfxJv9R48ejauvvtrpeGxsLK688kqHY+zfxJv9g4KCEBzs+Kmb6enpePLJJ2GxWByO+6q/Zsv8gw8+wJAhQxyOFRYWAmj6hjtfWFgYwsLCcOTIEbfP7+m5hg0bhpycHDQ0NLh9DT3Tur+n2F/7/g0NDdi/f7/LT7dnf+36V1VVYcGCBViyZAl69uzp8j6+6K/ZMj948CC6devmcOzYsWMAgKioKKf7R0VF4eTJk26f39NzJSYmory8vOVvZ6PTur+n2F/7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\n", "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sum_of_ones = ones.sum()\n", "sum_of_ones.visualize()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous voyons ici la stratégie de Dask pour trouver la somme. Cet exemple simple illustre la beauté de dask : il conçoit automatiquement un algorithme approprié pour les opérations personnalisées avec de grosses données. \n", "\n", "Si nous rendons notre opération plus complexe, le graphe devient plus complexe." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.arange(10)[::-1]" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " ...,\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.]])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ones[::-2, ::-2].compute()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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8vPzMx0NAO7ULmZyARjj7e2tMWPG6OjRo3rjjTe0fPlyVa5cWb169dKBAwdMx7O1GzduaM2aNWratKkefPBBHT58WIsWLVJAQIBOnjypFi1asG4agFOj5AIw7p577tHYsWN14sQJzZo1S/v27VPdunXVqlUrLV26VKmpqaYj2saFCxf0/vvvq3r16nr66ad1zz33aMuWLdq1a5eeffZZVapUSZL0888/q2nTprpw4YLhxABwZyi5ABxGwYIF1bt3b0VFRWndunXy9vZWz549VaZMGY0YMYLbj92hGzduaP369ercubPKlSun8ePH69FHH9XBgwf11VdfqVmzZlnHVqlSRR4eHkpPT9fRo0fVpEkTxcTEGEwPAHeGkgvA4bi5ualdu3Zas2aNTp48qeHDh2vNmjWqVauWGjdurClTplC8smHv3r167bXXVKFCBbVv316XLl3SnDlzdPbsWX388ceqXr36735NYGCg3N3dJf36AIjTp0+rUaNGOn78eH7HB4C7woVnAJzCjRs3FBYWpkWLFmn16tW6fv26mjRpoq5du+qZZ57hyVv/Z//+/Vq2bJmWLVumo0ePqmLFiuratateeOEFVatW7ba/ft68eerbt69u3LiRtc3Dw0MlS5ZURERE1nIGAHBwuyi5AJxOamqqNmzYoOXLl2vNmjWKj49XzZo11bFjR7Vu3VrNmzfXhg0b1L59exUoYO//sEpMTNSOHTu0du3arJnvsmXLqlOnTurSpYtCQkLk5uaW7fNt2bLlD28Z5unpKV9fX0VERKhKlSq5+AoAIE9QcgE4t5SUFG3atEnr1q1TaGiojh07phIlSiglJUXjxo3To48+qlq1amX9F7yzS0pK0q5du7Rt2zaFhYVp+/btunHjhurXr6/27durffv2euihh3JUbH/r1KlTKl++/B/u8/T0lI+PjzZv3qxatWrdzcsAgLxGyQVgLz///LO6deumffv2qVixYrp+/bqKFy+uxo0bKyQkRI0aNVJwcLACAgJMR72tGzdu6NixY9q3b58iIyMVGRmp77//XhkZGSpbtqxatmypdu3aqU2bNrl2T9vMzEx5eXkpMzPzD/d7eHioWLFi2rJli4KCgnJlTADIA5RcAPayfPlyPfvss5KkrVu3qnjx4tq2bZsiIyO1bds2nTx5UpLk7++v4OBgBQcHq3bt2qpataoC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S8Yjus/ly5fxwgsvlNqWmJiIy5cv45FHHim1XUQsmIyobAaDAW3atMHLL79s3Jabm4tdu3YhODgY3t7exu1qtRrFxcVlfqiSyJLYD6yXSvi3W4316tULI0eOxCeffKJ0FKIqWbhwIZYtW4akpCSloxBVSVJSEjp27Ihjx46hV69eSschqhL2A6sQx8sViIiIiMjusOQSERERkd1hySUiIiIiu8OSS0RERER2hyWXiIiIiOwOSy4RERER2R2WXCIiIiKyOyy5RERERGR3WHKJiIiIyO6w5BIRERGR3WHJJSIiIiK7w5JLRERERHaHJZeIiIiI7A5LLhERERHZHZZcIiIiIrI7LLlEREREZHdYcomIiIjI7rDkEhEREZHdYcklIiIiIrvDkktEREREdocll4iIiIjsDksuEREREdkdllwiIiIisjssuURERERkd1hyiYiIiMjusOQSERERkd1hySUiIiIiu8OSS0RERER2hyWXiIiIiOwOSy4RERER2R2WXCIiIiKyOxqlA1TH7t27kZmZqXQMI7VajevXr2PDhg1KRzHy8/ND165dlY5B/5WQkIA//vhD6RhGly9fhpubm1XNrIeHB0aMGKF0DPqvvLw87NixQ+kYRqmpqWjatCn27t2L5ORkpeMYDR06FN7e3krHoP9iP6icI/YDlYiI0iGqqmfPnjh58qTSMaza7NmzsXDhQqVj0H8tXLgQc+fOVTqGVWvXrh0uXryodAz6r6SkJHTs2FHpGFbv2LFj6NWrl9Ix6L/YDyrngP0gzqbO5ALArFmz8PHHHysdwyr16dNH6QhUhnbt2iExMVHpGFbp008/xbJly5SOQWU4cuQIevbsqXQMq3Px4kX4+voqHYPKwH5QPkftBzZXclUqFZycnJSOQVQtnNmyqVQqpSNQOdRqNee2DGo1P8pirdgP6H/xTysRERER2R2WXCIiIiKyOyy5RERERGR3WHKJiIiIyO6w5BIRERGR3WHJJSIiIiK7w5JLRERERHaHJZeIiIiI7A5LLhERERHZHZZcIiIiIrI7LLlEREREZHdYcomIiIjI7rDkEhEREZHdceiSu2vXLmzevNn466NHj+Lpp5/G22+/jWnTpmHFihU1XruitU6dOoVvv/0WIlKr/OSYzDm369atQ69eveDh4YHu3btj06ZNxp9xbqmmzDmzAJCZmYn/+7//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Iaoc+4H1YcmtptDQ0DIPvCqVympuQk30Z2FhYSguLr5vu4hg5cqVCiQiqlh2dja2b98OnU5Xarter0dMTAy/kIGsEvuB9WHJrYa7d+9i586d9x14gXsHXxYGskarVq0q896IBoMB+/fvx40bNxRIRVS+DRs2lHmcBe59AG3t2rUWTkRUMfYD68SSWw3r168v9ybpIoLDhw/j8uXLlg1FVIG0tDRERkaWO7cajQa//fabhVMRVSwkJKTcm9azMJA1Yj+wTiy51VDZtWAajYZnGMiqrFu3rsKf63Q6rFixwkJpiCp3584dxMTEVFgYjh07hqSkJAsnIyof+4F1YsmtopSUFOzfv7/Cr2jVarUsDGRVQkJCKvyqSxHB6dOnkZiYaMFUROX77bffKv32KmdnZ74DQVaD/cB6seRW0W+//VbhAJc4d+4czp8/b4FERBW7du0aDh8+XKW5/fXXXy2QiKhyJd8WVRGtVovVq1dbKBFRxdgPrJem8ocQAHTp0gVLly4tte2jjz5Ct27d+L3UZJWKiorwww8/lNq2fft27N+/Hx999FGp7S1btrRkNKIy6fV6vPjii3jhhReM2+7cuYP33nsP//znP9G6detSjy8sLISbm5uFUxKVxn5gvVRS0XuZVKFevXph5MiR+OSTT5SOQlQlCxcuxLJly3g9I9mMpKQkdOzYEceOHUOvXr2UjkNUJewHViGOlysQERERkd1hySUiIiIiu8OSS0RERER2hyWXiIiIiOwOSy4RERER2R2WXCIiIiKyOyy5RERERGR3WHKJiIiIyO6w5BIRERGR3WHJJSIiIiK7w5JLRERERHaHJZeIiIiI7A5LLhERERHZHZZcIiIiIrI7LLlEREREZHdYcomIiIjI7rDkEhEREZHdYcklIiIiIrvDkktEREREdocll4iIiIjsDksuEREREdkdllwiIiIisjssuURERERkd1hyiYiIiMjusOQSERERkd1hySUiIiIiu8OSS0RERER2hyWXiIiIiOwOSy4RERER2R2WXCIiIiKyOyy5RERERGR3NEoHsAUGgwFXrlxBYmIiLl68iJycHGRmZuL69evYvXs33n//fdStWxdNmzZFhw4d4Ovri8aNGysdmxxceno6EhIScOHCBdy+fRt5eXmIiopCWloaZs+ejfr166Nu3bpo3749fH190aZNGzg5OSkd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\n", "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fancy_calculation = (ones * ones[::-1, ::-1]).mean()\n", "fancy_calculation.visualize()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Un calcul plus grand\n", "\n", "Les exemples ci-dessus étaient de petits exemples ; les données (32 Mo) sont loin d'être assez volumineuses pour justifier l'utilisation de dask.\n", "\n", "Changeons d’échelle !" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Array Chunk
Bytes 6.40 GB 8.00 MB
Shape (200000, 4000) (1000, 1000)
Count 800 Tasks 800 Chunks
Type float64 numpy.ndarray
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 4000\n", " 200000\n", "\n", "
" ], "text/plain": [ "dask.array" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bigshape = (200000, 4000)\n", "big_ones = da.ones(bigshape, chunks=chunk_shape)\n", "big_ones" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cet ensemble de données est de 6,4 Go, au lieu de 32 Mo ! C'est probablement proche ou supérieur à la quantité de mémoire vive disponible que vous avez dans votre ordinateur. Néanmoins, Dask n'a aucun problème pour travailler dessus.\n", "\n", "N'essayez pas d'appeler la méthode `.visualize()` sur ce tableau !\n", "\n", "Lorsqu'il fait un gros calcul, dask a aussi quelques outils pour nous aider à comprendre ce qui se passe sous le capot. Regardons à nouveau le tableau de bord pendant que nous faisons un gros calcul." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "big_calc = (big_ones * big_ones[::-1, ::-1]).mean()\n", "\n", "result = big_calc.compute()\n", "result" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Réduction \n", "\n", "Toutes les méthodes habituelles numpy fonctionnent sur des tableaux de dask.\n", "Vous pouvez également appliquer la fonction numpy directement à un dask array, et il restera paresseux." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Array Chunk
Bytes 1.60 MB 8.00 kB
Shape (200000,) (1000,)
Count 3400 Tasks 200 Chunks
Type float64 numpy.ndarray
\n", "
\n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 200000\n", " 1\n", "\n", "
" ], "text/plain": [ "dask.array" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "big_ones_reduce = (np.cos(big_ones)**2).mean(axis=1)\n", "big_ones_reduce" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Le tracé déclenche également le calcul, car nous avons besoin des valeurs réelles." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "plt.rcParams['figure.figsize'] = (12,8)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(big_ones_reduce)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# dask.delayed\n", "\n", "`dask.delayed` est un moyen simple et puissant de paralléliser le code existant. Il permet aux utilisateurs de retarder les appels de fonctions dans un graphe de tâches avec des dépendances. `dask.delayed` ne fournit pas d'algorithmes parallèles sophistiqués comme `dask.dataframe`, mais il donne à l'utilisateur un contrôle complet sur ce qu'il veut construire.\n", "\n", "Les systèmes comme `dask.dataframe` sont construits avec des objets `dask.delayed`. Si vous avez un problème qui est parallélisable, mais qui n'est pas aussi simple qu'un grand tableau ou une grande trame de données, alors `dask.delayed` peut être le bon choix.\n", "\n", "## Créer des fonctions simples\n", "\n", "Ces fonctions effectuent des opérations simples comme l'addition de deux nombres, mais elles dorment pendant un temps aléatoire pour simuler un travail réel." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "import time\n", "\n", "\n", "def inc(x):\n", " time.sleep(0.1)\n", " return x + 1\n", "\n", "def dec(x):\n", " time.sleep(0.1)\n", " return x - 1\n", " \n", "def add(x, y):\n", " time.sleep(0.2)\n", " return x + y " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Réalisons un petit algorithme à l’aide des fonctions ci-dessus." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 13.8 ms, sys: 3.23 ms, total: 17 ms\n", "Wall time: 401 ms\n" ] }, { "data": { "text/plain": [ "3" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "x = inc(1)\n", "y = dec(2)\n", "z = add(x, y)\n", "z" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les appels se sont succédés les uns après les autres, dans l'ordre. Notez cependant que les deux premières lignes `inc(1)` et `dec(2)` ne dépendent pas l'une de l'autre, nous *aurions pu* les appeler en parallèle si nous avions été intelligents.\n", "\n", "## Annoter les fonctions avec `dask.delayed` pour les rendre paresseuses\n", "\n", "Nous pouvons appeler `dask.delayed` pour rendr nos fonctions paresseuses. Plutôt que de calculer leurs résultats immédiatement, ils enregistrent ce que nous voulons calculer dans un graphe que nous exécuterons plus tard en parallèle." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "import dask\n", "inc = dask.delayed(inc)\n", "dec = dask.delayed(dec)\n", "add = dask.delayed(add)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "L'appel de ces fonctions paresseuses est désormais presque gratuit. Nous construisons juste un graphe" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 241 µs, sys: 37 µs, total: 278 µs\n", "Wall time: 286 µs\n" ] }, { "data": { "text/plain": [ "Delayed('add-d83e6bf0-6573-4ed3-9db8-a17faadafb19')" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "x = inc(1)\n", "y = dec(2)\n", "z = add(x, y)\n", "z" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Graphe de calcul" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaYAAACYCAYAAACvdk1qAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3df1yN9/8/8EedSnX6SSo/kkilZphfs8oUNqwmqpVRZPKj9/zYbGRsmLFhm2Wa36QaKqHEilRTfoYaRSeJDBHrx+mcSj/O9f3Dp/PVUqpznXOd2vN+u3W76VzXeb0e59xynue6rtf1eqkwDMOAEEIIUQ4JqlwnIIQQQl5GhYkQQohSocJECCFEqahxHaCoqAjFxcUQi8UoKSmBjo4O+Hw+9PX10aNHD/B4PK4jEkIIUSCFFqbHjx8jOTkZf/75JzIzMyEQCFBaWtrk/hoaGujXrx9sbW3h6OgIZ2dn2NraQkVFRYGpCSGEKJKKvEflFRcX49ChQwgLC8PFixehrq6O4cOHY9iwYbC2toaVlRWMjIygo6MDAwMDiMViiEQilJaW4s6dO8jJycGNGzdw9uxZlJaWwszMDNOmTYOPjw9sbW3lGZ0QQojiJcitMN29excbN27Evn37oKamhilTpsDb2xujRo2Cjo5Oq9urq6tDRkYGjh49ivDwcNy/fx9OTk5YsWIFxowZI4dXQAghhAPsF6Z//vkHX331Ffbu3YtevXrhyy+/xPTp09tUjJoikUiQlJSEDRs2IDExEe+88w5+/fVXvPXWW6z1QQghhBPs3se0b98+2NjYIC4uDrt374ZAIMC8efNYLUoAoKqqirFjx+L06dO4ePEieDwehg8fjgULFkAkErHaFyGEEMVi5YhJKBTC398f0dHRWLBgAdasWQM9PT028rUIwzAIDQ3Fl19+ic6dOyMiIgIDBw5UWP+EEEJYI/upPIFAABcXF4hEIoSHh3N6vefRo0f4+OOPcenSJezevRvTpk3jLIsiiUQiVFdXcx1DqXXq1Al8Pp/rGISQ10uQabh4eno6PvjgA1haWiItLQ0mJiZsBWuT7t2748yZMwgMDISPjw8eP36MJUuWcJpJEWbOnIno6GiuYyg1T09PREZGch2DENICbS5MFy5cwHvvvYdRo0YhKioK2trabOZqMx6Ph02bNqF79+5YsmQJxGIxvvnmG65jyd27776LlStXch1DKX377bdcRyCEtEKbCtPNmzfh4uICZ2dnHD58GOrq6mznktlnn30GPp+PefPmwdjYGPPmzeM6klwZGxtj7NixXMdQStu3b+c6AiGkFVpdmIqKijB+/HjY2dnh0KFDSlmU6s2ZMwdPnz7Fp59+il69emHixIlcRyKEEPIarSpMEokEvr6+UFNTQ0xMDLS0tOSVizUrVqxAXl4efH19kZGRATMzM64jEUIIaUar7mPatGkTkpOTERERAUNDQ3llYl1wcDBMTU0xdepUSCQSruMQQghpRosLU35+PtasWYNvv/0Ww4YNk2cm1mlra+PgwYO4fPkyduzYwXUcQgghzWhxYVq0aBEsLCzw+eefyzOP3AwYMACLFy/GihUrUFRUxHUcQgghTWhRYUpJSUFcXByCg4OVerDD63zzzTfQ0tLC+vXruY5CCCGkCS0qTOvWrYOTkxNGjx4t5zjypaOjg6VLl2LXrl101EQIIUrqtYXp6tWrSExMxFdffaWIPHLn7+8PXV1dbNmyhesohBBCXuG1hWnv3r2wtbXtMDdvamtrw9/fHyEhITRCjxBClFCzham6uhqRkZHw9fVVVB6F8PX1xaNHj5CUlMR1FEIIIf/SbGE6c+YM/vnnnw43S3e/fv0wdOhQmtSTEEKUULOFKSkpCXZ2dujZs6dMnRw7dgxmZma4deuWTO2w6f3336cjJkIIUUKvLUzOzs4yd8Ln82FsbAxNTU2Z22KLk5MT7ty5g4KCAq6jEEIIeUmTham6uhrXr1/HO++8I3Mn48aNw9WrV2FhYSFzW2wZOXIkeDwe0tPTuY5CCCHkJU0Wpry8PNTW1qJ///6KzKMwWlpaMDc3h0Ag4DqKVG1tLZ4/f851DEII4VSThSk3NxeqqqqwtLSUqYOSkhLs2bMH48aNw7FjxwAAmZmZ+PLLL9GnTx+UlJRg5syZMDIywvDhw5Gfn9/g+SdPnkRAQAAWLVqEkSNHYteuXTLleZm1tbVSFabHjx+je/fuWLhwIa5du8Z1HEII4USThamwsBCGhoYyr0z7+PFjZGdnIzExEXV1dQAAU1NTZGZm4u7du1i+fDmWLl2KQ4cOQSAQYMWKFdLnhoWFISwsDFu3bkVQUBBcXV0xZ84c1gYt9OzZE4WFhay0xYbq6moUFxfjt99+w5AhQ2BjY4PNmzfTLBWEkP+UJgtTeXk5dHV1Ze6gf//+mDRpUoPHTE1NpTOUr1u3TnoDr6OjI65evQoAePr0KRYsWID169dDVfVFzDlz5mDKlCno1q2bzLkAQFdXF+Xl5ay0xYb603j1BTw3NxdLly5Ft27d4OzsjKioKFRXV3MZkRBC5K7JwiQSiaCjo8NKJ2pqjdcj5PF4jba9XCjS0tIgkUgaDJgwMjJCdHQ0a9e99PT0IBQKUVJSgqqqKlbalMW/iw7DMKitrYVEIkFqaiq8vLzQpUsXzJ07l071EUI6rCZXsFVRUQHDMIrM0kBWVhZqamrAMAxUVFTk0odEIoFQKETnzp0bPK6joyOdRd3AwAAqKipQVVWFvr4+AEBDQwN8Ph/Ai0EU9cPg2/o8XV1dqKmpNXu9q7a2FsCLLwwhISHYuXMn+vXrh08++QTPnz9vF6sJE0JISzRZmLg+zaWnp4eqqircvHkTdnZ2DbZVV1dDQ0ND5j6EQiFMTU0REhICsVgsPWIRCoWoq6sDwzAoLS0F8KIw1L8fVVVVqKysBIAGz3v48CEkEkmD59XU1EAkEjV6nkgkQk1NTZty1/eXl5eHwMBAqKqqonv37khPT293izgSQsi/KW1hqv+AXblyJaKjo6XXmfLy8nDp0iVWpkkqLy9Hly5dOJ+gtqysDBKJBGfPnoWbm1uLnqOuro6amhqYmppCV1cXZmZmGDJkiJyTEkKI/DVZmHr27ImSkhIIhULo6enJ1En9UcLL9+jUHy3Un6Kq36+iogIA8M4772DChAk4duwYnJ2d4eHhgfv37+P27duIioqSKU+9e/fuoXfv3qy0JYv6U32dOnVqdj81NTXU1taiZ8+emDJlCjw9PWFvbw9PT0+oqqpKizchhLRnTX6SWVtbA3gxMkwWFy9exObNmwEAO3bswPnz53HmzBlER0cDeLGq7NOnTxEWFoaUlBQIhUKsWbMGdXV1iI6ORkBAAPLy8vDdd99Jr6+8ajBFWwgEAunrVAb/HvygoqIiPWVpaWmJFStW4MqVK/j7778RFBQEBwcHuV1/I4QQrjT5CW9hYYFOnTohOzsbQ4cObXMHb7/9Nk6cONHo8du3bzf43cfHBz4+Pg0e09LSQnBwMIKDg9vcf1OEQiEePnyoVIWp/iiSx+NBIpFg0KBBmDp1KqZMmYK+fftynI4QQhSjycLE4/EwbNgwpKamYsaMGYrMpBBnz54FAIwYMYLjJP9fbW0tRo0aBQ8PD0yePFnmWd0JIaQ9avacmLOzM8LDwxWVRaGSk5MxYMAAmJiYcB1FysvLC15eXlzHIIQQTjV7tXzs2LHIz89XqnWU2HLy5EmMGTOG6xiEEEL+pdkjJnt7e5iZmSE8PBzr1q1TVCa5S09PR05ODvbv3891FEKUytOnTyEQCFBYWAihUCi9T09PT0/6Y2VlBQsLC+nsLYSwrdnCpKqqimnTpiE8PBzffvtth/lDDAsLg7W1NYYPH851FEI4U1NTg0uXLiE5ORkpKSnIzMxEcXGxdLuuri74fD40NDRQXl4uvd8OeDGLibW1NRwdHeHk5ITRo0fDyMiIq5dCOpjX3vgya9YsPHz4UDq8u70rLi5GSEgIZs+ezXUUQjhx8eJFfPrpp+jWrRscHR2xa9cu9OzZE2vXrsXp06dx//59MAwDoVCIwsJCFBQUoLi4GHV1dSgrK8Ply5exd+9eTJgwAVeuXIG3tzdMTU0xfvx4/P7779J7EQlpKxWmBRPieXl5QSAQICMjo93fN7Nq1Sps3boV9+7dY2X2dGXg4eEBVVVVREZGch1FKdH782JeyCNHjmD9+vXIyMiAra0tfH194e7uLvOaa0KhEAkJCQgLC0N8fDz4fD4WLFiAhQsX0lEUaYuEFk0V8NVXX+H69euszbjAlSdPnmDLli347LPPOkxRIuR14uLiYGdnBy8vL1haWuLy5cvIzs7GsmXLZC5KwIt5LT09PREbG4uHDx9iyZIl2LZtGywsLLBixQo6giKt1qLCNHDgQPj5+WHx4sUoKyuTdya5+fLLL6Grq4vFixdzHYUo2JUrV+Dq6orQ0FDppLodXUFBAdzc3ODq6opBgwbh5s2biIyMlOtEv127dsXKlStx7949rFq1CsHBwbC1tUVMTIzc+iQdT4snV9uwYQOqq6vxzTffyDOP3CQlJSE8PBxBQUGsrTNF2g9jY2M8f/4cs2bNQrdu3TB9+nQcP368wy68ePToUWkxio+Px8GDBxU6ywmfz8cXX3yBnJwcjBo1CpMnT4avry/EYrHCMpD2q0XXmOqFh4fD19cXMTExcHV1lWcuVhUVFWHQoEGwt7dv96cjX4WuoTTv5fenuLgYcXFxiIqKwh9//AFdXV24urrC09MT48ePl66n1V49f/4cixcvxvbt27FgwQJs2rTptZMDK0JcXBxmzpwJU1NTREVFsbbYpzJ78ODBK6djIw35+fn9exmjhFYVJgD45JNPcOzYMVy9elUpZuZ+ndraWkycOBF37tzBtWvXpDN5dyRUmJrX1Pvz8OFDHD58GFFRUTh//jwMDQ3xwQcfwNPTExMnTmx3t0eUl5dj8uTJuHLlCvbu3YspU6ZwHamB+/fvw9vbGzk5OTh+/Djs7e25jiRXCQkJGD9+PAwMDLiOopRqa2shEolQWlr678/lBDCtJBaLmcGDBzNWVlZMUVFRa5+uUBKJhJk1axbD5/OZK1eucB1Hbtzd3RlPT0+uYyitlrw/BQUFzC+//MLY29szAJgePXowCxcuZFJTUxmJRKKgpG1XVFTEDBkyhDE1NWUyMzO5jtOkyspKxs3NjdHS0mJiY2O5jiNX8fHxDACmtLSU6yhKqZn3J77VC/hoa2vj5MmT0iOR+pValdHy5csRFhaGyMhIWkSPNKtXr15YtGgR0tLSkJ2djdmzZyMhIQGOjo7o3bu3dJsyEgqFGD9+PEpKSnDu3DkMHDiQ60hN0tTUxOHDhzFt2jR4eHjgzJkzXEciSqhNK8uZmpoiISEBhYWFePfdd1FYWMh2LpnU1dUhICAAP/74I/bu3YuJEydyHYm0I7a2tli9ejVycnKQlZUFPz8/nDx5Eo6OjrCzs8Pq1ashEAi4jgngxRpenp6eePDgAeLj49GnTx+uI70Wj8fDzp07MXXqVEyePBlXr17lOhJRMm1e8tTS0hLnzp1DdXU17O3t8ddff7GZq83Kysrg4eGBkJAQREdHY/r06VxHIu1YfSG6ffs2srKy4Orqip07d8LGxka6LS8vr01tl5SUyHz7RUBAAC5duoRTp06hX79+MrWlSCoqKti5cyfeeecdfPjhhygqKuI6ElEiMq3FbW5ujrS0NJibm+Ptt9/Gjh072MrVJlevXsWQIUNw6dIlnD59GpMmTeI0D+lY7Ozs8MMPP+DBgwdITU3F2LFjsW3bNvTr1w92dnbYsGFDq84e/P777xgyZAiysrLalCciIgJ79+5FSEiIUp++a4qGhgYOHToETU1NeHt7o66ujutIREnIVJgAoEuXLkhMTMSyZcvwv//9D2PGjEFOTg4b2VqssrISq1evhr29PXr16oWrV692+BE/hDuqqqpwcHBAUFAQHj16hNTUVDg4OGD9+vXo2bOndNvrjgLCwsKQn5+PYcOGISIiolUZ7ty5g9mzZ+Ozzz6Dm5ubLC+HUwYGBoiIiMC5c+fw448/ch2HKAs2R1mkpqYyAwYMYDQ1NZnly5czT58+ZbP5Rmpqapj9+/cz5ubmjL6+PvPrr78ydXV1cu1TGdGovOYp6v2pqqpiYmNjGR8fH0ZHR4fh8XiMvb09s2PHDqasrKzBvvfv32dUVFQYANIff39/prq6ukV9jR8/nhkwYECL91d233//PaOlpcXk5+dzHYU1NCqvec2Nymt22YvWcnBwwLVr1/Drr7/i+++/x5YtWzB37lzMnTsXVlZWrPVTWlqKgwcP4scff8T9+/fh4+OD9evXw9TUlLU+2pvq6uoGSxaQ/6+mpkYhN5l26tQJrq6ucHV1RWVlJRITExEVFYXPPvsMCxcuxLhx4+Dp6YkpU6bg0KFD4PF4qK2tlT5/7969yMrKwpEjR5r9Wz58+DASEhKQnJzc7m8IrvfFF1/gwIEDCAgIwB9//MF1HMI1eVVDkUjE/Pzzz0zPnj0ZAMzbb7/NbN68mblx40ab7gspLCxkfv/9d8bDw4PR1NRktLS0mLlz53aob1ht5e7u3uCbN/00/uHyiLKkpITZu3cv89577zFqamqMjo4O06NHj0ZHTAAYdXV1xtjYmLlw4cIr26qurmYsLCyYGTNmKPZFKEBSUhIDgDlz5gzXUVhBR0zNa+6IqdUzP7SWRCLBmTNnEBYWhri4OJSUlMDY2BhDhw6FjY0NrK2t0aVLF+jr60NPTw9isRgikQhlZWXIzc1Fbm4ubty4gZs3b0JdXR2Ojo6YPn063N3doaenJ8/o7caNGzfw5MkTrmMoNRMTEwwYMIDrGHj69Cm2bduGVatWNbmPmpoaVFRUsGnTJixatKjBtv3798Pf3x8CgQAWFhbyjqtwY8eOBcMwHeL+pvqZH14xswFBs+9PAqun8l5FVVUV48aNw7hx41BXV4fMzEzpapmpqanYvXs3hEJho+epq6ujb9++sLGxgZubG3766Sc4OjqCz+fLO3K7M2DAAKX40CWv17VrVwAv/r5rampeuU/96b3PPvsM6enp2LVrF7S0tCCRSLBhwwZ8/PHHHbIoAcDKlSvh5OSECxcuYOTIkVzHIRyRe2F6GY/Hw5AhQxrNwlBXVwehUIiysjLw+Xzo6upCU1NTkdEIUZjw8PAmi9LLGIZBREQErl+/jtjYWNy5cwe3bt3C4cOHFZCSG6NHj8bw4cOxbds2Kkz/YTIPF2cDj8eDoaEhevfuja5du1JRIh3WjRs3cPv27RbvX1tbi+zsbAwePBgbN27EiBEjYGtrK8eE3JsxYwaOHDnyn1k3izSmFIWJkP+KQ4cOtfo5EokEpaWlOHXqFLp37w45XxbmnJeXF2pqanD06FGuoxCOKPRUHiH/dTNnznzlchQ8Hq/ZwTwpKSmYPXs2AgMDUVtby8kwcZFI9NpFNluyz+t06dIFTk5OOHHiBHx8fGRqi7RPVJgIUaC2zme3bds22NnZYfjw4Swner1du3YhMjISOTk5+Pvvv9u8T2s4Ozvjp59+AsMwUFFRkbk90r7QqTxC2oHk5GQ4OTlx0vesWbNQVVXV4GbgtuzTGmPGjEFRURGys7NZaY+0L1SYCFFytbW1uHHjBkaMGMFJ/zweDz179pR5n9YYNGgQNDU1kZGRwVqbsrh58ybXEf5TqDARouTu3r2L6upq2NjYcB1FYXg8Hvr27as0614NHjwYNjY2+P7773Hv3j2u43R4dI2JECWXk5MDFRUV1tZbevLkCb7++muYmZnh/v37ePbsGXbv3o0uXbpI94mJicGJEydgaGiIioqKVy7n0ZJ9ZGFtba00hYlhGAgEAnzzzTdYsWIFhg4dCl9fX3h6esLExITreB0OFSZClNyjR49gYGDA2hRc3t7eMDExwddffw3gxWmzxYsXIywsDABw4MABbNmyBSkpKdDU1MSzZ89ga2sLHo8nbaMl+8jK3NwcFy5cYK09NtRfQ7ty5QquXbuGhQsXYsSIEfDz84O3tzdNk8YSOpVHiJIrLy+Hrq4ua+2pqKg0WFjwjTfewPXr1wEAFRUV+OKLL7Bo0SLpje5GRkZwdHSU7t+Sfdigq6uL8vJyVttkC8MwqKurA8MwSE9PR0BAALp06YKJEyciNDQUYrGY64jtGh0xEaLkRCIRq4UpKSkJACAWixEeHo709HRIJBIAQGpqKgoLCxvNvaihoSH9d0v2YYOuri5KSkqwc+dOVttti+Zuan555d3Tp08jPj4e8+fPxzvvvNNoO2kZKkyEKLnq6mpWb6itq6vDhg0bcPv2bXz++edIS0vDxYsXAUC6+nRzRaYl+7ChU6dOqKysRGBgoFz7aYmWzrZRf6qvoqICiYmJAICoqCjMnTtXbtk6IipMhCg5Pp/P2qkhiUSCiRMnwtjYWHpN6WX1xaagoKDJxT1bsg8bysvLYWRkhNzcXLn10VIaGhqvPfKpnzG+e/fu8PHxgaWlJfz9/eHt7a2glB0HXWMiRMmxea3l8uXLOHXqFEaPHi19rKamRnpE8OabbwIAIiIiGjxPIpFIP5hbsg8b2L62Jg/1RdrIyAjz589HamoqHjx4gB9++AFmZmYcp2u/qDARouQMDQ1RWloqvQ4ki/rpffbv348bN25g7969yM7OxpMnT3D9+nVYWlrCyckJISEh2LZtGyoqKpCeno60tDQ8ffoUBw8exODBg1+7T0VFhcxZi4uLYWBgIHM7bKtfyFFXVxc+Pj5ITk7GkydPEBQUBAcHB5pCiQVUmAhRcn379kVVVRUePHggc1sjRozAvHnzkJmZiTlz5sDc3BwbN26EpqYm1q5dCx0dHRw7dgwzZszAmjVr0L9/f5w8eRIuLi7w8/ODsbExNDU1W7SPrHJzc2FpaSlzO2zS1NSEu7s7YmJipPd/jR49Gqqq9FHKJrrGRIiSq5/xQSAQoFevXjK3t23bNmzbtq3BY0+fPm3w+549e5ptQ09P77X7yEogEMDV1VWufbSUq6sr3N3dMWnSJFpFWwGoMBGi5Dp37gxjY2PcuHED48aN4zqOQvzzzz8oLCxE//79uY4CAIiOjuY6wn8KHX8S0g44ODjgzz//5DqGwqSkpIDH4+Htt9/mOgrhAB0xEaJAwcHBOHv2rPSivra2Njp16gRVVVXo6+sDeDE8XENDA2pqatJRaSYmJggNDUVKSgocHBygptax/+smJSVhyJAhMDQ05DoK4UDH/usmRMno6+sjMjJSOrKr/udl9aPvXjX8Oi0trcFQ746IYRgkJCTA09OT6yiEI5wUpoKCAuTk5EAgECAvLw9CoRBisRilpaXg8/ng8/nQ1dVFr169YGVlBWtra/Tv37/Df0skHZ+LiwvU1NRataCempoabGxsUFtbi4cPH8oxnXK4cOEC7ty5Ay8vL66jEI4o5JO+rKwMsbGxSExMRHJysnTp5a5du8LKygr6+vrg8/no06cPRCKRdAr906dPo6CgAHV1ddDV1YWjoyOcnJzg5uamdMNIuXT69Gnk5+dzHUOp9e3bF2PHjuU6BgwMDDB69GgkJye3+GZULy8v7Ny5E8HBwfj+++/xyy+/oFOnTnJOyp2wsDDY2tpi0KBBXEchHJFbYWIYBqdPn8a+ffsQExMDhmEwcuRI+Pv7Y/To0XjjjTdadP74+fPnyM3Nxblz55CcnIyNGzdi6dKlGDlyJHx9fTF9+vT//PDNHTt2IDY29j//PjRFLBbDzc1NKQoTALi7uyM5ObnZfdTU1KCuro49e/Zg6tSpAIDp06djxYoVOHjwIGbOnKmApIpXWlqKgwcPYuXKlVxHIVxiWFZXV8dERkYygwYNYlRUVBgHBwdm586dTGlpKSvt19bWMvHx8cy0adMYbW1txsjIiFm7di1TUlLCSvvtkbu7O+Pp6cl1DKWlDO9PXV0dk5qayixbtoyxsLBgVFRUGACv/FFTU2MsLS2ZrKysRu3MnDmTsbS0ZGprazl4FfK3du1aRl9fv0P8f46Pj2cAsPbZ19E08/7Eszpc/MKFCxgyZAi8vb1hZWWFa9euITU1Ff7+/tIRR7Li8Xh4//33ER4ejvv372P+/Pn46aef0KdPH2zfvp2VaVsIYcPz58/xxx9/wN/fH6ampnB0dMTx48fx8ccf480333zl1DUqKirw8vLCX3/9BTs7u0bbly9fjrt37+Lw4cOKeAkKJRKJEBQUhIULFyrlVEREcVgpTEKhEHPmzIGDgwO6du2KrKwsREREyP0ccZcuXfDtt9+ioKAAs2fPxsKFCzFy5EjcuHFDrv0S0pTKykocP34cvr6+MDExwcSJE3H+/HkEBAQgOzsb2dnZ+O677+Dr69tgtVc1NTVoaGhg586dCA8Ph7a29ivbt7KywrRp0xAYGMjKfHTKZM2aNZBIJFi0aBHXUQjHZC5MGRkZGDp0KGJjY3HgwAGcOnVK4Xdr6+npYePGjcjIyICGhgZGjBihFIuLkf+GkpISREVFwdfXF8bGxnBzc0N+fj6WL1+O3NxcZGdnY/Xq1bC1tZU+Z8qUKdKReWpqarCwsEBmZiZmz5792v42btyI0tJSrFu3Tm6vSdGys7MRFBSE9evXo0uXLlzHIRyTqTDt27cPI0eOhJmZGTIzMzkf3mlnZ4eUlBQsWbIE8+fPh4+PD6qrqznNRDqmZ8+eITQ0FK6urjA1NcXUqVORn5+P7777Dg8ePEBaWhqWLVuGfv36vfL5vXv3lq4AO3XqVGRkZLT4C52JiQnWrl2LH3/8EdeuXWPtNXGlpqYG/v7+GDRoEPz9/bmOQ5RAm0fl/fDDD/jqq68QGBiItWvXNjgtwSUej4e1a9fCwcEBH330ET744AMcOXJE6dd1IcqvoKAAx44dQ1xcHFJSUqCuro4xY8Zg165dmDRpUquvo86cOROGhobw8/NrdZaAgADExsbio48+wtWrV1m7hsuFFStW4Pr167h8+TLN0k0AtLEwBQYGYtOmTdiyZQs+/fRTtjOx4v3330dKSgomTJgAZ2dnJCYmtuv/vIQb+fn5OH78OKKionD+/Hno6+tj3AslIwYAABBqSURBVLhx2LNnD6ZMmQIdHZ02t/3555+3+bmqqqoICwvDoEGDMHv2bERGRrbLdYBiY2Px448/Yt++fQ1OdZL/tlZ/Pdm4cSM2bdqE/fv3K21Rqjd48GCcO3cOjx49wqRJk1BVVcV1JNIOvHxNqG/fvvjuu+/Qp08fxMTE4MmTJ4iMjISvr69MRYkNJiYmOHjwIGJjY7FkyRJOs7TFxYsXMXXqVPj7+2PGjBlcxyFKpFVHTKGhoQgMDERQUBCmT58ur0ys6tu3L+Lj4zFq1ChMmzYNhw8fbpffLIn8SCQSnD9/HnFxcYiOjkZeXh7Mzc0xadIkbNmyBaNHj1ba6bBGjx6N0NBQfPzxx+jatSuWL1/OdaQWuXnzJlxcXDBmzBgEBwdzHYcomRb/b7t+/TrmzZuHpUuXYsGCBfLMxLoBAwYgJiYGY8eOxaZNm7B06VKuIxGO1dXV4cKFC4iKikJkZCQeP36MPn36wMXFBZ6enrC3t283X2C8vLzw7NkzLFiwAGKxGGvXrlXq7JcuXYKLiwtsbW0RERGhtEWfcKdFfxFisRje3t4YNmxYux2iOmrUKKxfvx7Lly+Hvb097O3tuY5EFKyyshKJiYmIiopCbGwsysrKYGtri7lz5+Kjjz5q19c4/ve//0FbWxtz5szBkydP8Ntvv0FdXZ3rWI3ExcXB29sbTk5OiIiIgJaWFteR5C4kJISVpeY7mps3bza5rUWFadmyZXj27BkSExOVZvRdWyxZsgR//vknZsyYgaysLPpj+Q/JyMhAly5dUF1dDQcHB6xZswaTJ09mZalyZeHn5wcjIyNMnToVWVlZOHToEMzNzbmOBQCora3FqlWr8MMPP8DPzw/bt2/v8EdK6urqMDAwwOrVq7mOorQMDAxefXT/uvmMrly5wvB4PCY0NFQ+EyYpWGFhIaOvr8+sWrWK6yisUYa54JSZu7s7M2zYMGbnzp1MUVER13Hk7tatW8yAAQOYzp07MwcOHOA6DiMQCBhHR0dGS0uL2b17N9dxiPJrfq48hmEQEBAAe3v7djPY4XVMTU3xzTffYMOGDbRUxH9I79694e/vj65du3IdRe5sbGxw6dIleHt7Y/r06RgzZgxycnIUnqOyshJff/013nzzTZSXl+Py5cv45JNPFJ6DtD/NFqa4uDikp6cjKChIqS+mttbChQthZmaG9evXcx2FELnQ0tJCcHAw0tPTIRaLYWdnh48++gi3bt2Se99isRhBQUHo168fNm/ejDVr1iA9PR1vvPGG3PsmHUOzhWnDhg1wcXHpcAt2qampITAwEKGhoSgoKOA6DiFy89Zbb+HcuXPYt28fsrKy8MYbb8DNzQ1Hjx5lfbqu69ev48svv0Tv3r2xcuVKTJ06FXfu3MGyZcs6/PUkwq4mC1NaWhrOnTuHr776SpF5FMbHxwfdu3dHUFAQ11EIkSsejwdfX1/prP9isRgeHh7o1q0bZs6cidDQUDx48KDV7VZUVOD06dNYvnw5Bg4ciIEDB+LIkSNYsGAB7t27h02bNsHExEQOr4h0dE1+jQkJCcFbb72Ft99+W5F5FEZdXR2zZ8/Gr7/+ig0bNijl0FpC2KSqqgoPDw94eHjg4cOHOHDgAE6ePIm5c+eiqqoK3bt3h7W1NaytrWFmZgYdHR3o6OigU6dOEIlEKC0tRXFxMXJzc5GTk4P8/HxUV1fDxsZGeqNse7r/iygvFYZhmH8/WFlZie7du2PVqlVYvHgxF7kUoqCgABYWFjh+/Dg++OADruO0mYeHB1RVVREZGcl1FKVE70/zKisrceHCBWRkZCA3NxcCgQAPHz6ESCSCSCTC8+fPoaOjA0NDQxgYGMDS0hLW1taws7ODo6MjunfvzvVLIB1LwiuPmOLj41FeXo6PP/5Y0YEUytzcHPb29oiMjGzXhYkQWWhpacHZ2RnOzs5cRyEEQBPXmM6cOYO33noLxsbGcutYJBLJre3WGD9+PBITE7mOAQBISUnBiBEjsG7dOmRmZnIdhxBCOPHKwpSUlCS3b0+7du3CuHHjFL7KbVOcnZ3x6NEjCAQCrqOAz+fj8uXLWLVqFQYPHgwTExPMnz8fJ06cQGVlJdfxCCFEIRoVppKSEuTk5MDR0VEuHc6aNQtVVVXSZaW5NmzYMPD5fJw7d47rKODz+QBeTDAKAEVFRdizZw9cXFxgYGAAZ2dnBAUF4e+//+YyJiGEyFWjwpSTkwOGYeR2MxyPx0PPnj3l0nZbqKmpwcrKipM74//tVev71NTUAACqq6tx9uxZLFmyBL169YKVlRUCAwORlpaGV4xfIYSQdqtRYRIIBNDS0oKZmRkXeThhbW2tFKfyJBJJs9vr6uqkR1O3b9/Gzz//DEdHR8TFxeHKlStISEhQRExCCJGrRqPy8vPz0adPH6iqtnpx2ybFxMTgxIkTMDQ0REVFBQoLCxtsZxgGO3bswF9//YVr165BX18fwcHB6Nevn3SfkydPIi4uDurq6rh8+TJmzZoFf39/VvL169cPR44cadVzKisrUVVVhcrKSpSUlDT49+t+f9U2oVAoLTqtpaGhAQMDgw57zxkh5L+lUWEqKyuDgYEBax0cOHAAW7ZsQUpKCjQ1NfHs2TPY2to2WD5jw4YN6NatG7Zt24a6ujo4ODhg1KhRuHPnDrS1tREWFoaTJ0/i999/h6qqKtavX485c+agb9++rAzSMDAwwJMnTxAYGAixWIyKigqUl5dDKBRKfy8tLYVYLIZYLH7tiEIDAwNoa2tDW1sb+vr60NXVhba2Nvh8Prp16yb9t56eXoNthoaGmDBhwmuvv9XfDPzhhx9i3rx52L59O1RVVaGvry/ze0EIIVxrVJhEIhF0dXVZabyiogJffPEFfvrpJ+naR0ZGRnB0dMT58+cBAI8ePcIvv/yCR48eAXhxDcrDwwNffPEFjh8/DmdnZyxYsAAZGRnSo7g5c+bg6tWr6NatGys5dXV1UV5ejsTEROjo6EBbWxs6OjowMzMDn8+XFpiXt/27+Ojo6IDP50sHMLSVtrY2hEJho8fV1NRQW1sLc3NzzJ8/H5988gmMjIwAANu3b5epT0IIUSaNClNFRQVrq0qmpqaisLAQAwYMaPC4hoaG9N/nz59HTU0N5s6d22Cf2bNnQ0tLC2lpaZBIJLCwsJBuMzIyQnR0NCsZgRej4erq6nDlyhXW2myrfxem+skvP/zwQ8yfPx9jxoyhKV8IIR1ao8Kkqan5ym/sbVE/0u3lQvRvt27dAp/Px65du165fe3ataipqQHDMHL7QK6srFSaJZ51dHSgoqIChmHQs2dPfPrpp/Dz85Przc6EEKJMGo1w0NHRYW1WhvqC1NzSEtra2njw4MErZzd+9uwZ9PT0UFVV9cr14dmatr+8vJy105eyMjY2hqurK+Lj41FQUIBly5ZRUSKE/Kc0Kky6urooKytjpfE333wTABAREdHgcYlEIh2BNmDAADAMg2XLljXYp6ioCPv27cOwYcMAACtXrmwwnDovLw9RUVGs5BQKhdDT02OlLVmdOnUKMTExeP/991kdGUkIIe1Fo1N5vXr1wr1791hp3N7eHk5OTggJCcGQIUMwY8YMZGdnIy0tDU+fPsXBgwfx4YcfYtiwYThw4ACqqqrg5uaGvLw8nD9/HgcPHoSRkREmTJiAY8eOwdnZGR4eHrh//z5u377NWmHKz8+Hubk5K23JStbBE4QQ0t41+kpuY2ODsrIyPH78mJUOjh07hhkzZmDNmjXo378/Tp48CRcXF+l1Ey0tLcTHx2PatGlIS0vDkiVLcO/ePezfv1866iw6OhoBAQHIy8vDd999B5FIhJCQENZWxRQIBLC2tmalLUIIIbJp9Mle/wF969YtmJqaytyBnp4e9uzZ0+w+nTt3Rnh4eJPbtbS0EBwcjODgYJnz/BvDMBAIBJg+fTrrbRNCCGm9RkdM3bp1g7m5OdLS0rjIo3BZWVkoKSmhWRMIIURJvPLq+ujRo5GcnKzoLJxISkqCgYEBBg0axHUUQgghaKIwOTs748KFC0qzmJ88JSYmwsnJqcEUSYQQQrjzysLk4uIChmFaPbFpe1NcXIxTp05hypQpXEchhBDyf15ZmDp37oyJEyciLCxM0XkU6uDBg1BXV4ebmxvXUQghhPyfJu/g9PX1RVJSEvLy8hSZR2EYhsHu3bvh7u7+ygX6CCGEcKPJwuTq6gpLS0ts2LBBkXkU5sSJE8jMzMTChQu5jkIIIeQlTRYmHo+HpUuXIjQ0FH///bciMynEunXr4OrqiiFDhnAdhRBCyEuanYzNx8cHPXr0QGBgoKLyKERkZCQuX76Mr7/+musohBBC/qXZwqShoYHffvsNBw4cQFJSkqIyyVV5eTk+//xz+Pn5SSeIJYQQojxeO331+PHjMWnSJAQEBEAsFisik1ytWLECVVVV+OGHH7iOQggh5BVaNAtqcHAwBg0ahICAAOzfv1/emeTm6NGj2Lp1Kw4cOCCdILajyM/Px44dO7iOoZTu3r2Lvn37ch2DENJCLSpMPXr0wP79++Hi4gJHR0fMnj1b3rlYd+fOHcyaNQv+/v7w9vbmOg6rdHR0cOfOnQ53LZBNAwcO5DoCIaSFVBiGYVq688qVK7Fx40bExMRgwoQJ8szFqqKiItjb20NfXx+pqalKs4w6IYSQRhJaVZgYhoGfnx8OHz6MxMTEdjEjt1AohLOzM8rKypCWlgYTExOuIxFCCGlaQqvW7lZRUcHu3bvh5OSE9957D2fOnJFXMFY8efIETk5OKCwsREJCAhUlQghpB1pVmABATU0N0dHRcHV1xQcffICIiAh55JLZ7du3YW9vj/LycqSlpaFPnz5cRyKEENICrS5MwIv7m8LCwhAQEICpU6di8eLFqK6uZjtbm0VFRWHo0KHo3Lkz0tLSYGFhwXUkQgghLdSmwgQAqqqq+Pnnn3HgwAHs3bsXDg4OuHHjBpvZWq2srAzz5s3DRx99BB8fH5w9exbGxsacZiKEENI6bS5M9by9vXH16lXweDy89dZbWLJkCcrLy9nI1mIMwyAsLAzW1tY4evQooqKisHXrVmhqaio0ByGEENnJXJgAoF+/fjh//jz27NmDsLAwWFhYYPXq1SgpKWGj+SZJJBIcP34cw4cPx8yZM/Hee+8hOzsbHh4ecu2XEEKI/LRquHhLFBcXY/Pmzdi6dSsYhoGPjw+mT5+OESNGsNbHw4cPpacQc3Nz4e7ujpUrV+LNN99krQ9CCCGcaN19TK1RVlaGHTt2ICQkBLdu3YKVlRUmTJgAZ2dnvPvuu9DX129xW7W1tUhPT0dSUhISExNx9uxZGBgYwMvLCwsXLoSNjY08XgIhhBDFk19hetmVK1cQERGBxMREXL9+HQzDoFevXrCysoKVlRX09fWhp6cHfX19iEQiiMVilJeX4+7duxAIBMjLy8Pz58/Ro0cPODs7Y/LkyZg4cSI6deok7+iEEEIUSzGF6WXPnj3D+fPncevWLeTm5iI3Nxfl5eUoLy9HaWkpdHR0pD/m5uawsrKCjY0Nhg0bBmtra0VGJYQQoniKL0yEEEJIM1o3JREhhBAib1SYCCGEKBUqTIQQQpTK/wPoza02GnE1CwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z.visualize(rankdir='LR')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Calcul en parallèle\n", "\n", "Appelez `.compute()` quand vous voulez que votre résultat soit un objet Python normal\n", "\n", "Si vous avez démarré `Client()` ci-dessus, vous pouvez regarder la progression du calcul dans le tableau de bord." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 20.5 ms, sys: 5.54 ms, total: 26 ms\n", "Wall time: 421 ms\n" ] }, { "data": { "text/plain": [ "3" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "z.compute()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Soumettre des appels de fonction au cluster\n", "\n", "Nous pouvons soumettre des appels de fonction individuels avec la méthode `client.submit` ou de nombreux appels de fonction avec la méthode `client.map`" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Future: inc status: pending, key: inc-8993bacc55179215f7eadc7dcff25597" ], "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def inc(x):\n", " return x + 1\n", "\n", "x = client.submit(inc, 10)\n", "x" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[,\n", " ,\n", " ,\n", " ,\n", " ]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L = client.map(inc, range(1000))\n", "L[:5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ces résultats vivent sur les workers distribués.\n", "\n", "Nous pouvons soumettre des `futures` aux fonctions. La fonction ira sur le worker où les futures sont stockées et s'exécutera sur le résultat une fois qu'il sera disponible." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "y = client.submit(inc, x)\n", "total = client.submit(sum, L)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous recueillons les résultats en utilisant soit la méthode `Future.result` pour un seul objet `Future`, soit la méthode `client.gather` pour plusieurs objets `Future` à la fois." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "11" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x.result()" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3, 4, 5]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "client.gather(L)[:5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Il est préférable de minimiser le nombre de rapatriements des résultats vers le processus local. Pour cela, les données sur le cluster seront, de préférence, exploitées à distance avec des fonctions telles que `submit`, `map`, `get` et `compute`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dask Schedulers\n", "\n", "Les ordonnanceurs orchestrent les tâches dans les graphes de calcul afin qu'elles puissent être exécutées en parallèle. La manière dont elles sont exécutées en parallèle dépend de l’ordonnenceur que vous choisissez.\n", "\n", "Il y a 3 ordonnanceurs locaux :\n", "\n", "- **Single thread Local:** Pour le débogage, le profilage et diagnostiquer des problèmes\n", "- **Multi-thread:** Utilisation du paquet `threading` (par défaut pour toutes les opérations de Dask sauf `Bags`)\n", "- **Multi-process:** Utilisation du paquet `multiprocessing` (par défaut pour `Bags`)\n", "\n", "et 1 ordonnanceur distribué:\n", "\n", "- **Distributed:** Utilisation du module `dask.distributed` (qui utilise `tornado` pour les communications TCP). L'ordonnanceur distribué utilise un `Cluster` pour gérer la communication entre l'ordonnanceur et les \"workers\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dask Distributed (http://distributed.dask.org/)\n", "\n", "Dask peut être déployé sur une infrastructure distribuée, comme un système HPC ou un système de cloud computing.\n", "\n", "- `LocalCluster` - Crée un `Cluster`\" qui peut être exécuté localement. Chaque `Cluster`\" comprend un `Scheduler` et des `Worker`s. \n", "- `Client` - Se connecte à un `Cluster`\" distribué et pilote le calcul.\n", "\n", "### Dask Jobqueue (http://jobqueue.dask.org/)\n", "\n", "- `PBSCluster`\n", "- `SlurmCluster`\n", "- `LSFCluster`\n", "- etc.\n", "\n", "### Dask Kubernetes (http://kubernetes.dask.org/)\n", "\n", "- `KubeCluster`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Pangeo 2020-12", "language": "python", "name": "pangeo_202012" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.6" } }, "nbformat": 4, "nbformat_minor": 4 }