{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 2019 Dask User Survey Results\n", "\n", "This notebook presents the results of the 2019 Dask User Survey,\n", "which ran earlier this summer. Thanks to everyone who took the time to fill out the survey!\n", "These results help us better understand the Dask community and will guide future development efforts.\n", "\n", "The raw data, as well as the start of an analysis, can be found in this binder:\n", "\n", "[![2019 Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/dask/dask-examples/main?urlpath=%2Ftree%2Fsurveys%2F2019.ipynb)\n", "\n", "Let us know if you find anything in the data.\n", "\n", "## Highlights\n", "\n", "We had 259 responses to the survey. Overall, we found that the survey respondents really care about improved documentation, and ease of use (including ease of deployment), and scaling. While Dask brings together many different communities (big arrays versus big dataframes, traditional HPC users versus cloud-native resource managers), there was general agreement in what is most important for Dask.\n", "\n", "Now we'll go through some individual items questions, highlighting particularly interesting results." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:21.854085Z", "iopub.status.busy": "2022-07-27T19:24:21.853705Z", "iopub.status.idle": "2022-07-27T19:24:23.361115Z", "shell.execute_reply": "2022-07-27T19:24:23.360331Z" } }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "import textwrap\n", "import re\n", "\n", "api_choices = ['Array', 'Bag', 'DataFrame', 'Delayed', 'Futures', 'ML', 'Xarray']\n", "cluster_manager_choices = [\n", " \"SSH\",\n", " \"Kubernetes\",\n", " \"HPC\",\n", " \"My workplace has a custom solution for this\",\n", " \"Hadoop / Yarn / EMR\",\n", "]\n", "\n", "def shorten(label):\n", " return textwrap.shorten(label, 50)\n", "\n", "\n", "def fmt_percent(ax):\n", " ticklabels = ['{:,.2f}%'.format(x) for x in ax.get_xticks()]\n", " ax.set_xticklabels(ticklabels)\n", " sns.despine()\n", " return ax\n", "\n", "\n", "df = (\n", " pd.read_csv(\"data/2019-user-survey-results.csv.gz\", parse_dates=['Timestamp'])\n", " .replace({\"How often do you use Dask?\": \"I use Dask all the time, even when I sleep\"}, \"Every day\")\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## How do you use Dask?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For learning resources, almost every respondent uses the documentation." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:23.365483Z", "iopub.status.busy": "2022-07-27T19:24:23.364878Z", "iopub.status.idle": "2022-07-27T19:24:23.511119Z", "shell.execute_reply": "2022-07-27T19:24:23.510630Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_10046/4183606021.py:24: UserWarning: FixedFormatter should only be used together with FixedLocator\n", " ax.set_xticklabels(ticklabels)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = (\n", " df['What Dask resources have you used for support in the last six months?']\n", " .str.split(\";\").explode()\n", " .value_counts().head(6)\n", " .div(len(df)).mul(100).plot.barh()\n", ");\n", "fmt_percent(ax).set(title=\"Support Resource Usage\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Most respondents use Dask at least occasionally. Fortunately we had a decent number of respondents who are just looking into Dask, yet still spent the time to take the survey." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:23.515177Z", "iopub.status.busy": "2022-07-27T19:24:23.514164Z", "iopub.status.idle": "2022-07-27T19:24:23.612322Z", "shell.execute_reply": "2022-07-27T19:24:23.611849Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_10046/4183606021.py:24: UserWarning: FixedFormatter should only be used together with FixedLocator\n", " ax.set_xticklabels(ticklabels)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "usage_order = [\n", " 'Every day',\n", " 'Occasionally',\n", " 'Just looking for now',\n", "]\n", "ax = df['How often do you use Dask?'].value_counts().loc[usage_order].div(len(df)).mul(100).plot.barh()\n", "fmt_percent(ax).set(title=\"How often do you use Dask?\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I'm curiuos about how learning resource usage changes as users become more experienced. We might expect those just looking into Dask to start with `examples.dask.org`, where they can try out Dask without installing anything." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:23.616328Z", "iopub.status.busy": "2022-07-27T19:24:23.615329Z", "iopub.status.idle": "2022-07-27T19:24:23.812032Z", "shell.execute_reply": "2022-07-27T19:24:23.811453Z" } }, "outputs": [ { "data": { "image/png": "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efbZZznllFO45557GDp0KC1abDVNv1DNmjVj4cKFHH/88dx0003UrFmTDRs2cOyxxzJnzhwOPfRQxowZw8KFCwkhsGLFis32v/LKK1m5ciUjRowodL7ZihUrmDhxIuvWraNTp048/fTTHHDAAYwePZpf//rXPPjgg9xyyy28//777LXXXpn2r7vuOpo2bcpTTz3FK6+8wjnnnMOsWbOKfS2LFi1ixIgR/OlPf+KFF17gqaee4o033qBKlSp88cUXAFx44YUMGzaMBg0a8MYbb3DxxRfzyiuvMGTIEF588UUOOeSQrV7jJtvyXvTq1Yu1a9fy3nvvUb9+fUaPHs1pp53GunXrGDhwYKH9sEm1atXo3Lkzzz33HCeccAL/+Mc/OPnkk6lYsSLnnHMOf/zjH+nUqRPXXnst119//WZTVrbHF198Ueh7fOmll3L55ZfTvn17li5dSvfu3VmwYAHXX3897du359prr+W5557LhKaCrr32Wl555ZXM9+Ltt98OwNy5c1m4cCHdunVj8eLFAEydOpU5c+ZQs2bNzdr45z//Se3atXnuuecAWLlyZYmvZc6cObz++ut8/fXXNG3alJ49ewIwbdo05s+fT506dejRowdPPvkkbdu25aqrrmLGjBnUqFGDbt268dRTT3HCCSfw9ddf06RJE4YMGQLAgw8+yPjx46lVq1axx//66685+uijuemmm7jyyiu57777+M1v/jd+VbduXfr370/VqlUz/2l44IEHWLZsGVOmTGHhwoX07t2bU045hZdeeol33nmHadOmEWOkd+/eTJo0qcj/bG2qs2bNmnz77be0bNmSk08+mSVLlvDRRx/x9tupD3ZXrFjBfvvtV+zvisJ+JgsaPnw47dq1o169etx+++28/vrrhdbz5Zdf8sorrzB27Fh69erFq6++yv3330/Lli2ZNWsWBx54YLHvQWF92bt3b37yk59wyimnZI6zfv16pk2bxvPPP8/111/Pyy+/zLBhw7j00ks588wzWbt2LRs2/C/6vPjii/zzn/9k6tSpxb6f2dgZI7PrtzhOZYAY43qgFfAEqXmy/9wJtbwGdAkhFPXfgO8KPN5AKuzvqDNGCv63+etittvWGqYC/YBFpEZjO5AK0q9uVUCMw2OMLWKMLSpWzf76bdLuatPo7KYw26ZNm8zztm3bZrZr1aoVhx56KOXK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iRMnsnz5cjZs2MDf//73TH9uKdufq2xk21b37t158MEHWb06daXRjz76iE8//bTI7VeuXEmNGjWoUqUKCxcuzHz0v3z5cjZu3MjJJ5/MDTfckOnHouoo6meyoGnTpvHCCy8wc+ZMhg4dWuTPYUm25T3YJNv+2zTF55JLLqF3796Zefc1atTITHvZEUpzzmxj4F2AGOOVwJWFbNNqywUxxlcp4tJcMcbBBR7PAo4uZJuilncu8LjgDO666X+XA00KbDO0wDbz0idyEUK4Gij0+hMxxqoFHi8hdcLWltv0LWzf9LqRwMgCz39S4PHfSM2J3XKfdykwDSHG2G3LbSQVLicnh+XLl3PGGWdstmz16tUlzsvbb7/9uOCCC8jJyaFu3bqZP9iQOumif//+7L333kydOjXz0domgwYN4oYbbuCbb77h6KOPZvz48VSqVIm8vDyaNm1K48aNqV+/fmZ0eNWqVRx//PGsWbOGGCN33nnnZu2deuqprFq1it69e/P8889vdbxNKlWqxOOPP84ll1zCypUrWb9+PZdddhlHHHEEZ511FitXriTGyOWXX85+++3H4MGD6devH7m5uVSpUoWHHnoIgJNPPpm//vWv5Ofn07JlS4444ohCj9ejRw9mzZpFixYtqFSpEscddxy/+93vGDVqFBdddBE33ngj69at46c//Sl5eXkMGjSId955hxgjxx57LHl5ecW+B9m8F5AanR00aFDmj31R/dC4ceOt2j7zzDP5zW9+w+mnn55Z9tBDD9G/f3+++eYb6tevn5mKcMUVV3Daaafx8MMPc8wxW/36B+CHP/whp512Grm5uTRo0CBzkmFR7/Hdd9/NL37xC3Jzc1m/fj0dO3Zk2LBhXHfddZx++uk0a9aMTp06cdhhh5XYTxdffDH9+/cnJyeHChUqMHLkyM1G6gozd+5cBg0aRLly5ahYsSJ//vOfgdR86p/97Gf87ne/o3Xr1pvt06pVK3r27MnSpUv57W9/S+3atVm8eDFt2rTh6quvZu7cuZmTwcqVK8fNN99Mly5diDFy3HHHcfzxxxday4UXXsiPf/xjDj744KyvzlCUXr16ccopp/D000/zxz/+scjtunXrxoIFCzL/ua1atSqPPPIIBx54YKHb9+jRg2HDhpGbm8uRRx6ZmXLz0Ucf0a9fv8xo9s033wwU/btiw4YNhf5MbvLdd99xwQUXMGLECGrXrs3tt9/OeeedxyuvvLLNI/YHH3xw1u/BJj/96U+54IILuPvuu4u9pNno0aN55JFHqFixIj/4wQ8y89pXrlzJ/fffv9mnTN9HKG54ebsbDaE/qZHJy2KMW392kzAhhD6kRkYrkJo20XfTyVhJVfWwqjFvUHZ/KLTzvDpwq6nO2kEWLFhAo0aNyroMJczjjz/O008/zcMPP1zWpSTC4MGDNzuxapMJEyYwdOhQnn0263O9tQcr4vd1kSm9VEZmY4zDgO9/4bBdRPpSW6PLug5J0s4zcOBAXnjhBZ5//vmyLkVSMUplZFa7Pkdmd02OzJYeR2YlKRm2dWR2V7ydrSRJkpQVw6wkSZISyzArSZKkxDLMSpIkKbEMs5KkxCpfvjz5+fk0btyYvLw87rjjjs3usLUrmzVrVlZXSthyu7Fjx3LLLbeUZmlSopTmTRMkSXuQ5oP+ukPbm3HbOSVus/fee2fuivXpp59yxhlnsHLlSq6//vodWktpmDVrFtOnT+e4447bpu169+5N7969d0aJUiI4MitJ2i0ceOCBDB8+nHvuuYcYI2vWrKFfv37k5OTQtGnTzF2jNmzYwBVXXEFOTg65ubmZO0DVrVuX5cuXAzB9+nQ6d+4MpG4EcO6559KtWzfq1q3Lk08+yZVXXklOTg49evRg3bp1AMyYMYNOnTrRvHlzunfvzrJlywDo3LkzV111Fa1ateKII45g8uTJrF27lmuvvZbRo0eTn5/P6NGjmTZtGm3btqVp06a0bduWRYsWFbrdyJEjGTBgAAD/+c9/OPbYY8nNzeXYY49l6dKlQOrOUpdccglt27alfv36xd6lSUo6R2b3UId8GfjdY8l4+ztNmljWJUhKiPr167Nx40Y+/fRTHnnkESB1S9aFCxfSrVs3Fi9ezIgRI3j//feZOXMmFSpU4Isvviix3XfffZfx48czf/582rRpwxNPPMGtt97KiSeeyHPPPUfPnj0ZOHAgTz/9NAcccACjR4/m17/+NQ8++CAA69evZ9q0aTz//PNcf/31vPzyywwZMoTp06dzzz33APDVV18xadIkKlSowMsvv8yvfvUrnnjiia22GzlyZKauAQMGcM4553Duuefy4IMPcskll/DUU08BsGzZMqZMmcLChQvp3bs3p5xyyg7saWnXkYw0I0lSljbdDGjKlCkMHDgQgIYNG1KnTh0WL17Myy+/TP/+/alQIfUnsGbNmiW2+eMf/5iKFSuSk5PDhg0bMveUz8nJYcmSJSxatIi3336brl27AqnR34MPPjiz/0knnQRA8+bNWbJkSaHHWLlyJeeeey7vvPMOIYTMiG9xpk6dypNPPgnA2WefzZVXXplZd8IJJ1CuXDmOOuooPvnkkxLbkpLKMCtJ2m289957lC9fngMPPJCi7nAZYySErW8mVKFChczJY2vWrNls3V577QVAuXLlqFixYmb/cuXKsX79emKMNG7cmKlTpxZ6zE37ly9fnvXr1xe6zW9/+1u6dOnCmDFjWLJkSWaaw7Yo+Lo2HRMosi+k3YFzZiVJu4XPPvuM/v37M2DAAEIIdOzYkVGjRgGwePFili5dypFHHkm3bt0YNmxYJlRummZQt25dZsyYAcATTzyxTcc+8sgj+eyzzzJhdt26dcybN6/YfapVq8aqVasyz1euXMkhhxwCbD6VYMvtCmrbti3/+Mc/ABg1ahTt27ffprql3YFhVpKUWN9++23m0lw/+tGP6NatG9dddx0AF198MRs2bCAnJ4c+ffowcuRI9tprL84//3wOO+wwcnNzycvL429/+xsA1113HZdeeikdOnSgfPny21RHpUqVePzxx7nqqqvIy8sjPz+f1157rdh9unTpwvz58zMndl155ZVcc801tGvXjg0bNhS5XUF33303I0aMIDc3l4cffpi77rprm+qWdgfBjx72TEdWqxaHN21W1mVkxRPAtCMsWLCARo0alXUZkqQSFPH7euu5QWmOzEqSJCmxDLOSJElKLMOsJEmSEsswK0mSpMQyzEqSJCmxDLOSJElKLMOsJCmRPv/8c/Lz88nPz+cHP/gBhxxySOb52rVrN9t2yZIlmevJbouPP/6YU045pdhtlixZQpMmTba5bUk7hrezlSTtEEuH5OzQ9g67dm6x6/fff39mzZoFwODBg6latSpXXHFFodtuCrNnnHFG1sdfv349tWvX5vHHH896H0k7nyOzkqTdRt++fTcLn1WrVgXg6quvZvLkyeTn53PnnXeyZs0a+vXrR05ODk2bNmX8+PFA6jayp556Kr169aJbt26bjbouWbKEDh060KxZM5o1a1biHb4k7RyOzEqSdnu33HILQ4cO5dlnnwXg9ttvB2Du3LksXLiQbt26sXjxYgCmTp3KnDlzqFmzJkuWLMm0ceCBB/Kvf/2LypUr884773D66aczffr0nf5aJG3OMCtJ2uNMmTKFgQMHAtCwYUPq1KmTCbNdu3alZs2aW+2zbt06BgwYwKxZsyhfvnxme0llyzArSdptVKhQgY0bNwIQY9zqRLBNYoxFtrHPPvsUuvzOO+/koIMOYvbs2WzcuJHKlSt//4IlfW/OmZUk7Tbq1q3LjBkzAHj66adZt24dANWqVWPVqlWZ7Tp27MioUaMAWLx4MUuXLuXII48stu2VK1dy8MEHU65cOR5++GE2bNhQSq9C0rYwzEqSdhsXXHABEydOpFWrVrzxxhuZUdbc3FwqVKhAXl4ed955JxdffDEbNmwgJyeHPn36MHLkSPbaa69i27744ot56KGHOProo1m8eHGRI7iSdq5Q3Ect2n0dWa1aHN60WVmXkZVOkyaWdQnaDSxYsIBGjRqVdRmSpBIU8fs6FLW9I7OSJElKLMOsJEmSEsswK0mSpMQyzEqSJCmxDLOSJElKLMOsJEmSEsswK0lKrPLly5Ofn5/5uuWWW8qkjrp167J8+fJSaXvChAm89tprpdL2jjJ48GCGDh26S7Q5cuRIBgwYsENr0a7N29lKknaIdn9st0Pbe3XgqyVus/feezNr1qwdetxdzYQJE6hatSpt27Yt61L2KOvXr6dCBWNSEvgu7aG+3ecHzG15RVmXkZW5v3zme7cx4PZeO6ASSUmwcuVKWrVqxdixYznyyCM5/fTTOeaYY7jgggu46KKLePPNN/n222855ZRTuP7664HUyOoZZ5zB+PHjWbduHcOHD+eaa67h3//+N4MGDaJ///5MmDCBa6+9lv33359FixbRsWNH/vSnP1Gu3OYfcj7yyCPcfffdrF27ltatW/OnP/0JgJ/97GdMnz6dEALnnXcel19++Wb7PfPMM9x4442sXbuW/fffn1GjRvHtt98ybNgwypcvzyOPPMIf//hHOnTokNnn66+/ZuDAgcydO5f169czePBgjj/+eC655BJq1arFtddey4svvshNN93EhAkTeO6557Y6xkEHHcTgwYN5//33WbZsGYsXL+aOO+7g9ddf54UXXuCQQw7hmWeeoWLFitStW5c+ffowfvx4AP72t7/x//7f/9vsdbz77rv84he/4LPPPqNKlSrcd999NGzYkMcee4zrr7+e8uXLU716dSZNmrTVe3fTTTfx17/+lR/+8IcccMABNG/eHID77ruP4cOHs3btWv7f//t/PPzww1SpUqXENje93meeeYZatWpllq9Zs4aLLrqI6dOnU6FCBe644w66dOnCyJEjee6551izZg1ff/01zz77LH379mXhwoU0atSIJUuWcO+999KiRYtt+p5U6TLMSpIS69tvvyU/Pz/z/JprrqFPnz7cc8899O3bl0svvZQvv/ySCy64AEiFpZo1a7JhwwaOPfZY5syZQ25uLgA//OEPmTp1Kpdffjl9+/bl1VdfZc2aNTRu3Jj+/fsDMG3aNObPn0+dOnXo0aMHTz75JKecckrm+AsWLGD06NG8+uqrVKxYkYsvvphRo0bRuHFjPvroI95++20AVqxYsdVrad++Pa+//johBO6//35uvfVWbr/9dvr370/VqlW54oqtByBuuukmjjnmGB588EFWrFhBq1at+NGPfsQtt9xCy5Yt6dChA5dccgnPP/885cqVK/IYkAqh48ePZ/78+bRp04YnnniCW2+9lRNPPJHnnnuOE044AYB9992XadOm8de//pXLLruMZ599drOaLrzwQoYNG0aDBg144403uPjii3nllVcYMmQIL774Ioccckihr3/GjBn84x//YObMmaxfv55mzZplwuxJJ52UeQ9/85vf8MADDzBw4MBi2xwzZgx33HEHzz//PDVq1Nhs3b333gvA3LlzWbhwId26dWPx4sUATJ06lTlz5lCzZk2GDh1KjRo1mDNnDm+//fZm32vadRhmJUmJVdQ0g65du/LYY4/xi1/8gtmzZ2eWP/roowwfPpz169ezbNky5s+fnwmzvXv3BiAnJ4fVq1dTrVo1qlWrRuXKlTNBqVWrVtSvXx+A008/nSlTpmwWZseNG8eMGTNo2bIlkArbBx54IL169eK9995j4MCB9OzZk27dum1V84cffkifPn1YtmwZa9eupV69eiW+/pdeeomxY8dm5pauWbOGpUuX0qhRI+677z46duzInXfeyeGHH17iMX784x9TsWJFcnJy2LBhAz169Mj0x5IlSzLbnX766Zl/txxdXr16Na+99hqnnnpqZtl3330HQLt27ejbty+nnXYaJ5100lavZfLkyZx44olUqVIF+N/7AfD222/zm9/8hhUrVrB69Wq6d+9ebJvjx49n+vTpvPTSS+y7775bHWvKlCkMHDgQgIYNG1KnTp1MmO3atSs1a9bMbHfppZcC0KRJk8z3inYtngAmSdrtbNy4kQULFrD33nvzxRdfAPD+++8zdOhQxo0bx5w5c+jZsydr1qzJ7LPXXnsBUK5cuczjTc/Xr18PQAib3x5+y+cxRs4991xmzZrFrFmzWLRoEYMHD6ZGjRrMnj2bzp07c++993L++edvVfPAgQMZMGAAc+fO5S9/+ctmtRUlxsgTTzyROd6mIAupUcf999+fjz/+OKtjFHz9FStWzLy2gq9/y9e85evfuHEj++23X6aeWbNmsWDBAgCGDRvGjTfeyAcffEB+fj6ff/75Vq9ny/Y26du3L/fccw9z587luuuuy9RdVJv169dn1apVmYBaWL8VZZ999slqO+06DLOSpN3OnXfeSaNGjfj73//Oeeedx7p16/jqq6/YZ599qF69Op988gkvvPDCNrc7bdo03n//fTZu3Mjo0aNp3779ZuuPPfZYHn/8cT799FMAvvjiC/7zn/+wfPlyNm7cyMknn8wNN9zAW2+9tVXbK1eu5JBDDgHgoYceyiyvVq0aq1atKrSe7t2788c//jETumbOnAnAf/7zH26//XZmzpzJCy+8wBtvvFHsMbbF6NGjM/+2adNms3X77rsv9erV47HHHgNSYXDTyPi7775L69atGTJkCLVq1eKDDz7YbN+OHTsyZswYvv32W1atWsUzz/zvfIlVq1Zx8MEHs27dOkaNGpVZXlSbderU4cknn+Scc85h3rx5W72Gjh07ZtpZvHgxS5cu5cgjj9xqu/bt2/Poo48CMH/+fObOnbttnaWdwjArSUqsTXNmN31dffXVLF68mPvvv5/bb7+dDh060LFjR2688Uby8vJo2rQpjRs35rzzzqNdu22/+kKbNm24+uqradKkCfXq1ePEE0/cbP1RRx3FjTfeSLdu3cjNzaVr164sW7aMjz76iM6dO5Ofn0/fvn25+eabt2p78ODBnHrqqXTo0GGzk5V69erFmDFjyM/PZ/LkyZvt89vf/pZ169aRm5tLkyZN+O1vf0uMkZ/97GcMHTqU2rVr88ADD3D++eezZs2aIo+xLb777jtat27NXXfdxZ133rnV+lGjRvHAAw+Ql5dH48aNefrppwEYNGgQOTk5NGnShI4dO5KXl8fHH3/McccdB0CzZs3o06cP+fn5nHzyyZud6HbDDTfQunVrunbtSsOGDTPLC2tzkyOPPJJRo0Zx6qmn8u677zJ27FiuvfZaAC6++GI2bNhATk4Offr0YeTIkZuNxm9y8cUX89lnn5Gbm8vvf/97cnNzqV69+nb1m0pPcAh9z3TYDxrEK8+8o6zL2Gm8moEWLFiQ+fhV2h4TJkxg6NChW53wtCepW7cu06dP3+4gnDQbNmxg3bp1VK5cmXfffZdjjz2WxYsXU6lSpbIubbdWxO/rwueg4AlgkiRJhfrmm2/o0qUL69atI8bIn//8Z4PsLsgwK0lSFjp37kznzp3LuowyVfCqBnuCatWqMX369LIuQyVwzqwkSZISyzArSZKkxDLMSpIkKbEMs5IkSUosw6wkKbFuuukmGjduTG5uLvn5+ZmbA/zhD3/gm2++2a42R44cyYABA0rc7qmnniI3N5eGDRuSk5PDU089tV3HK8xnn31G69atadq0KZMnT6Zu3bosX758h7W/yYsvvsjgwYP58ssvM9d7hVQfHHDAATRt2pQGDRrQvXt3Xnvtte06Rjb9OWHChO1uX/JqBpKkHWJix047tL1OkyYWu37q1Kk8++yzvPXWW+y1114sX76ctWvXAqkwe9ZZZ1GlSpUdWtMms2fP5oorruBf//oX9erV4/3336dr167Ur1+f3Nzc79X2+vXrGTduHA0bNtzuu3Rla/LkyXTp0oVJkyZtdROJPn36cM899wAwfvx4TjrpJMaPH18q12ueMGECVatWpW3btju8be3+HJmVJCXSsmXLqFWrVubOTbVq1aJ27drcfffdfPzxx3Tp0oUuXboAcNFFF9GiRQsaN27Mddddl2njzTffpG3btuTl5dGqVautbhv73HPP0aZNm61GRYcOHcqvfvUr6tWrB0C9evW45ppruO2221iwYAGtWrXKbLtkyZJMwJ0xYwadOnWiefPmdO/enWXLlgGpy3796le/olOnTtx1111ceeWVPP/88+Tn5/Ptt99uduw77riDJk2a0KRJE/7whz8AcOutt3L33XcDcPnll3PMMccAMG7cOM4666yt+m706NHk5+dz9913c9lll3HBBRcwYsQIevfuXWhfd+nShQsvvJDhw4cDcN9999GyZUvy8vI4+eSTM6Pgjz32GE2aNCEvL4+OHTtu1U5h/blkyRKGDRvGnXfembnL2TPPPJMZ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "resources = df['What Dask resources have you used for support in the last six months?'].str.split(\";\").explode()\n", "top = resources.value_counts().head(6).index\n", "resources = resources[resources.isin(top)]\n", "\n", "m = (\n", " pd.merge(df[['How often do you use Dask?']], resources, left_index=True, right_index=True)\n", " .replace(re.compile(\"GitHub.*\"), \"GitHub\")\n", ")\n", "\n", "fig, ax = plt.subplots(figsize=(10, 10))\n", "\n", "sns.countplot(hue=\"What Dask resources have you used for support in the last six months?\",\n", " y='How often do you use Dask?',\n", " order=usage_order,\n", " data=m, ax=ax)\n", "sns.despine()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Overall, documentation is still the leader across user user groups.\n", "\n", "The usage of the [Dask tutorial](https://github.com/dask/dask-tutorial) and the [dask examples](https://examples.dask.org) are relatively consistent across groups. The primary difference between regular and new users is that regular users are more likely to engage on GitHub.\n", "\n", "From StackOverflow questions and GitHub issues, we have a vague idea about which parts of the library are used.\n", "The survey shows that (for our respondents at least) DataFrame and Delayed are the most commonly used APIs." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:23.815618Z", "iopub.status.busy": "2022-07-27T19:24:23.815102Z", "iopub.status.idle": "2022-07-27T19:24:23.938925Z", "shell.execute_reply": "2022-07-27T19:24:23.938450Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_10046/4183606021.py:24: UserWarning: FixedFormatter should only be used together with FixedLocator\n", " ax.set_xticklabels(ticklabels)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "api_counts = (\n", " df['Dask APIs'].str.split(\";\").explode().value_counts()\n", " .div(len(df)).mul(100)\n", ")\n", "ax = api_counts.sort_values().nlargest(8).plot.barh()\n", "fmt_percent(ax).set(xlabel=\"Percent\")\n", "sns.despine();" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:23.942412Z", "iopub.status.busy": "2022-07-27T19:24:23.941861Z", "iopub.status.idle": "2022-07-27T19:24:23.948216Z", "shell.execute_reply": "2022-07-27T19:24:23.947767Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "About 65.49% of our respondests are using Dask on a Cluster.\n" ] } ], "source": [ "print(\"About {:0.2%} of our respondests are using Dask on a Cluster.\".format(df['Local machine or Cluster?'].str.contains(\"Cluster\").mean()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But the majority of respondents *also* use Dask on their laptop.\n", "This highlights the importance of Dask scaling down, either for\n", "prototyping with a `LocalCluster`, or for out-of-core analysis\n", "using `LocalCluster` or one of the single-machine schedulers." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:23.952081Z", "iopub.status.busy": "2022-07-27T19:24:23.950867Z", "iopub.status.idle": "2022-07-27T19:24:24.066509Z", "shell.execute_reply": "2022-07-27T19:24:24.066008Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "order = [\n", " 'Personal laptop',\n", " 'Large workstation',\n", " 'Cluster of 2-10 machines',\n", " 'Cluster with 10-100 machines',\n", " 'Cluster with 100+ machines'\n", "]\n", "df['Local machine or Cluster?'].str.split(\";\").explode().value_counts().loc[order].plot.barh();\n", "sns.despine()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Most respondents use Dask interactively, at least some of the time." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:24.069782Z", "iopub.status.busy": "2022-07-27T19:24:24.069382Z", "iopub.status.idle": "2022-07-27T19:24:24.158285Z", "shell.execute_reply": "2022-07-27T19:24:24.157717Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_10046/4183606021.py:24: UserWarning: FixedFormatter should only be used together with FixedLocator\n", " ax.set_xticklabels(ticklabels)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mapper = {\n", " \"Interactive: I use Dask with Jupyter or IPython when playing with data;Batch: I submit scripts that run in the future\": \"Both\",\n", " \"Interactive: I use Dask with Jupyter or IPython when playing with data\": \"Interactive\",\n", " \"Batch: I submit scripts that run in the future\": \"Batch\",\n", " \n", "}\n", "\n", "ax = df[\"Interactive or Batch?\"].map(mapper).value_counts().div(len(df)).mul(100).plot.barh()\n", "sns.despine()\n", "fmt_percent(ax)\n", "ax.set(title='Interactive or Batch?');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Most repondents thought that more documentation and examples would be the most valuable improvements to the project. This is especially pronounced among new users. But even among those using Dask everyday more people thought that \"More examples\" is more valuable than \"New features\" or \"Performance improvements\"." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:24.162244Z", "iopub.status.busy": "2022-07-27T19:24:24.161251Z", "iopub.status.idle": "2022-07-27T19:24:24.233652Z", "shell.execute_reply": "2022-07-27T19:24:24.233064Z" } }, "outputs": [ { "data": { "text/html": [ "\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Normalized by row. Darker means that a higher proporiton of users with that usage frequency prefer that priority.
Which would help you most right now?Bug fixesMore documentationMore examples in my fieldNew featuresPerformance improvements
How often do you use Dask?     
Every day911252223
Just looking for now131895
Occasionally1427521815
\n" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "help_by_use = (\n", " df.groupby(\"How often do you use Dask?\")['Which would help you most right now?']\n", " .value_counts()\n", " .unstack()\n", ")\n", "\n", "s = (\n", " help_by_use\n", " .style\n", " .background_gradient(axis=\"rows\")\n", " .set_caption(\"Normalized by row. Darker means that a higher proporiton of \"\n", " \"users with that usage frequency prefer that priority.\")\n", ")\n", "s" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Perhaps users of certain dask APIs feel differenlty from the group as a whole? We perform a similar analysis grouped by API use, rather than frequency of use." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:24.236999Z", "iopub.status.busy": "2022-07-27T19:24:24.236493Z", "iopub.status.idle": "2022-07-27T19:24:24.259866Z", "shell.execute_reply": "2022-07-27T19:24:24.258698Z" } }, "outputs": [ { "data": { "text/html": [ "\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", " \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", " \n", " \n", " \n", " \n", " \n", "
Normalized by row. Darker means that a higher proporiton of users of that API prefer that priority.
Which would help you most right now?Bug fixesMore documentationMore examples in my fieldNew featuresPerformance improvements
Dask APIs     
Array1024621525
Bag31116107
DataFrame1632713926
Delayed1622552627
Futures129252017
ML51123117
Xarray8113479
\n" ], "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "help_by_api = (\n", " pd.merge(\n", " df['Dask APIs'].str.split(';').explode(),\n", " df['Which would help you most right now?'],\n", " left_index=True, right_index=True)\n", " .groupby('Which would help you most right now?')['Dask APIs'].value_counts()\n", " .unstack(fill_value=0).T\n", " .loc[['Array', 'Bag', 'DataFrame', 'Delayed', 'Futures', 'ML', 'Xarray']]\n", " \n", ")\n", "(\n", " help_by_api\n", " .style\n", " .background_gradient(axis=\"columns\")\n", " .set_caption(\"Normalized by row. Darker means that a higher proporiton of \"\n", " \"users of that API prefer that priority.\")\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nothing really stands out. The \"futures\" users (who we expect to be relatively advanced) may prioritize features and performance over documentation. But everyone agrees that more examples are the highest priority." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Common Feature Requests\n", "\n", "For specific features, we made a list of things that we (as developers) thought might be important." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:24.262869Z", "iopub.status.busy": "2022-07-27T19:24:24.262449Z", "iopub.status.idle": "2022-07-27T19:24:25.516640Z", "shell.execute_reply": "2022-07-27T19:24:25.515885Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "common = (df[df.columns[df.columns.str.startswith(\"What common feature\")]]\n", " .rename(columns=lambda x: x.lstrip(\"What common feature requests do you care about most?[\").rstrip(r\"]\")))\n", "\n", "counts = (\n", " common.apply(pd.value_counts)\n", " .T.stack().reset_index()\n", " .rename(columns={'level_0': 'Question', 'level_1': \"Importance\", 0: \"count\"})\n", ")\n", "\n", "order = [\"Not relevant for me\", \"Somewhat useful\", 'Critical to me']\n", "g = (\n", " sns.FacetGrid(counts, col=\"Question\", col_wrap=2, aspect=1.5, sharex=False, height=3)\n", " .map(sns.barplot, \"Importance\", \"count\", order=order)\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The clearest standout is how many people thought \"Better NumPy/Pandas support\" was \"most critical\". In hindsight, it'd be good to have a followup fill-in field to undertand what each respondent meant by that. The parsimonious interpretion is \"cover more of the NumPy / pandas API\".\n", "\n", "\"Ease of deployment\" had a high proportion of \"critical to me\". Again in hindsight, I notice a bit of ambiguity. Does this mean people want Dask to be easier to deploy? Or does this mean that Dask, which they currently find easy to deploy, is critically important? Regardless, we can prioritize simplicity in deployment.\n", "\n", "Relatively few respondents care about things like \"Managing many users\", though we expect that this would be relatively popular among system administartors, who are a smaller population.\n", "\n", "And of course, we have people pushing Dask to its limits for whom \"Improving scaling\" is critically important." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What other systems do you use?\n", "\n", "A relatively high proportion of respondents use Python 3 (97% compared to 84% in the most recent [Python Developers Survey](https://www.jetbrains.com/research/python-developers-survey-2018/))." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:25.520483Z", "iopub.status.busy": "2022-07-27T19:24:25.519950Z", "iopub.status.idle": "2022-07-27T19:24:25.529482Z", "shell.execute_reply": "2022-07-27T19:24:25.528932Z" } }, "outputs": [ { "data": { "text/plain": [ "3 97.29%\n", "2 2.71%\n", "Name: Python 2 or 3?, dtype: object" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Python 2 or 3?'].dropna().astype(int).value_counts(normalize=True).apply(\"{:0.2%}\".format)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We were a bit surprised to see that SSH is the most popular \"cluster resource manager\"." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:25.532425Z", "iopub.status.busy": "2022-07-27T19:24:25.532086Z", "iopub.status.idle": "2022-07-27T19:24:25.541349Z", "shell.execute_reply": "2022-07-27T19:24:25.540811Z" } }, "outputs": [ { "data": { "text/plain": [ "SSH 98\n", "Kubernetes 73\n", "HPC resource manager (SLURM, PBS, SGE, LSF or similar) 61\n", "My workplace has a custom solution for this 23\n", "I don't know, someone else does this for me 16\n", "Hadoop / Yarn / EMR 14\n", "Name: If you use a cluster, how do you launch Dask? , dtype: int64" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['If you use a cluster, how do you launch Dask? '].dropna().str.split(\";\").explode().value_counts().head(6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How does cluster-resource manager compare with API usage?" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:25.544250Z", "iopub.status.busy": "2022-07-27T19:24:25.543917Z", "iopub.status.idle": "2022-07-27T19:24:25.569112Z", "shell.execute_reply": "2022-07-27T19:24:25.568592Z" } }, "outputs": [ { "data": { "text/html": [ "\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", " \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", " \n", " \n", "
Dask APIsArrayBagDataFrameDelayedFuturesMLXarray
If you use a cluster, how do you launch Dask?        
Custom15618171467
HPC50134040221130
Hadoop / Yarn / EMR76128473
Kubernetes40185647372621
SSH61237258323025
\n" ], "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "managers = (\n", " df['If you use a cluster, how do you launch Dask? '].str.split(\";\").explode().dropna()\n", " .replace(re.compile(\"HPC.*\"), \"HPC\")\n", " .loc[lambda x: x.isin(cluster_manager_choices)]\n", ")\n", "\n", "apis = (\n", " df['Dask APIs'].str.split(\";\").explode().dropna()\n", " .loc[lambda x: x.isin(api_choices)]\n", ")\n", "wm = pd.merge(apis, managers, left_index=True, right_index=True).replace(\"My workplace has a custom solution for this\", \"Custom\")\n", "\n", "x = wm.groupby(\"Dask APIs\")[\"If you use a cluster, how do you launch Dask? \"].value_counts().unstack().T\n", "x.style.background_gradient(axis=\"columns\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "HPC users are relatively heavy users of `dask.array` and xarray." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Somewhat surprisingly, Dask's heaviest users find dask stable enough. Perhaps they've pushed past the bugs and found workarounds (percentages are normalized by row)." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2022-07-27T19:24:25.572013Z", "iopub.status.busy": "2022-07-27T19:24:25.571709Z", "iopub.status.idle": "2022-07-27T19:24:25.698737Z", "shell.execute_reply": "2022-07-27T19:24:25.698170Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAFzCAYAAAAdR1JWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAApAUlEQVR4nO3de5zWZZ3/8ddHDo4HNFRsDSrQ1FAYQaHQBFEq3bbEMk+hHDzlroesdH+6ilqbpUubm1q6HiIjzBMSZulqqKFlKchwVMMMESNFS0MIA7x+f3y/jPfAzDDizNwX8no+HvOY+76+p889871n3vf1PVyRUkKSJClnW1S7AEmSpA0xsEiSpOwZWCRJUvYMLJIkKXsGFkmSlD0DiyRJyl7HahfwThx22GHp3nvvrXYZkiSp9URjjZt0D8vLL79c7RIkSVI72KQDiyRJ2jwYWCRJUvYMLJIkKXub9Em3kqSNs2rVKhYvXszKlSurXYo2UzU1NfTo0YNOnTq1aH4DiyRthhYvXkyXLl3o2bMnEY1elCG1mZQSr7zyCosXL6ZXr14tWsZDQpK0GVq5ciU77rijYUVVERHsuOOOb6uHz8AiSZspw4qq6e3ufwYWSRIA2267bYvnHTp0KHvuuSe1tbV8+MMf5owzzuDVV1/dqO0OHTqU6dOnv+3lfvrTnzJ//vwNzjd69GjuuOOO9dofeughPv3pT7/t7VZLS34/b7zxBh//+Mfp168ft956aztU1bTJkyfX7x+nnHIKKaV3tD4DiyRpo0ycOJHZs2cze/ZsttxyS4YPH96u229pYNmczJw5k1WrVlFXV8cxxxzTomXWrFnTJrXsuOOO/PrXv2b+/PnMnz+fX//61+9ofQYWSVIDS5YsYciQIfTr148+ffrw8MMPNzt/586d+a//+i8WLVrErFmzADjiiCPYb7/92HvvvbnuuuuA4h/j6NGj6dOnD3379uWKK65osJ4333yTUaNGceGFF663jfPOO4+99tqL2tpazjnnHH7zm99w1113ce6559KvXz/+8Ic/cP311zNw4ED22WcfjjzySFasWFG//C9/+UsGDx7MHnvswd13373e+pcvX86JJ57IwIED6d+/P1OmTGn0tY4bN46BAwdSW1vLxRdfDMDChQvp3bs3p5xyCnvvvTef/OQn+fvf/w5AXV0dgwYNora2ls9+9rP89a9/BRr2Kr388sv07NkTgBUrVnD00UdTW1vLMcccw0c/+tEGvU8XXHAB++yzD4MGDeLFF19sUNtLL73E8ccfT11dXf3PZOrUqfTv35++ffty4okn8sYbbwDQs2dPvv71r3PggQdy++23169j2bJl9OrVi1WrVgHwt7/9jZ49e9aHoLfzWoYMGUKXLl2ICFauXElNTU2jP9OWMrBIkhq4+eabOfTQQ6mrq2PWrFn069dvg8t06NCBffbZh6eeegqAH/zgB8yYMYPp06dz5ZVX8sorr1BXV8cLL7zA3LlzmTNnDmPGjKlffvXq1YwYMYI99tiDb3zjGw3W/Ze//IXJkyczb948Zs+ezYUXXsgBBxzA4Ycfzrhx46irq2O33Xbjc5/7HI8//jizZs2id+/e3HjjjfXrWLhwIb/61a/4+c9/zmmnnbbeyZ6XXnophxxyCI8//jgPPvgg5557LsuXL28wz3333ceCBQt47LHHqKurY8aMGUybNg2ABQsWcPrppzNv3jze8573MGnSJABGjhzJ5ZdfzuzZs+nbty9f+9rXmv05fv/736dr167Mnj2bsWPHMmPGjPppy5cvZ9CgQcyaNYshQ4Zw/fXXN1h255135oYbbmDw4MHU1dXRvXt3Ro8eza233sqcOXNYvXo111xzTf38NTU1PPLIIxx77LH1bV26dGHo0KH8/Oc/B+CWW27hyCOPpFOnTm/7tax10UUXseuuuzJgwIAWzd8UA4skqYGBAwcyfvx4LrnkEubMmUOXLl1atFzlOQpXXnllfU/A888/z4IFC9h111159tlnOfPMM7n33nvZbrvt6uf/4he/SJ8+fbjgggvWW+92221HTU0NJ598MnfeeSdbb711o9ufO3cugwcPpm/fvkycOJF58+bVTzv66KPZYost2H333dl1113rg9Va9913H5dddhn9+vVj6NChrFy5kkWLFq03z3333Uf//v3Zd999eeqpp1iwYAEAvXr1qg92++23HwsXLuS1117j1Vdf5aCDDgJg1KhR9QGnKZUBok+fPtTW1tZP69y5c/05N2u30Zynn36aXr16scceezS6/aYOGZ188smMHz8egPHjxzNmzJiNei0As2bNYvLkyUyYMGGD826IgUWS1MCQIUOYNm0a3bt354QTTuBHP/rRBpdZs2YNc+bMoXfv3jz00EP88pe/5NFHH2XWrFn079+flStX0rVrV2bNmsXQoUP53ve+x8knn1y//AEHHMCDDz7Y6GWuHTt25LHHHuPII4/kpz/9KYcddlijNYwePZqrr76aOXPmcPHFFzdY17pXpKz7PKXEpEmTqKuro66ujkWLFtG7d+/15jn//PPr53nmmWc46aSTANhyyy3r5+vQoQOrV69u9ufVsWNH3nzzTYAGdTZ3YmqnTp3q627JNjZ0kus222zTaPvHPvax+h6pNWvW0KdPn2bX09RrAZgzZw4HHXTQOz4cBN44TsrWfudu+J/E5mLGuJHVLmGz8txzz9G9e3dOOeUUli9fzhNPPMHIkU3/DlatWsUFF1zA+9//fmpra5kyZQpdu3Zl66235qmnnuK3v/0tUJzf0LlzZ4488kh22203Ro8eXb+Ok046iWnTpnHUUUcxefJkOnZ869/T66+/zooVK/jUpz7FoEGD+NCHPgQUhy+WLVtWP9+yZcvYZZddWLVqFRMnTqR79+71026//XZGjRrFH//4R5599ln23HPP+roADj30UK666iquuuoqIoKZM2fSv3//Bq/z0EMPZezYsYwYMYJtt92WF154odm7tG6//fZ07dqVhx9+mMGDBzNhwoT6HoqePXsyY8YMPvKRjzS4gunAAw/ktttu4+CDD2b+/PnMmTOnyfVvyIc//GEWLlzIM888w4c+9KEG29+QkSNHctxxxzF27NiNfi1QhJ+99tpro19DJQOLJKmBhx56iHHjxtGpUye23XbbJntYRowYwZZbbll/Ke3aE1UPO+wwrr32Wmpra9lzzz0ZNGgQAC+88AJjxoyp/zT+rW99q8H6vvKVr/Daa69xwgknMHHiRLbYojgIsGzZMoYPH87KlStJKdWfrHvsscdyyimncOWVV3LHHXfwn//5n3z0ox/lgx/8IH379m0QZvbcc08OOuggXnzxRa699tr1PvGPHTuWs88+m9raWlJK9OzZc72Tcz/5yU/y5JNPsv/++wPFZcY//vGP6dChQ5M/y5tuuonTTjuNFStWsOuuu9YfajnnnHM4+uijmTBhAoccckj9/P/2b//GqFGjqK2tpX///tTW1rL99ts3uf7m1NTUMH78eI466ihWr17NwIEDOe2001q07IgRI7jwwgs57rjjNvq1QNHDMn/+fPbdd9+Neg2V4p1eF11NAwYMSBtz7b60KbCH5S32sLS+J598cr1DHqq+NWvWsGrVKmpqavjDH/7AsGHD+P3vf0/nzp3btY477riDKVOmtMq5J81pYj9s9I5y9rBIkpSJFStWcPDBB7Nq1SpSSlxzzTXtHlbOPPNM7rnnHn7xi1+063Y3xMAiSVImunTpslF3/W1NV111VVW33xSvEpIkSdkzsEiSpOwZWCRJUvYMLJIkKXsGFkmSWklKiQMPPJB77rmnvu22225r8u68ajmvEpIkvau19j2NmrsvUERw7bXXctRRR3HwwQezZs0aLrjgAu69995WrWFzZGCRJKkV9enTh8985jNcfvnlLF++nOOPP55LL720fsTkSy65hOHDhzNv3jzGjBnDP/7xD958800mTZrE7rvvXu3ys9Vmh4Qi4gcR8VJEzK1o2yEi7o+IBeX3rhXTzo+IZyLi6Yg4tK3qkiSprV188cXcfPPN3HPPPaxcuZJDDjmExx9/nAcffJBzzz2X5cuXc+211/KlL32Juro6pk+fTo8ePapddtba8hyWHwLrHrQ7D5iaUtodmFo+JyL2Ao4F9i6X+X5END04gyRJGdtmm2045phjOOGEE7j//vu57LLL6NevH0OHDmXlypUsWrSI/fffn29+85tcfvnlPPfcc2y11VbVLjtrbRZYUkrTgL+s0zwcuKl8fBNwREX7LSmlN1JKfwSeAT7SVrVJktTWtthiC7bYYgtSSkyaNIm6ujrq6upYtGgRvXv35gtf+AJ33XUXW221FYceeigPPPBAtUvOWntfJfTelNISgPL7zmV7d+D5ivkWl23riYhTI2J6RExfunRpmxYrSdI7deihh3LVVVexdrDhmTNnAvDss8+y6667ctZZZ3H44Ycze/bsapaZvVwua25sZMZGh5FOKV2XUhqQUhrQrVu3Ni5LkqR3ZuzYsaxatYra2lr69OnD2LFjAbj11lvp06cP/fr146mnnmLkSEclb057XyX0YkTsklJaEhG7AC+V7YuB91fM1wP4UzvXJkl6F2ruMuS2dMkll9Q//t///d/1pp9//vmcf/757VjRpq29e1juAkaVj0cBUyraj42ILSOiF7A78Fg71yZJkjLVZj0sEfETYCiwU0QsBi4GLgNui4iTgEXAUQAppXkRcRswH1gNnJ5SWtNWtUmSpE1LmwWWlNJxTUwa1sT8lwKXtlU9kiRp05XLSbeSJElN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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(9, 6))\n", "sns.countplot(x=\"How often do you use Dask?\", hue=\"Is Dask stable enough for you?\", data=df, ax=ax,\n", " order=reversed(usage_order));\n", "sns.despine()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Takeaways\n", "\n", "1. We should prioritize improving and expanding our documentation and examples. This may be\n", " accomplished by Dask maintainers seeking examples from the community. Many of the examples\n", " on https://examples.dask.org were developed by domain specialist who use Dask.\n", "2. Improved scaling to larger problems is important, but we shouldn't\n", " sacrifice the single-machine usecase to get there.\n", "3. Both interactive and batch workflows are important.\n", "4. Dask's various sub-communities are more similar than they are different.\n", "\n", "Thanks again to all the respondents. We look forward to repeating this process to identify trends over time." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "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.9.12" } }, "nbformat": 4, "nbformat_minor": 4 }