diff --git a/docs/source/array-design.rst b/docs/source/array-design.rst index faae21c27ed3..d7c140d5323a 100644 --- a/docs/source/array-design.rst +++ b/docs/source/array-design.rst @@ -4,7 +4,7 @@ Internal Design Overview -------- -.. image:: images/array.png +.. image:: images/array.svg :width: 40 % :align: right :alt: 12 rectangular blocks arranged as a 4-row, 3-column layout. Each block includes 'x' and its location in the table starting with ('x',0,0) in the top-left, and a size of 5x8. diff --git a/docs/source/array-overlap.rst b/docs/source/array-overlap.rst index 1126fe0ff5f7..4e0d5206fadb 100644 --- a/docs/source/array-overlap.rst +++ b/docs/source/array-overlap.rst @@ -32,20 +32,20 @@ Explanation Consider two neighboring blocks in a Dask array: -.. image:: images/unoverlapping-neighbors.png +.. image:: images/unoverlapping-neighbors.svg :width: 30% :alt: Two neighboring blocks which do not overlap. We extend each block by trading thin nearby slices between arrays: -.. image:: images/overlapping-neighbors.png +.. image:: images/overlapping-neighbors.svg :width: 30% :alt: Two neighboring block with thin strips along their shared border representing data shared between them. We do this in all directions, including also diagonal interactions with the overlap function: -.. image:: images/overlapping-blocks.png +.. image:: images/overlapping-blocks.svg :width: 40% :alt: A two-dimensional grid of blocks where each one has thin strips around their borders representing data shared from their neighbors. They include small corner bits for data shared from diagonal neighbors as well. diff --git a/docs/source/array.rst b/docs/source/array.rst index 9dc7017f3f99..f73e5c511a50 100644 --- a/docs/source/array.rst +++ b/docs/source/array.rst @@ -42,9 +42,10 @@ Dask Array. Design ------ -.. image:: images/dask-array-black-text.svg +.. image:: images/dask-array.svg :alt: Dask arrays coordinate many numpy arrays :align: right + :scale: 35% Dask arrays coordinate many NumPy arrays (or "duck arrays" that are sufficiently NumPy-like in API such as CuPy or Sparse arrays) arranged into a diff --git a/docs/source/dataframe.rst b/docs/source/dataframe.rst index c39a6b9b2c27..41870a80d76a 100644 --- a/docs/source/dataframe.rst +++ b/docs/source/dataframe.rst @@ -40,14 +40,16 @@ Dask DataFrame. Design ------ +.. image:: images/dask-dataframe.svg + :alt: Column of four squares collectively labeled as a Dask DataFrame with a single constituent square labeled as a Pandas DataFrame. + :width: 35% + :align: right + Dask DataFrames coordinate many Pandas DataFrames/Series arranged along the index. A Dask DataFrame is partitioned *row-wise*, grouping rows by index value for efficiency. These Pandas objects may live on disk or on other machines. -.. image:: images/dask-dataframe.svg - :alt: Dask DataFrames coordinate many Pandas DataFrames - :width: 40% - +| Dask DataFrame copies the Pandas API ------------------------------------ diff --git a/docs/source/graphs.rst b/docs/source/graphs.rst index 85ac94e50d4d..729457ba3d4d 100644 --- a/docs/source/graphs.rst +++ b/docs/source/graphs.rst @@ -5,7 +5,7 @@ Task Graphs Internally, Dask encodes algorithms in a simple format involving Python dicts, tuples, and functions. This graph format can be used in isolation from the -dask collections. Working directly with dask graphs is rare, unless you intend +dask collections. Working directly with dask graphs is rare, though, unless you intend to develop new modules with Dask. Even then, :doc:`dask.delayed ` is often a better choice. If you are a *core developer*, then you should start here. @@ -39,27 +39,29 @@ computation, often a function call on a non-trivial amount of data. We represent these tasks as nodes in a graph with edges between nodes if one task depends on data produced by another. We call upon a *task scheduler* to execute this graph in a way that respects these data dependencies and leverages -parallelism where possible, multiple independent tasks can be run +parallelism where possible, so multiple independent tasks can be run simultaneously. +| + +.. figure:: images/map-reduce-task-scheduling.svg + :scale: 40% + + There are a number of methods for task scheduling, including embarrassingly parallel, MapReduce, and full task scheduling. + +| + Many solutions exist. This is a common approach in parallel execution frameworks. Often task scheduling logic hides within other larger frameworks -(Luigi, Storm, Spark, IPython Parallel, and so on) and so is often reinvented. - -Dask is a specification that encodes task schedules with minimal incidental -complexity using terms common to all Python projects, namely dicts, tuples, +(e.g. Luigi, Storm, Spark, IPython Parallel, etc.) and so is often reinvented. +Dask is a specification that encodes full task scheduling with minimal incidental +complexity using terms common to all Python projects, namely, dicts, tuples, and callables. Ideally this minimum solution is easy to adopt and understand by a broad community. Example ------- -.. image:: _static/dask-simple.png - :height: 400px - :alt: A simple dask dictionary - :align: right - - Consider the following simple program: .. code-block:: python @@ -82,6 +84,14 @@ We encode this as a dictionary in the following way: 'y': (inc, 'x'), 'z': (add, 'y', 10)} +Which is represented by the following Dask graph: + +.. image:: _static/dask-simple.png + :height: 400px + :alt: A simple dask dictionary + +| + While less pleasant than our original code, this representation can be analyzed and executed by other Python code, not just the CPython interpreter. We don't recommend that users write code in this way, but rather that it is an diff --git a/docs/source/how-to/adaptive.rst b/docs/source/how-to/adaptive.rst index 044db6d3300b..875651644ec3 100644 --- a/docs/source/how-to/adaptive.rst +++ b/docs/source/how-to/adaptive.rst @@ -16,8 +16,18 @@ two situations: Particularly efficient users may learn to manually add and remove workers during their session, but this is rare. Instead, we would like the size of a Dask cluster to match the computational needs at any given time. This is the -goal of the *adaptive deployments* discussed in this document. These are -particularly helpful for interactive workloads, which are characterized by long +goal of the *adaptive deployments* discussed in this document. + +| + +.. image:: ../images/dask-adaptive.svg + :alt: Dask adaptive scaling + :align: center + :scale: 40% + +| + +These are particularly helpful for interactive workloads, which are characterized by long periods of inactivity interrupted with short bursts of heavy activity. Adaptive deployments can result in both faster analyses that give users much more power, but with much less pressure on computational resources. diff --git a/docs/source/how-to/deploy-dask-clusters.rst b/docs/source/how-to/deploy-dask-clusters.rst index f7636e356dc6..989d10248b1f 100644 --- a/docs/source/how-to/deploy-dask-clusters.rst +++ b/docs/source/how-to/deploy-dask-clusters.rst @@ -6,6 +6,18 @@ locally on your own machine or on a distributed cluster. If you are just getting started, then this page is unnecessary. Dask does not require any setup if you only want to use it on a single computer. +You can continue reading or watch the screencast below: + +.. raw:: html + + + Dask has two families of task schedulers: 1. **Single machine scheduler**: This scheduler provides basic features on a @@ -16,7 +28,16 @@ Dask has two families of task schedulers: more features, but also requires a bit more effort to set up. It can run locally or distributed across a cluster. -If you import Dask, set up a computation, and then call ``compute``, then you +| + +.. figure:: ../images/dask-overview-distributed-callout.svg + :alt: Dask is composed of three parts. "Collections" create "Task Graphs" which are then sent to the "Scheduler" for execution. There are two types of schedulers that are described in more detail below. + + High level collections are used to generate task graphs which can be executed on a single machine or a cluster. Using the Distributed scheduler enables creation of a Dask cluster for multi-machine computation. + +| + +If you import Dask, set up a computation, and call ``compute``, then you will use the single-machine scheduler by default. To use the ``dask.distributed`` scheduler you must set up a ``Client`` @@ -34,18 +55,28 @@ scheduler you must set up a ``Client`` Note that the newer ``dask.distributed`` scheduler is often preferable, even on single workstations. It contains many diagnostics and features not found in -the older single-machine scheduler. The following pages explain in more detail -how to set up Dask on a variety of local and distributed hardware. +the older single-machine scheduler. -.. raw:: html +There are also a number of different *cluster managers* available, so you can use +Dask distributed with a range of platforms. These *cluster managers* deploy a scheduler +and the necessary workers as determined by communicating with the *resource manager*. +`Dask Jobqueue `_, for example, is a set of +*cluster managers* for HPC users and works with job queueing systems +(in this case, the *resource manager*) such as `PBS `_, +`Slurm `_, +and `SGE `_. +Those workers are then allocated physical hardware resources. - +.. figure:: ../images/dask-cluster-manager.svg + :scale: 50% + + An overview of cluster management with Dask distributed. + +To summarize, you can use the default, single-machine scheduler to use Dask +on your local machine. If you'd like use a cluster *or* simply take advantage +of the :doc:`extensive diagnostics <../diagnostics-distributed>`, +you can use Dask distributed. The following resources explain +in more detail how to set up Dask on a variety of local and distributed hardware: - Single Machine: - :doc:`Default Scheduler `: The no-setup default. @@ -54,6 +85,8 @@ how to set up Dask on a variety of local and distributed hardware. the newer system on a single machine. This provides more advanced features while still requiring almost no setup. - Distributed computing: + - `Beginner's Guide to Configuring a Dask distributed Cluster `_ + - `Overview of cluster management options `_ - :doc:`Manual Setup `: The command line interface to set up ``dask-scheduler`` and ``dask-worker`` processes. Useful for IT or anyone building a deployment solution. diff --git a/docs/source/images/array.png b/docs/source/images/array.png deleted file mode 100644 index 7ddb6e400ef3..000000000000 Binary files a/docs/source/images/array.png and /dev/null differ diff --git a/docs/source/images/async-embarrassing.gif b/docs/source/images/async-embarrassing.gif index 90a098e9a36e..38601178dae5 100644 Binary files a/docs/source/images/async-embarrassing.gif and b/docs/source/images/async-embarrassing.gif differ diff --git a/docs/source/images/collections-schedulers.png b/docs/source/images/collections-schedulers.png deleted file mode 100644 index 21c077dba2f7..000000000000 Binary files a/docs/source/images/collections-schedulers.png and /dev/null differ diff --git a/docs/source/images/collections-schedulers.svg b/docs/source/images/collections-schedulers.svg deleted file mode 100644 index c6db43ce5ce2..000000000000 --- a/docs/source/images/collections-schedulers.svg +++ /dev/null @@ -1,520 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - Synchronous synchronous - threaded - multiprocessing - distributed - - - array bag dataframe - - - - - - - - - - - Collections - Schedulers - Task Graph - - diff --git a/docs/source/images/crosstalk.png b/docs/source/images/crosstalk.png deleted file mode 100644 index fe562470da0c..000000000000 Binary files a/docs/source/images/crosstalk.png and /dev/null differ diff --git a/docs/source/images/dask-adaptive.svg b/docs/source/images/dask-adaptive.svg new file mode 100644 index 000000000000..be1c6a7fbc26 --- /dev/null +++ b/docs/source/images/dask-adaptive.svg @@ -0,0 +1,2985 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/images/dask-array-black-text.svg b/docs/source/images/dask-array-black-text.svg deleted file mode 100644 index 2e74ddcffaaa..000000000000 --- a/docs/source/images/dask-array-black-text.svg +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - NumPy Array - } - } - Dask Array - - diff --git a/docs/source/images/dask-array.svg b/docs/source/images/dask-array.svg new file mode 100644 index 000000000000..bdf33c0ac70f --- /dev/null +++ b/docs/source/images/dask-array.svg @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/images/dask-cluster-manager.svg b/docs/source/images/dask-cluster-manager.svg new file mode 100644 index 000000000000..9c44c11d3b64 --- /dev/null +++ b/docs/source/images/dask-cluster-manager.svg @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/images/dask-dataframe.svg b/docs/source/images/dask-dataframe.svg index 7467988ebf89..054c92bbdd68 100644 --- a/docs/source/images/dask-dataframe.svg +++ b/docs/source/images/dask-dataframe.svg @@ -1,225 +1,117 @@ - - + id="svg2581" + sodipodi:docname="dask-dataframe.svg" + inkscape:version="1.1.1 (c3084ef, 2021-09-22)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + id="defs2585" /> - - - - - - image/svg+xml - - - - - - - - - - - - February, 2016 - March, 2016 - April, 2016 - May, 2016 - Pandas Dataframe - } - Dask Dataframe - } - January, 2016 - + inkscape:window-y="0" + inkscape:window-maximized="0" + inkscape:current-layer="svg2581" /> + + + + + + + + + + diff --git a/docs/source/images/dask-overview-distributed-callout.svg b/docs/source/images/dask-overview-distributed-callout.svg new file mode 100644 index 000000000000..aea1fba94b23 --- /dev/null +++ b/docs/source/images/dask-overview-distributed-callout.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/source/images/dask-overview-schedulers.svg b/docs/source/images/dask-overview-schedulers.svg new file mode 100644 index 000000000000..746412a4f9d9 --- /dev/null +++ b/docs/source/images/dask-overview-schedulers.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/source/images/dask-overview.svg b/docs/source/images/dask-overview.svg index 7d4e171ce18a..c88c73e2de71 100644 --- a/docs/source/images/dask-overview.svg +++ b/docs/source/images/dask-overview.svg @@ -1 +1,419 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/images/distributed-layout.png b/docs/source/images/distributed-layout.png deleted file mode 100644 index 62dfdadc8ce0..000000000000 Binary files a/docs/source/images/distributed-layout.png and /dev/null differ diff --git a/docs/source/images/distributed-layout.svg b/docs/source/images/distributed-layout.svg deleted file mode 100644 index a3dc373922f4..000000000000 --- a/docs/source/images/distributed-layout.svg +++ /dev/null @@ -1,437 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - same network - scheduler - worker - worker - worker - worker - worker - - client - - client - - client - - - - - - - - - - - - - - diff --git a/docs/source/images/distributed-network.png b/docs/source/images/distributed-network.png deleted file mode 100644 index 869c608b0843..000000000000 Binary files a/docs/source/images/distributed-network.png and /dev/null differ diff --git a/docs/source/images/distributed-network.svg b/docs/source/images/distributed-network.svg deleted file mode 100644 index e53fda86c736..000000000000 --- a/docs/source/images/distributed-network.svg +++ /dev/null @@ -1,678 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - worker - - - - - - - - - - - - - - - - - - - - router - dealer - every worker has: : one router : a dealer for every other worker to which it has spoken - - - - - - - - - - worker - - - router - dealer - - The scheduler has one routerto which each worker's dealerconnects - scheduler - - diff --git a/docs/source/images/distributed-overview.svg b/docs/source/images/distributed-overview.svg new file mode 100644 index 000000000000..0981f0e21cac --- /dev/null +++ b/docs/source/images/distributed-overview.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/images/frame-shuffle.png b/docs/source/images/frame-shuffle.png deleted file mode 100644 index 100807f2aad1..000000000000 Binary files a/docs/source/images/frame-shuffle.png and /dev/null differ diff --git a/docs/source/images/frame-sort.png b/docs/source/images/frame-sort.png deleted file mode 100644 index 9c1980a0b81c..000000000000 Binary files a/docs/source/images/frame-sort.png and /dev/null differ diff --git a/docs/source/images/frame.png b/docs/source/images/frame.png deleted file mode 100644 index 0a835afcf26c..000000000000 Binary files a/docs/source/images/frame.png and /dev/null differ diff --git a/docs/source/images/map-reduce-task-scheduling.svg b/docs/source/images/map-reduce-task-scheduling.svg new file mode 100644 index 000000000000..77681cdea17f --- /dev/null +++ b/docs/source/images/map-reduce-task-scheduling.svg @@ -0,0 +1,2409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/images/optimize_dask1.png b/docs/source/images/optimize_dask1.png deleted file mode 100644 index f3d27610086a..000000000000 Binary files a/docs/source/images/optimize_dask1.png and /dev/null differ diff --git a/docs/source/images/optimize_dask2.png b/docs/source/images/optimize_dask2.png deleted file mode 100644 index cb4205ff351a..000000000000 Binary files a/docs/source/images/optimize_dask2.png and /dev/null differ diff --git a/docs/source/images/optimize_dask3.png b/docs/source/images/optimize_dask3.png deleted file mode 100644 index 01dfdc9bb91d..000000000000 Binary files a/docs/source/images/optimize_dask3.png and /dev/null differ diff --git a/docs/source/images/optimize_dask4.png b/docs/source/images/optimize_dask4.png deleted file mode 100644 index 5904e8fd77d5..000000000000 Binary files a/docs/source/images/optimize_dask4.png and /dev/null differ diff --git a/docs/source/images/optimize_dask5.png b/docs/source/images/optimize_dask5.png deleted file mode 100644 index 2e4db0b140db..000000000000 Binary files a/docs/source/images/optimize_dask5.png and /dev/null differ diff --git a/docs/source/images/overlapping-blocks.png b/docs/source/images/overlapping-blocks.png deleted file mode 100644 index 1369b6a0038c..000000000000 Binary files a/docs/source/images/overlapping-blocks.png and /dev/null differ diff --git a/docs/source/images/overlapping-neighbors.png b/docs/source/images/overlapping-neighbors.png deleted file mode 100644 index b81785d1f613..000000000000 Binary files a/docs/source/images/overlapping-neighbors.png and /dev/null differ diff --git a/docs/source/images/pipeline.png b/docs/source/images/pipeline.png deleted file mode 100644 index 25b6c291c5b7..000000000000 Binary files a/docs/source/images/pipeline.png and /dev/null differ diff --git a/docs/source/images/trivial.png b/docs/source/images/trivial.png deleted file mode 100644 index 1c349611fde3..000000000000 Binary files a/docs/source/images/trivial.png and /dev/null differ diff --git a/docs/source/images/unoverlapping-neighbors.png b/docs/source/images/unoverlapping-neighbors.png deleted file mode 100644 index 4040639c49ee..000000000000 Binary files a/docs/source/images/unoverlapping-neighbors.png and /dev/null differ diff --git a/docs/source/index.rst b/docs/source/index.rst index e436e59c6ac9..baf1625fd7f6 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -28,12 +28,16 @@ Dask emphasizes the following virtues: * **Responsive**: Designed with interactive computing in mind, it provides rapid feedback and diagnostics to aid humans +| -.. image:: images/dask-overview.svg - :alt: Dask collections and schedulers - :width: 100% +.. figure:: images/dask-overview.svg + :alt: Dask is composed of three parts. "Collections" create "Task Graphs" which are then sent to the "Scheduler" for execution. There are two types of schedulers that are described in more detail below. :align: center + High level collections are used to generate task graphs which can be executed by schedulers on a single machine or a cluster. + +| + See the `dask.distributed documentation (separate website) `_ for more technical information on Dask's distributed scheduler. diff --git a/docs/source/optimize.rst b/docs/source/optimize.rst index 858036bb23d4..e2ef46748c33 100644 --- a/docs/source/optimize.rst +++ b/docs/source/optimize.rst @@ -59,7 +59,7 @@ Suppose you had a custom Dask graph for doing a word counting task: ... 'print2': (print_and_return, 'format2'), ... 'print3': (print_and_return, 'format3')} -.. image:: images/optimize_dask1.png +.. image:: images/optimize_dask1.svg :width: 65 % :alt: The original non-optimized Dask task graph. @@ -98,7 +98,7 @@ later steps: >>> outputs = ['print1', 'print2'] >>> dsk1, dependencies = cull(dsk, outputs) -.. image:: images/optimize_dask2.png +.. image:: images/optimize_dask2.svg :width: 50 % :alt: The Dask task graph after culling tasks for optimization. @@ -114,7 +114,7 @@ tasks to improve efficiency using the ``inline`` function. For example: word list has 2 occurrences of apple, out of 7 words word list has 2 occurrences of orange, out of 7 words -.. image:: images/optimize_dask3.png +.. image:: images/optimize_dask3.svg :width: 40 % :alt: The Dask task graph after inlining for optimization. @@ -134,7 +134,7 @@ can be used: word list has 2 occurrences of apple, out of 7 words word list has 2 occurrences of orange, out of 7 words -.. image:: images/optimize_dask4.png +.. image:: images/optimize_dask4.svg :width: 30 % :alt: The Dask task graph after inlining functions for optimization. @@ -151,7 +151,7 @@ One option is just to merge these linear chains into one big task using the word list has 2 occurrences of apple, out of 7 words word list has 2 occurrences of orange, out of 7 words -.. image:: images/optimize_dask5.png +.. image:: images/optimize_dask5.svg :width: 30 % :alt: The Dask task graph after fusing tasks for optimization. diff --git a/docs/source/scheduling.rst b/docs/source/scheduling.rst index c42f47c508b7..06618938be56 100644 --- a/docs/source/scheduling.rst +++ b/docs/source/scheduling.rst @@ -12,11 +12,6 @@ This is the job of a *task scheduler*. Different task schedulers exist, and each will consume a task graph and compute the same result, but with different performance characteristics. -.. image:: images/collections-schedulers.png - :alt: Dask collections and schedulers - :width: 80% - :align: center - Dask has two families of task schedulers: 1. **Single machine scheduler**: This scheduler provides basic features on a @@ -27,6 +22,15 @@ Dask has two families of task schedulers: more features, but also requires a bit more effort to set up. It can run locally or distributed across a cluster +| + +.. image:: images/dask-overview-schedulers.svg + :alt: Dask is composed of three parts. "Collections" create "Task Graphs" which are then sent to the "Scheduler" for execution. There are two types of schedulers that are described in more detail below. + :align: center + :scale: 135% + +| + For different computations you may find better performance with particular scheduler settings. This document helps you understand how to choose between and configure different schedulers, and provides guidelines on when one might be more appropriate. diff --git a/docs/source/shared.rst b/docs/source/shared.rst index b2447138b0f0..a4d8b0938f03 100644 --- a/docs/source/shared.rst +++ b/docs/source/shared.rst @@ -88,7 +88,7 @@ This may be mediated by using a global or contextual pool: We now measure scaling the number of tasks and scaling the density of the graph: -.. image:: images/trivial.png +.. image:: images/trivial.svg :width: 30 % :align: right :alt: Adding nodes @@ -106,7 +106,7 @@ milliseconds and the single threaded schedulers have costs of a few microseconds Scheduling overhead for the entire graph (left) vs. per task (right) -.. image:: images/crosstalk.png +.. image:: images/crosstalk.svg :width: 40 % :align: right :alt: Adding edges