<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://blog.dask.org</id>
  <title>Dask Working Notes - Posts tagged release</title>
  <updated>2026-03-05T15:05:27.457485+00:00</updated>
  <link href="https://blog.dask.org"/>
  <link href="https://blog.dask.org/blog/tag/release/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.io/" version="0.11.12">ABlog</generator>
  <entry>
    <id>https://blog.dask.org/2019/08/02/dask-2.2/</id>
    <title>Dask Release 2.2.0</title>
    <updated>2019-08-02T00:00:00+00:00</updated>
    <content type="html">&lt;p&gt;I’m pleased to announce the release of Dask version 2.2.
This is a significant release with bug fixes and new features.
The last blogged release was 2.0 on 2019-06-22.
This blogpost outlines notable changes since the last post.&lt;/p&gt;
&lt;p&gt;You can conda install Dask:&lt;/p&gt;
&lt;div class="highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;conda install dask
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;or pip install from PyPI:&lt;/p&gt;
&lt;div class="highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip install dask[complete] --upgrade
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Full changelogs are available here:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask/blob/master/docs/source/changelog.rst"&gt;dask/dask&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/distributed/blob/master/docs/source/changelog.rst"&gt;dask/distributed&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/08/02/dask-2.2.md&lt;/span&gt;, line 26)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;section id="notable-changes"&gt;

&lt;p&gt;As always there are too many changes to list here,
instead we’ll highlight a few that readers may find interesting,
or that break old behavior.
In particular we discuss the following:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;Parquet rewrite&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nicer HTML output for Clients and Logs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hyper-parameter selection with Hyperband in Dask-ML&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Move bytes I/O handling out of Dask to FSSpec&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;async/await everywhere, and cleaner setup for developers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A new SSH deployment solution&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/08/02/dask-2.2.md&lt;/span&gt;, line 40)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="parquet-rewrite"&gt;
&lt;h1&gt;1 - Parquet Rewrite&lt;/h1&gt;
&lt;p&gt;Today Dask DataFrame can read and write Parquet data using either
&lt;a class="reference external" href="https://fastparquet.readthedocs.io"&gt;fastparquet&lt;/a&gt; or
&lt;a class="reference external" href="https://arrow.apache.org/"&gt;Apache Arrow&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;dask.dataframe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;dd&lt;/span&gt;

&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_parquet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/path/to/mydata.parquet&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;arrow&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# or&lt;/span&gt;
&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_parquet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/path/to/mydata.parquet&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;fastparquet&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Supporting both libraries within Dask has been helpful for
users, but introduced some maintenance burden, especially given that each
library co-evolved with Dask dataframe over the years. The contract between
Dask Dataframe and these libraries was convoluted, making it difficult to
evolve swiftly.&lt;/p&gt;
&lt;p&gt;To address this we’ve formalized what Dask expects of Parquet reader/writers
into a more formal Parquet Engine contract. This keeps maintenance costs
low, enables independent development for each project, and allows for new
engines to emerge.&lt;/p&gt;
&lt;p&gt;Already a GPU-accelerated Parquet reader is available in a PR on the &lt;a class="reference external" href="https://github.com/rapidsai/cudf/pull/2368"&gt;RAPIDS
cuDF&lt;/a&gt; library.&lt;/p&gt;
&lt;p&gt;As a result, we’ve also been able to fix a number of long-standing bugs, and
improve the functionality with both engines.&lt;/p&gt;
&lt;p&gt;Some fun quotes from &lt;a class="reference external" href="https://github.com/birdsarah"&gt;Sarah Bird&lt;/a&gt; during development&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;I am currently testing this. So far so good. I can load my dataset in a few seconds with 1800 partitions. Game changing!&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;I am now successfully working on a dataset with 74,000 partitions and no metadata.
Opening dataset and df.head() takes 7 - 30s. (Presumably depending on whether s3fs cache is cold or not). THIS IS HUGE! This was literally impossible before.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;The API remains the same, but functionality should be smoother.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a class="reference external" href="https://github.com/rjzamora"&gt;Rick Zamora&lt;/a&gt;, &lt;a class="reference external" href="https://github.com/martindurant"&gt;Martin
Durant&lt;/a&gt; for doing most of the work here and to
&lt;a class="reference external" href="https://github.com/birdsarah"&gt;Sarah Bird&lt;/a&gt;, &lt;a class="reference external" href="https://github.com/wesm"&gt;Wes
McKinney&lt;/a&gt;, and &lt;a class="reference external" href="https://github.com/mmccarty"&gt;Mike
McCarty&lt;/a&gt; for providing guidance and review.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/08/02/dask-2.2.md&lt;/span&gt;, line 88)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="nicer-html-output-for-clients-and-logs"&gt;
&lt;h1&gt;2 - Nicer HTML output for Clients and Logs&lt;/h1&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;dask.distributed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Client&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;table style="border: 2px solid white;"&gt;
&lt;tr&gt;
&lt;td style="vertical-align: top; border: 0px solid white"&gt;
&lt;h3 style="text-align: left;"&gt;Client&lt;/h3&gt;
&lt;ul style="text-align: left; list-style: none; margin: 0; padding: 0;"&gt;
  &lt;li&gt;&lt;b&gt;Scheduler: &lt;/b&gt;tcp://127.0.0.1:60275&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Dashboard: &lt;/b&gt;&lt;a href='http://127.0.0.1:8787/status' target='_blank'&gt;http://127.0.0.1:8787/status&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; border: 0px solid white"&gt;
&lt;h3 style="text-align: left;"&gt;Cluster&lt;/h3&gt;
&lt;ul style="text-align: left; list-style:none; margin: 0; padding: 0;"&gt;
  &lt;li&gt;&lt;b&gt;Workers: &lt;/b&gt;4&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Cores: &lt;/b&gt;12&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Memory: &lt;/b&gt;17.18 GB&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cluster&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;logs&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div markdown="0"&gt;
&lt;details&gt;
&lt;summary&gt;Scheduler&lt;/summary&gt;
&lt;pre&gt;&lt;code&gt;distributed.scheduler - INFO - Clear task state
distributed.scheduler - INFO -   Scheduler at:     tcp://127.0.0.1:60275
distributed.scheduler - INFO -   dashboard at:            127.0.0.1:8787
distributed.scheduler - INFO - Register tcp://127.0.0.1:60281
distributed.scheduler - INFO - Register tcp://127.0.0.1:60282
distributed.scheduler - INFO - Starting worker compute stream, tcp://127.0.0.1:60281
distributed.scheduler - INFO - Starting worker compute stream, tcp://127.0.0.1:60282
distributed.scheduler - INFO - Register tcp://127.0.0.1:60285
distributed.scheduler - INFO - Register tcp://127.0.0.1:60286
distributed.scheduler - INFO - Starting worker compute stream, tcp://127.0.0.1:60285
distributed.scheduler - INFO - Starting worker compute stream, tcp://127.0.0.1:60286
distributed.scheduler - INFO - Receive client connection: Client-6b6ba1d0-b3bd-11e9-9bd0-acde48001122&lt;/code&gt;&lt;/pre&gt;
&lt;/details&gt;
&lt;details&gt;
&lt;summary&gt;tcp://127.0.0.1:60281&lt;/summary&gt;
&lt;pre&gt;&lt;code&gt;distributed.worker - INFO -       Start worker at:      tcp://127.0.0.1:60281
distributed.worker - INFO -          Listening to:      tcp://127.0.0.1:60281
distributed.worker - INFO - Waiting to connect to:      tcp://127.0.0.1:60275
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO -               Threads:                          3
distributed.worker - INFO -                Memory:                    4.29 GB
distributed.worker - INFO -       Local Directory: /Users/mrocklin/workspace/dask/dask-worker-space/worker-c4_44fym
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO -         Registered to:      tcp://127.0.0.1:60275
distributed.worker - INFO - -------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/details&gt;
&lt;details&gt;
&lt;summary&gt;tcp://127.0.0.1:60282&lt;/summary&gt;
&lt;pre&gt;&lt;code&gt;distributed.worker - INFO -       Start worker at:      tcp://127.0.0.1:60282
distributed.worker - INFO -          Listening to:      tcp://127.0.0.1:60282
distributed.worker - INFO - Waiting to connect to:      tcp://127.0.0.1:60275
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO -               Threads:                          3
distributed.worker - INFO -                Memory:                    4.29 GB
distributed.worker - INFO -       Local Directory: /Users/mrocklin/workspace/dask/dask-worker-space/worker-quu4taje
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO -         Registered to:      tcp://127.0.0.1:60275
distributed.worker - INFO - -------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/details&gt;
&lt;details&gt;
&lt;summary&gt;tcp://127.0.0.1:60285&lt;/summary&gt;
&lt;pre&gt;&lt;code&gt;distributed.worker - INFO -       Start worker at:      tcp://127.0.0.1:60285
distributed.worker - INFO -          Listening to:      tcp://127.0.0.1:60285
distributed.worker - INFO - Waiting to connect to:      tcp://127.0.0.1:60275
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO -               Threads:                          3
distributed.worker - INFO -                Memory:                    4.29 GB
distributed.worker - INFO -       Local Directory: /Users/mrocklin/workspace/dask/dask-worker-space/worker-ll4cozug
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO -         Registered to:      tcp://127.0.0.1:60275
distributed.worker - INFO - -------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/details&gt;
&lt;details&gt;&lt;summary&gt;tcp://127.0.0.1:60286&lt;/summary&gt;&lt;pre&gt;&lt;code&gt;distributed.worker - INFO -       Start worker at:      tcp://127.0.0.1:60286
distributed.worker - INFO -          Listening to:      tcp://127.0.0.1:60286
distributed.worker - INFO - Waiting to connect to:      tcp://127.0.0.1:60275
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO -               Threads:                          3
distributed.worker - INFO -                Memory:                    4.29 GB
distributed.worker - INFO -       Local Directory: /Users/mrocklin/workspace/dask/dask-worker-space/worker-lpbkkzj6
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO -         Registered to:      tcp://127.0.0.1:60275
distributed.worker - INFO - -------------------------------------------------&lt;/code&gt;&lt;/pre&gt;&lt;/details&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Note: this looks better under any browser other than IE and Edge&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a class="reference external" href="https://github.com/jacobtomlinson"&gt;Jacob Tomlinson&lt;/a&gt; for this work.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/08/02/dask-2.2.md&lt;/span&gt;, line 191)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="hyperparameter-selection-with-hyperband"&gt;
&lt;h1&gt;3 - Hyperparameter selection with HyperBand&lt;/h1&gt;
&lt;p&gt;Dask-ML 1.0 has been released with a new &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;HyperBandSearchCV&lt;/span&gt;&lt;/code&gt; meta-estimator for
hyper-parameter optimization. This can be used as an alternative to
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;RandomizedSearchCV&lt;/span&gt;&lt;/code&gt; to find similar hyper-parameters in less time by not
wasting time on hyper-parameters that are not promising.&lt;/p&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;numpy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;np&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;dask_ml.model_selection&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;HyperbandSearchCV&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;dask_ml.datasets&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;make_classification&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;sklearn.linear_model&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SGDClassifier&lt;/span&gt;

&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;make_classification&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chunks&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="n"&gt;est&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SGDClassifier&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tol&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="n"&gt;param_dist&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;alpha&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;logspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;              &lt;span class="s1"&gt;&amp;#39;loss&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;hinge&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;log&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;modified_huber&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;squared_hinge&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;              &lt;span class="s1"&gt;&amp;#39;average&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;]}&lt;/span&gt;

&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="n"&gt;search&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;HyperbandSearchCV&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;est&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;param_dist&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="n"&gt;search&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;classes&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unique&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="n"&gt;search&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;best_params_&lt;/span&gt;
&lt;span class="go"&gt;{&amp;#39;loss&amp;#39;: &amp;#39;log&amp;#39;, &amp;#39;average&amp;#39;: False, &amp;#39;alpha&amp;#39;: 0.0080502}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Thanks to &lt;a class="reference external" href="http://github.com/stsievert"&gt;Scott Sievert&lt;/a&gt;.
You can see Scott talk about this topic in greater depth by watching his
&lt;a class="reference external" href="https://youtu.be/x67K9FiPFBQ"&gt;SciPy 2019 talk&lt;/a&gt;.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/08/02/dask-2.2.md&lt;/span&gt;, line 220)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="move-bytes-i-o-handling-out-of-dask-to-fsspec"&gt;
&lt;h1&gt;4 - Move bytes I/O handling out of Dask to FSSpec&lt;/h1&gt;
&lt;p&gt;We’ve spun out Dask’s internal code to read and write raw data to different
storage systems out to a separate project, &lt;a class="reference external" href="https://fsspec.readthedocs.io"&gt;fsspec&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here is a small example:&lt;/p&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;fsspec&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;fsspec&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://github.com/dask/dask/edit/master/README.rst&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;fsspec&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;s3://bucket/myfile.csv&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;fsspec&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;hdfs:///path/to/myfile.csv&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;fsspec&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;gcs://bucket/myfile.csv&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Dask’s I/O infrastructure to read and write bytes from systems like
HDFS, S3, GCS, Azure, and other remote storage systems is arguably the most
uniform and comprehensive in Python today. Through tooling like
&lt;a class="reference external" href="https://s3fs.readthedocs.io"&gt;s3fs&lt;/a&gt;, &lt;a class="reference external" href="https://gcsfs.readthedocs.io"&gt;gcsfs&lt;/a&gt;,
and ~~hdfs3~~ &lt;a class="reference external" href="https://arrow.apache.org/docs/python/filesystems.html"&gt;pyarrow.hdfs&lt;/a&gt;,
it’s easy to read and write data in a Pythonic way to a
variety of remote storage systems.&lt;/p&gt;
&lt;p&gt;Early on we decided that we wanted this code to live outside of the mainline
Dask codebase, which is why they are independent projects.
This choice allowed other libraries, like Pandas, Zarr, and others to benefit
from this work, without a strict dependency on Dask.
However, there was still code within Dask that helped to unify them a bit.
We’ve moved this code out to an external project,
&lt;a class="reference external" href="https://filesystem-spec.readthedocs.io/en/latest"&gt;fsspec&lt;/a&gt; which includes all
of the centralization code that Dask used to provide, as well as a formal
specification for what a remote data system should look like in order to be
compatible. This also helps to unify efforts with other projects like Arrow.&lt;/p&gt;
&lt;p&gt;Special thanks to &lt;a class="reference external" href="https://github.com/martindurant"&gt;Martin Durant&lt;/a&gt; for
shepherding Dask’s I/O infrastructure over the years, and for doing the more
immediate work of splitting out &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;fsspec&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can read more about FSSpec and its transition out of Dask
&lt;a class="reference external" href="https://blog.dask.org/2019/07/23/extracting-fsspec-from-dask"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/08/02/dask-2.2.md&lt;/span&gt;, line 269)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="async-await-everywhere-and-cleaner-setup-for-developers"&gt;
&lt;h1&gt;5 - Async/Await everywhere, and cleaner setup for developers&lt;/h1&gt;
&lt;p&gt;In Dask 2.0 we dropped Python 2 support and now support only Python 3.5 and
above.
This allows us to adopt async and await syntax for concurrent execution rather
than an older coroutine based approach with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;yield&lt;/span&gt;&lt;/code&gt;. The differences here
started out as largely aesthetic, but triggered a number of substantive
improvements as we walked through the codebase cleaning things up. Starting
and stopping internal Scheduler, Worker, Nanny, and Client objects is now far
more uniform, reducing the presence of subtle bugs.&lt;/p&gt;
&lt;p&gt;This is discussed in more detail in the &lt;a class="reference external" href="https://docs.dask.org/en/latest/setup/python-advanced.html"&gt;Python API setup
documentation&lt;/a&gt; and
is encapsulated in this code example from those docs:&lt;/p&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;asyncio&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;dask.distributed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Scheduler&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Worker&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Client&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Scheduler&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Worker&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;w1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Worker&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;w2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;asynchronous&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;future&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;submit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;future&lt;/span&gt;
                &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_event_loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run_until_complete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;As a result of this and other internal cleanup intermittent testing failures in
our CI have disappeared, and developer mood is high :)&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/08/02/dask-2.2.md&lt;/span&gt;, line 303)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="a-new-sshcluster"&gt;
&lt;h1&gt;6 - A new SSHCluster&lt;/h1&gt;
&lt;p&gt;We’ve added a second SSH cluster deployment solution. It looks like this:&lt;/p&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;distributed.deploy.ssh2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SSHCluster&lt;/span&gt;  &lt;span class="c1"&gt;# this will move in future releases&lt;/span&gt;

&lt;span class="n"&gt;cluster&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SSHCluster&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;hosts&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;host1&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;host2&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;host3&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;host4&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="c1"&gt;# hosts=[&amp;quot;localhost&amp;quot;] * 4  # if you want to try this out locally,&lt;/span&gt;
    &lt;span class="n"&gt;worker_kwargs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;nthreads&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;scheduler_kwargs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{},&lt;/span&gt;
    &lt;span class="n"&gt;connect_kwargs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;known_hosts&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Note that this object is experimental, and subject to change without notice&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We worked on this for two reasons:&lt;/p&gt;
&lt;ol class="arabic"&gt;
&lt;li&gt;&lt;p&gt;Our user survey showed that a surprising number of people were deploying
Dask with SSH. Anecdotally they seem to be just SSHing into machines and
then using Dask’s normal &lt;a class="reference external" href="https://docs.dask.org/en/latest/setup/cli.html"&gt;Dask Command Line
Interface&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;We wanted a solution that was easier than this.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We’ve been trying to unify the code in the various deployment solutions
(like Kubernetes, SLURM, Yarn/Hadoop) to a central codebase, and having a
simple SSHCluster as a test case has proven valuable for testing and
experimentation.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Also note, Dask already has a
&lt;a class="reference external" href="https://docs.dask.org/en/latest/setup/ssh.html"&gt;dask-ssh&lt;/a&gt; solution today that is more mature&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We expect that unification of deployment will be a central theme for the next
few months of development.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/08/02/dask-2.2.md&lt;/span&gt;, line 341)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="acknowledgements"&gt;
&lt;h1&gt;Acknowledgements&lt;/h1&gt;
&lt;p&gt;There have been two releases since the last time we had a release blogpost.
The following people contributed to the following repositories since the 2.0
release on June 30th:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask"&gt;dask/dask&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Brett Naul&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Daniel Saxton&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;David Brochart&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Davis Bennett&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Elliott Sales de Andrade&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GALI PREM SAGAR&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;James Bourbeau&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jim Crist&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Loïc Estève&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Martin Durant&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthias Bussonnier&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Natalya Rapstine&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nick Becker&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Peter Andreas Entschev&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ralf Gommers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Richard (Rick) Zamora&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sarah Bird&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sean McKenna&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tom Augspurger&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Willi Rath&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Xavier Holt&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;andrethrill&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;asmith26&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;msbrown47&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;tshatrov&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/distributed"&gt;dask/distributed&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Christian Hudon&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gabriel Sailer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jacob Tomlinson&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;James Bourbeau&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jim Crist&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Martin Durant&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pierre Glaser&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Russ Bubley&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;tjb900&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-jobqueue"&gt;dask/dask-jobqueue&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Guillaume Eynard-Bontemps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Leo Singer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Loïc Estève&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stuart Berg&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-examples"&gt;dask/dask-examples&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Chris White&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ian Rose&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-mpi"&gt;dask/dask-mpi&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Anderson Banihirwe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kevin Paul&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-kubernetes"&gt;dask/dask-kubernetes&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tom Augspurger&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-ml"&gt;dask/dask-ml&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Roman Yurchak&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tom Augspurger&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-yarn"&gt;dask/dask-yarn&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Al Johri&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jim Crist&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-examples"&gt;dask/dask-examples&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
</content>
    <link href="https://blog.dask.org/2019/08/02/dask-2.2/"/>
    <summary>I’m pleased to announce the release of Dask version 2.2.
This is a significant release with bug fixes and new features.
The last blogged release was 2.0 on 2019-06-22.
This blogpost outlines notable changes since the last post.</summary>
    <category term="release" label="release"/>
    <published>2019-08-02T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://blog.dask.org/2019/06/22/dask-2.0/</id>
    <title>Dask Release 2.0</title>
    <updated>2019-06-22T00:00:00+00:00</updated>
    <author>
      <name>the Dask Maintainers</name>
    </author>
    <content type="html">&lt;p&gt;&lt;em&gt;Please take the &lt;a class="reference external" href="https://t.co/OGrIjTLC2G"&gt;Dask User Survey for 2019&lt;/a&gt;.&lt;/em&gt;
&lt;em&gt;Your reponse helps to prioritize future work.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;We are pleased to announce the release of Dask version 2.0.
This is a major release with bug fixes and new features.&lt;/p&gt;
&lt;p&gt;Most major version changes of software signal many new and exciting features.
That is not the case with this release.
Instead, we’re bumping the major version number because
we’ve broken a few APIs to improve maintainability,
and because we decided to drop support for Python 2.&lt;/p&gt;
&lt;p&gt;This blogpost outlines these changes.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/06/22/dask-2.0.md&lt;/span&gt;, line 26)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;section id="install"&gt;

&lt;p&gt;As always, you can conda install Dask:&lt;/p&gt;
&lt;div class="highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;conda install dask
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;or pip install from PyPI:&lt;/p&gt;
&lt;div class="highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip install &amp;quot;dask[complete]&amp;quot; --upgrade
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Full changelogs are available here:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask/blob/master/docs/source/changelog.rst"&gt;dask/dask&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/distributed/blob/master/docs/source/changelog.rst"&gt;dask/distributed&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/06/22/dask-2.0.md&lt;/span&gt;, line 41)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="drop-support-for-python-2"&gt;
&lt;h1&gt;Drop support for Python 2&lt;/h1&gt;
&lt;p&gt;Python 2 reaches end of life in 2020, just six months away. Most major PyData
projects are dropping Python 2 support around now. See the &lt;a class="reference external" href="https://python3statement.org/"&gt;Python 3
Statement&lt;/a&gt; for more details about some of your
favorite projects.&lt;/p&gt;
&lt;p&gt;Python 2 users can continue to use older versions of Dask, which are in
widespread use today. Institutions looking for long term support of Dask in
Python 2 may wish to reach out to for-profit consulting companies, like
&lt;a class="reference external" href="https://www.quansight.com/"&gt;Quansight&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Dropping Python 2 will allow maintainers to spend more of their time fixing
bugs and developing new features. It will also allow the project to adopt more
modern development practices going forward.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/06/22/dask-2.0.md&lt;/span&gt;, line 57)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="small-breaking-changes"&gt;
&lt;h1&gt;Small breaking changes&lt;/h1&gt;
&lt;p&gt;We now include a list with a brief description of most of the breaking changes:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;The distributed.bokeh module has moved to distributed.dashboard&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Various &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ncores&lt;/span&gt;&lt;/code&gt; keywords have been moved to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;nthreads&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Client.map/gather/scatter no longer accept iterators and Python queue
objects. Users can handle this themselves with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;submit&lt;/span&gt;&lt;/code&gt;/&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;as_completed&lt;/span&gt;&lt;/code&gt; or
can use the &lt;a class="reference external" href="https://github.com/python-streamz/streamz"&gt;Streamz&lt;/a&gt; library.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The worker &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/main&lt;/span&gt;&lt;/code&gt; route has moved to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/status&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cluster.workers is now a dictionary mapping worker name to worker, rather
than a list as it was before&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/06/22/dask-2.0.md&lt;/span&gt;, line 70)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="some-larger-fun-changes"&gt;
&lt;h1&gt;Some larger fun changes&lt;/h1&gt;
&lt;p&gt;We didn’t only break things. We also added some new things :)&lt;/p&gt;
&lt;section id="array-metadata"&gt;
&lt;h2&gt;Array metadata&lt;/h2&gt;
&lt;p&gt;Previously Dask Arrays were defined by their shape, chunkshape, and datatype,
like float, int, and so on.&lt;/p&gt;
&lt;p&gt;Now, Dask Arrays also know the type of their chunks. Historically this was
almost always a NumPy array, so it didn’t make sense to store, but now that
Dask Arrays are being used more frequently with sparse array chunks and GPU
array chunks we now maintain this information as well in a &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;._meta&lt;/span&gt;&lt;/code&gt; attribute.
This is already how Dask dataframes work, so it should be familiar to advanced
users of that module.&lt;/p&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;dask.array&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;da&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;da&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;eye&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_meta&lt;/span&gt;
&lt;span class="go"&gt;array([], shape=(0, 0), dtype=float64)&lt;/span&gt;

&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;sparse&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map_blocks&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sparse&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;COO&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_numpy&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_meta&lt;/span&gt;
&lt;span class="go"&gt;&amp;lt;COO: shape=(0, 0), dtype=float64, nnz=0, fill_value=0.0&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This work was largely done by &lt;a class="reference external" href="https://github.com/pentschev"&gt;Peter Entschev&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="array-html-output"&gt;
&lt;h2&gt;Array HTML output&lt;/h2&gt;
&lt;p&gt;Dask arrays now print themselves nicely in Jupyter notebooks, showing a table
of information about their size and chunk size, and also a visual diagram of
their chunk structure.&lt;/p&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;dask.array&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;da&lt;/span&gt;
&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;da&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ones&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;table&gt;  &lt;thead&gt;    &lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;th&gt; Array &lt;/th&gt;&lt;th&gt; Chunk &lt;/th&gt;&lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;th&gt; Bytes &lt;/th&gt;&lt;td&gt; 80.00 GB &lt;/td&gt; &lt;td&gt; 125.00 MB &lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;th&gt; Shape &lt;/th&gt;&lt;td&gt; (10000, 1000, 1000) &lt;/td&gt; &lt;td&gt; (250, 250, 250) &lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;th&gt; Count &lt;/th&gt;&lt;td&gt; 640 Tasks &lt;/td&gt;&lt;td&gt; 640 Chunks &lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;th&gt; Type &lt;/th&gt;&lt;td&gt; float64 &lt;/td&gt;&lt;td&gt; numpy.ndarray &lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;svg width="241" height="231" style="stroke:rgb(0,0,0);stroke-width:1" &gt;
  &lt;!-- Horizontal lines --&gt;
  &lt;line x1="10" y1="0" x2="127" y2="117" style="stroke-width:2" /&gt;
  &lt;line x1="10" y1="16" x2="127" y2="133" /&gt;
  &lt;line x1="10" y1="32" x2="127" y2="149" /&gt;
  &lt;line x1="10" y1="48" x2="127" y2="165" /&gt;
  &lt;line x1="10" y1="64" x2="127" y2="181" style="stroke-width:2" /&gt;
  &lt;!-- Vertical lines --&gt;
  &lt;line x1="10" y1="0" x2="10" y2="64" style="stroke-width:2" /&gt;
  &lt;line x1="12" y1="2" x2="12" y2="67" /&gt;
  &lt;line x1="15" y1="5" x2="15" y2="70" /&gt;
  &lt;line x1="18" y1="8" x2="18" y2="73" /&gt;
  &lt;line x1="21" y1="11" x2="21" y2="76" /&gt;
  &lt;line x1="24" y1="14" x2="24" y2="79" /&gt;
  &lt;line x1="27" y1="17" x2="27" y2="81" /&gt;
  &lt;line x1="30" y1="20" x2="30" y2="84" /&gt;
  &lt;line x1="33" y1="23" x2="33" y2="87" /&gt;
  &lt;line x1="36" y1="26" x2="36" y2="90" /&gt;
  &lt;line x1="39" y1="29" x2="39" y2="93" /&gt;
  &lt;line x1="42" y1="32" x2="42" y2="96" /&gt;
  &lt;line x1="45" y1="35" x2="45" y2="99" /&gt;
  &lt;line x1="48" y1="38" x2="48" y2="102" /&gt;
  &lt;line x1="51" y1="41" x2="51" y2="105" /&gt;
  &lt;line x1="54" y1="44" x2="54" y2="108" /&gt;
  &lt;line x1="57" y1="47" x2="57" y2="111" /&gt;
  &lt;line x1="60" y1="50" x2="60" y2="114" /&gt;
  &lt;line x1="62" y1="52" x2="62" y2="117" /&gt;
  &lt;line x1="65" y1="55" x2="65" y2="120" /&gt;
  &lt;line x1="68" y1="58" x2="68" y2="123" /&gt;
  &lt;line x1="71" y1="61" x2="71" y2="126" /&gt;
  &lt;line x1="74" y1="64" x2="74" y2="129" /&gt;
  &lt;line x1="77" y1="67" x2="77" y2="131" /&gt;
  &lt;line x1="80" y1="70" x2="80" y2="134" /&gt;
  &lt;line x1="83" y1="73" x2="83" y2="137" /&gt;
  &lt;line x1="86" y1="76" x2="86" y2="140" /&gt;
  &lt;line x1="89" y1="79" x2="89" y2="143" /&gt;
  &lt;line x1="92" y1="82" x2="92" y2="146" /&gt;
  &lt;line x1="95" y1="85" x2="95" y2="149" /&gt;
  &lt;line x1="98" y1="88" x2="98" y2="152" /&gt;
  &lt;line x1="101" y1="91" x2="101" y2="155" /&gt;
  &lt;line x1="104" y1="94" x2="104" y2="158" /&gt;
  &lt;line x1="107" y1="97" x2="107" y2="161" /&gt;
  &lt;line x1="110" y1="100" x2="110" y2="164" /&gt;
  &lt;line x1="112" y1="102" x2="112" y2="167" /&gt;
  &lt;line x1="115" y1="105" x2="115" y2="170" /&gt;
  &lt;line x1="118" y1="108" x2="118" y2="173" /&gt;
  &lt;line x1="121" y1="111" x2="121" y2="176" /&gt;
  &lt;line x1="124" y1="114" x2="124" y2="179" /&gt;
  &lt;line x1="127" y1="117" x2="127" y2="181" style="stroke-width:2" /&gt;
  &lt;!-- Colored Rectangle --&gt;
  &lt;polygon points="10.000000,0.000000 127.647059,117.647059 127.647059,181.975164 10.000000,64.328105" style="fill:#ECB172A0;stroke-width:0"/&gt;
  &lt;!-- Horizontal lines --&gt;
  &lt;line x1="10" y1="0" x2="74" y2="0" style="stroke-width:2" /&gt;
  &lt;line x1="12" y1="2" x2="77" y2="2" /&gt;
  &lt;line x1="15" y1="5" x2="80" y2="5" /&gt;
  &lt;line x1="18" y1="8" x2="83" y2="8" /&gt;
  &lt;line x1="21" y1="11" x2="86" y2="11" /&gt;
  &lt;line x1="24" y1="14" x2="89" y2="14" /&gt;
  &lt;line x1="27" y1="17" x2="91" y2="17" /&gt;
  &lt;line x1="30" y1="20" x2="94" y2="20" /&gt;
  &lt;line x1="33" y1="23" x2="97" y2="23" /&gt;
  &lt;line x1="36" y1="26" x2="100" y2="26" /&gt;
  &lt;line x1="39" y1="29" x2="103" y2="29" /&gt;
  &lt;line x1="42" y1="32" x2="106" y2="32" /&gt;
  &lt;line x1="45" y1="35" x2="109" y2="35" /&gt;
  &lt;line x1="48" y1="38" x2="112" y2="38" /&gt;
  &lt;line x1="51" y1="41" x2="115" y2="41" /&gt;
  &lt;line x1="54" y1="44" x2="118" y2="44" /&gt;
  &lt;line x1="57" y1="47" x2="121" y2="47" /&gt;
  &lt;line x1="60" y1="50" x2="124" y2="50" /&gt;
  &lt;line x1="62" y1="52" x2="127" y2="52" /&gt;
  &lt;line x1="65" y1="55" x2="130" y2="55" /&gt;
  &lt;line x1="68" y1="58" x2="133" y2="58" /&gt;
  &lt;line x1="71" y1="61" x2="136" y2="61" /&gt;
  &lt;line x1="74" y1="64" x2="139" y2="64" /&gt;
  &lt;line x1="77" y1="67" x2="141" y2="67" /&gt;
  &lt;line x1="80" y1="70" x2="144" y2="70" /&gt;
  &lt;line x1="83" y1="73" x2="147" y2="73" /&gt;
  &lt;line x1="86" y1="76" x2="150" y2="76" /&gt;
  &lt;line x1="89" y1="79" x2="153" y2="79" /&gt;
  &lt;line x1="92" y1="82" x2="156" y2="82" /&gt;
  &lt;line x1="95" y1="85" x2="159" y2="85" /&gt;
  &lt;line x1="98" y1="88" x2="162" y2="88" /&gt;
  &lt;line x1="101" y1="91" x2="165" y2="91" /&gt;
  &lt;line x1="104" y1="94" x2="168" y2="94" /&gt;
  &lt;line x1="107" y1="97" x2="171" y2="97" /&gt;
  &lt;line x1="110" y1="100" x2="174" y2="100" /&gt;
  &lt;line x1="112" y1="102" x2="177" y2="102" /&gt;
  &lt;line x1="115" y1="105" x2="180" y2="105" /&gt;
  &lt;line x1="118" y1="108" x2="183" y2="108" /&gt;
  &lt;line x1="121" y1="111" x2="186" y2="111" /&gt;
  &lt;line x1="124" y1="114" x2="189" y2="114" /&gt;
  &lt;line x1="127" y1="117" x2="191" y2="117" style="stroke-width:2" /&gt;
  &lt;!-- Vertical lines --&gt;
  &lt;line x1="10" y1="0" x2="127" y2="117" style="stroke-width:2" /&gt;
  &lt;line x1="26" y1="0" x2="143" y2="117" /&gt;
  &lt;line x1="42" y1="0" x2="159" y2="117" /&gt;
  &lt;line x1="58" y1="0" x2="175" y2="117" /&gt;
  &lt;line x1="74" y1="0" x2="191" y2="117" style="stroke-width:2" /&gt;
  &lt;!-- Colored Rectangle --&gt;
  &lt;polygon points="10.000000,0.000000 74.328105,0.000000 191.975164,117.647059 127.647059,117.647059" style="fill:#ECB172A0;stroke-width:0"/&gt;
  &lt;!-- Horizontal lines --&gt;
  &lt;line x1="127" y1="117" x2="191" y2="117" style="stroke-width:2" /&gt;
  &lt;line x1="127" y1="133" x2="191" y2="133" /&gt;
  &lt;line x1="127" y1="149" x2="191" y2="149" /&gt;
  &lt;line x1="127" y1="165" x2="191" y2="165" /&gt;
  &lt;line x1="127" y1="181" x2="191" y2="181" style="stroke-width:2" /&gt;
  &lt;!-- Vertical lines --&gt;
  &lt;line x1="127" y1="117" x2="127" y2="181" style="stroke-width:2" /&gt;
  &lt;line x1="143" y1="117" x2="143" y2="181" /&gt;
  &lt;line x1="159" y1="117" x2="159" y2="181" /&gt;
  &lt;line x1="175" y1="117" x2="175" y2="181" /&gt;
  &lt;line x1="191" y1="117" x2="191" y2="181" style="stroke-width:2" /&gt;
  &lt;!-- Colored Rectangle --&gt;
  &lt;polygon points="127.647059,117.647059 191.975164,117.647059 191.975164,181.975164 127.647059,181.975164" style="fill:#ECB172A0;stroke-width:0"/&gt;
  &lt;!-- Text --&gt;
&lt;p&gt;&lt;text x="159.811111" y="201.975164" font-size="1.0rem" font-weight="100" text-anchor="middle" &gt;1000&lt;/text&gt;
&lt;text x="211.975164" y="149.811111" font-size="1.0rem" font-weight="100" text-anchor="middle" transform="rotate(-90,211.975164,149.811111)"&gt;1000&lt;/text&gt;
&lt;text x="58.823529" y="143.151634" font-size="1.0rem" font-weight="100" text-anchor="middle" transform="rotate(45,58.823529,143.151634)"&gt;10000&lt;/text&gt;
&lt;/svg&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/section&gt;
&lt;section id="proxy-worker-dashboards-from-the-scheduler-dashboard"&gt;
&lt;h2&gt;Proxy Worker dashboards from the Scheduler dashboard&lt;/h2&gt;
&lt;p&gt;If you’ve used Dask.distributed they you’re probably familiar with Dask’s
scheduler dashboard, which shows the state of computations on the cluster with
a real-time interactive &lt;a class="reference external" href="https://bokeh.org"&gt;Bokeh&lt;/a&gt; dashboard. However you may
not be aware that Dask workers also have their own dashboard, which shows a
completely separate set of plots for the state of that individual worker.&lt;/p&gt;
&lt;p&gt;Historically these worker dashboards haven’t been as commonly used because it’s
hard to connect to them. Users don’t know their address, or network rules
don’t enable direct web connections. Fortunately, the scheduler dashboard is
now able to proxy a connection from the user to the worker dashbaord.&lt;/p&gt;
&lt;p&gt;You can access this by clicking on the “Info” tab and then selecting the
“dashboard” link next to any of the workers. You will need to also install
&lt;a class="reference external" href="https://github.com/jupyterhub/jupyter-server-proxy"&gt;jupyter-server-proxy&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip install jupyter-server-proxy
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Thanks to &lt;a class="reference external" href="https://github.com/quasiben"&gt;Ben Zaitlen&lt;/a&gt; for this fun addtition.
We hope that now that these plots are made more visible, people will invest
more into developing plots for them.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="black-everywhere"&gt;
&lt;h2&gt;Black everywhere&lt;/h2&gt;
&lt;p&gt;We now use the &lt;a class="reference external" href="https://black.readthedocs.io/"&gt;Black&lt;/a&gt; code formatter throughout
most Dask repositories. These repositories include pre-commit hooks, which we
recommend when developing on the project.&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dask&lt;/span&gt;
&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;checkout&lt;/span&gt; &lt;span class="n"&gt;master&lt;/span&gt;
&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;pull&lt;/span&gt; &lt;span class="n"&gt;upstream&lt;/span&gt; &lt;span class="n"&gt;master&lt;/span&gt;

&lt;span class="n"&gt;pip&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;commit&lt;/span&gt;
&lt;span class="n"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;commit&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Git will then call &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;black&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;flake8&lt;/span&gt;&lt;/code&gt; whenever you attempt to commit code.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/06/22/dask-2.0.md&lt;/span&gt;, line 300)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;section id="dask-gateway"&gt;
&lt;h1&gt;Dask Gateway&lt;/h1&gt;
&lt;p&gt;We would also like to inform readers about the somewhat new &lt;a class="reference external" href="https://github.com/jcrist/dask-gateway"&gt;Dask
Gateway&lt;/a&gt; project that enables
institutions and IT to control many Dask clusters for a variety of users.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://jcrist.github.io/dask-gateway/_images/architecture.svg"
     width="70%"
     alt="Dask Gateway"&gt;&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/06/22/dask-2.0.md&lt;/span&gt;, line 310)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="acknowledgements"&gt;
&lt;h1&gt;Acknowledgements&lt;/h1&gt;
&lt;p&gt;There have been several releases since the last time we had a release blogpost.
The following people contributed to the following repositories since the 1.1.0
release on January 23rd:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask"&gt;dask/dask&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;(Rick) Richard J Zamora&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Abhinav Ralhan&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adam Beberg&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Alistair Miles&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Álvaro Abella Bascarán&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Anderson Banihirwe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Aploium&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bart Broere&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Benjamin Zaitlen&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bouwe Andela&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brett Naul&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brian Chu&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bruce Merry&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Christian Hudon&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cody Johnson&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dan O’Donovan&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Daniel Saxton&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Daniel Severo&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Danilo Horta&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dimplexion&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Elliott Sales de Andrade&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Endre Mark Borza&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Genevieve Buckley&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;George Sakkis&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Guillaume Lemaitre&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;HSR05&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hameer Abbasi&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Henrique Ribeiro&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Henry Pinkard&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hugo&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ian Bolliger&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ian Rose&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Isaiah Norton&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;James Bourbeau&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Janne Vuorela&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;John Kirkham&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jim Crist&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Joe Corbett&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jorge Pessoa&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Julia Signell&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JulianWgs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Justin Poehnelt&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Justin Waugh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ksenia Bobrova&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lijo Jose&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Marco Neumann&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mark Bell&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Martin Durant&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Michael Eaton&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Michał Jastrzębski&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nathan Matare&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nick Becker&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paweł Kordek&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Peter Andreas Entschev&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Philipp Rudiger&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Philipp S. Sommer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Roma Sokolov&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ross Petchler&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scott Sievert&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shyam Saladi&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Søren Fuglede Jørgensen&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Thomas Zilio&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tom Augspurger&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yu Feng&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;aaronfowles&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;amerkel2&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;asmith26&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;btw08&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;gregrf&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;mbarkhau&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;mcsoini&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;severo&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;tpanza&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/distributed"&gt;dask/distributed&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Adam Beberg&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Benjamin Zaitlen&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brett Jurman&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brett Randall&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brian Chu&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Caleb&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Chris White&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Daniel Farrell&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Elliott Sales de Andrade&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;George Sakkis&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;James Bourbeau&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jim Crist&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;John Kirkham&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;K.-Michael Aye&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Loïc Estève&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Magnus Nord&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Manuel Garrido&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Marco Neumann&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Martin Durant&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mathieu Dugré&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matt Nicolls&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Michael Delgado&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Michael Spiegel&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Muammar El Khatib&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nikos Tsaousis&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Olivier Grisel&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Peter Andreas Entschev&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sam Grayson&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scott Sievert&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tom Augspurger&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Torsten Wörtwein&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;amerkel2&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;condoratberlin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;deepthirajagopalan7&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;jukent&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;plbertrand&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-ml"&gt;dask/dask-ml&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Alejandro&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Florian Rohrer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;James Bourbeau&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Julien Jerphanion&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nathan Henrie&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paul Vecchio&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ryan McCormick&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Saadullah Amin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scott Sievert&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sriharsha Atyam&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tom Augspurger&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-jobqueue"&gt;dask/dask-jobqueue&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Andrea Zonca&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Guillaume Eynard-Bontemps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kyle Husmann&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Levi Naden&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Loïc Estève&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matyas Selmeci&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ocaisa&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-kubernetes"&gt;dask/dask-kubernetes&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Brian Phillips&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jacob Tomlinson&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jim Crist&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Joe Hamman&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Joseph Hamman&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tom Augspurger&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yuvi Panda&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;adam&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-examples"&gt;dask/dask-examples&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Christoph Deil&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Genevieve Buckley&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ian Rose&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Martin Durant&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthias Bussonnier&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Robert Sare&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tom Augspurger&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Willi Rath&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask-labextension"&gt;dask/dask-labextension&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Daniel Bast&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ian Rose&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yuvi Panda&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
</content>
    <link href="https://blog.dask.org/2019/06/22/dask-2.0/"/>
    <summary>Please take the Dask User Survey for 2019.
Your reponse helps to prioritize future work.</summary>
    <category term="release" label="release"/>
    <published>2019-06-22T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://blog.dask.org/2019/01/23/dask-1.1.0/</id>
    <title>Dask Release 1.1.0</title>
    <updated>2019-01-23T00:00:00+00:00</updated>
    <content type="html">&lt;p&gt;I’m pleased to announce the release of Dask version 1.1.0. This is a major
release with bug fixes and new features. The last release was 1.0.0 on
2018-11-29.
This blogpost outlines notable changes since the last release.&lt;/p&gt;
&lt;p&gt;You can conda install Dask:&lt;/p&gt;
&lt;div class="highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;conda install dask
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;or pip install from PyPI:&lt;/p&gt;
&lt;div class="highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip install dask[complete] --upgrade
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Full changelogs are available here:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/dask/blob/master/docs/source/changelog.rst"&gt;dask/dask&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/dask/distributed/blob/master/docs/source/changelog.rst"&gt;dask/distributed&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/01/23/dask-1.1.0.md&lt;/span&gt;, line 26)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;section id="notable-changes"&gt;

&lt;p&gt;A lot of work has happened over the last couple months, and we encourage people
to look through the changelog to get a sense of the kinds of incremental
changes that developers are working on.&lt;/p&gt;
&lt;p&gt;There are also a few notable changes in this release that we’ll highlight here:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Support for the recent Numpy 1.16 and Pandas 0.24 releases&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Support for Pandas Extension Arrays (see &lt;a class="reference internal" href="../../../2019/01/22/dask-extension-arrays/"&gt;&lt;span class="doc std std-doc"&gt;Tom Augspurger’s post on the topic&lt;/span&gt;&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;High level graph in Dask dataframe and operator fusion in simple cases&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Increased support for other libraries that look enough like Numpy and Pandas
to work within Dask Array/Dataframe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/01/23/dask-1.1.0.md&lt;/span&gt;, line 40)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="support-for-numpy-1-16-and-pandas-0-24"&gt;
&lt;h1&gt;Support for Numpy 1.16 and Pandas 0.24&lt;/h1&gt;
&lt;p&gt;Both Numpy and Pandas have been evolving quickly over the last few months.
We’re excited about the changes to extensibility arriving in both libraries.
The Dask array/dataframe submodules have been updated to work well with these
recent changes.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/01/23/dask-1.1.0.md&lt;/span&gt;, line 47)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="pandas-extension-arrays"&gt;
&lt;h1&gt;Pandas Extension Arrays&lt;/h1&gt;
&lt;p&gt;In particular Dask Dataframe supports Pandas Extension arrays,
meaning that it’s easier to use third party Pandas packages like CyberPandas or
Fletcher in parallel with Dask Dataframe.&lt;/p&gt;
&lt;p&gt;For more information see &lt;a class="reference internal" href="../../../2019/01/22/dask-extension-arrays/"&gt;&lt;span class="doc std std-doc"&gt;Tom Augspurger’s post&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/01/23/dask-1.1.0.md&lt;/span&gt;, line 55)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="high-level-graphs-in-dask-dataframe"&gt;
&lt;h1&gt;High Level Graphs in Dask Dataframe&lt;/h1&gt;
&lt;p&gt;For a while Dask array has had some high level graphs for “atop” operations
(elementwise, broadcasting, transpose, tensordot, reductions), which allow for
reduced overhead and task fusion on computations within this class.&lt;/p&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;da&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;  &lt;span class="c1"&gt;# These operations get fused to a single task&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;We’ve renamed &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;atop&lt;/span&gt;&lt;/code&gt; to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;blockwise&lt;/span&gt;&lt;/code&gt; to be a bit more generic, and have also
started applying it to Dask Dataframe, which helps to reduce overhead
substantially when doing computations with many simple operations.&lt;/p&gt;
&lt;p&gt;This still needs to be improved to increase the class of cases where it works,
but we’re already seeing nice speedups on previously unseen workloads.&lt;/p&gt;
&lt;p&gt;The &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;da.atop&lt;/span&gt;&lt;/code&gt; function has been deprecated in favor of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;da.blockwise&lt;/span&gt;&lt;/code&gt;. There
is now also a &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;dd.blockwise&lt;/span&gt;&lt;/code&gt; which shares a common code path.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/01/23/dask-1.1.0.md&lt;/span&gt;, line 75)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="non-pandas-dataframe-and-non-numpy-array-types"&gt;
&lt;h1&gt;Non-Pandas dataframe and Non-Numpy array types&lt;/h1&gt;
&lt;p&gt;We’re working to make Dask a bit more agnostic to the types of in-memory array
and dataframe objects that it can manipulate. Rather than having Dask Array be
a grid of Numpy arrays and Dask Dataframe be a sequence of Pandas dataframes,
we’re relaxing that constraint to a grid of &lt;em&gt;Numpy-like&lt;/em&gt; arrays and a sequence
of &lt;em&gt;Pandas-like&lt;/em&gt; dataframes.&lt;/p&gt;
&lt;p&gt;This is an ongoing effort that has targetted alternate backends like
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;scipy.sparse&lt;/span&gt;&lt;/code&gt;, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pydata/sparse&lt;/span&gt;&lt;/code&gt;, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;cupy&lt;/span&gt;&lt;/code&gt;, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;cudf&lt;/span&gt;&lt;/code&gt; and other systems.&lt;/p&gt;
&lt;p&gt;There were some recent posts on
&lt;a class="reference internal" href="../../../2019/01/03/dask-array-gpus-first-steps/"&gt;&lt;span class="doc std std-doc"&gt;arrays&lt;/span&gt;&lt;/a&gt; and
&lt;a class="reference internal" href="../../../2019/01/13/dask-cudf-first-steps/"&gt;&lt;span class="doc std std-doc"&gt;dataframes&lt;/span&gt;&lt;/a&gt; that show proofs of
concept for this with GPUs.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: WARNING/2 (&lt;span class="docutils literal"&gt;/opt/build/repo/2019/01/23/dask-1.1.0.md&lt;/span&gt;, line 91)&lt;/p&gt;
&lt;p&gt;Document headings start at H2, not H1 [myst.header]&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
&lt;section id="acknowledgements"&gt;
&lt;h1&gt;Acknowledgements&lt;/h1&gt;
&lt;p&gt;There have been several releases since the last time we had a release blogpost.
The following people contributed to the dask/dask repository since the 0.19.0
release on September 5th:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Anderson Banihirwe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Antonino Ingargiola&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Armin Berres&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bart Broere&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Carlos Valiente&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Daniel Li&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Daniel Saxton&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;David Hoese&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Diane Trout&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Damien Garaud&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Elliott Sales de Andrade&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Eric Wolak&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gábor Lipták&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Guido Imperiale&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Guillaume Eynard-Bontemps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Itamar Turner-Trauring&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;James Bourbeau&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jan Koch&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Javad&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jendrik Jördening&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jim Crist&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jonathan Fraine&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;John Kirkham&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Johnnie Gray&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Julia Signell&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Justin Dennison&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;M. Farrajota&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Marco Neumann&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mark Harfouche&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Markus Gonser&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Martin Durant&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthias Bussonnier&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mina Farid&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paul Vecchio&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prabakaran Kumaresshan&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rahul Vaidya&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stephan Hoyer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stuart Berg&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TakaakiFuruse&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Takahiro Kojima&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tom Augspurger&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yu Feng&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Zhenqing Li&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&amp;#64;milesial&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&amp;#64;samc0de&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&amp;#64;slnguyen&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following people contributed to the dask/distributed repository since the 0.19.0
release on September 5th:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Adam Klein&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brett Naul&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Daniel Farrell&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Diane Trout&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dirk Petersen&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Eric Ma&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jim Crist&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;John Kirkham&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gaurav Sheni&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Guillaume Eynard-Bontemps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Loïc Estève&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Marius van Niekerk&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Rocklin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Michael Wheeler&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;MikeG&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;NotSqrt&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Peter Killick&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Roy Wedge&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Russ Bubley&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stephan Hoyer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&amp;#64;tjb900&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tom Rochette&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&amp;#64;fjetter&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
</content>
    <link href="https://blog.dask.org/2019/01/23/dask-1.1.0/"/>
    <summary>I’m pleased to announce the release of Dask version 1.1.0. This is a major
release with bug fixes and new features. The last release was 1.0.0 on
2018-11-29.
This blogpost outlines notable changes since the last release.</summary>
    <category term="release" label="release"/>
    <published>2019-01-23T00:00:00+00:00</published>
  </entry>
</feed>
