From 654d6928228ea52df27b7f2a0b39446757165f62 Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Tue, 15 Nov 2022 02:45:33 -0500 Subject: [PATCH 1/4] Add a Dask benchmark --- pyperformance/data-files/benchmarks/MANIFEST | 1 + .../benchmarks/bm_dask/pyproject.toml | 9 ++++++ .../benchmarks/bm_dask/requirements.txt | 1 + .../benchmarks/bm_dask/run_benchmark.py | 31 +++++++++++++++++++ 4 files changed, 42 insertions(+) create mode 100644 pyperformance/data-files/benchmarks/bm_dask/pyproject.toml create mode 100644 pyperformance/data-files/benchmarks/bm_dask/requirements.txt create mode 100644 pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py diff --git a/pyperformance/data-files/benchmarks/MANIFEST b/pyperformance/data-files/benchmarks/MANIFEST index 63760823..05e1bf5e 100644 --- a/pyperformance/data-files/benchmarks/MANIFEST +++ b/pyperformance/data-files/benchmarks/MANIFEST @@ -14,6 +14,7 @@ generators chameleon chaos crypto_pyaes +dask deepcopy deltablue django_template diff --git a/pyperformance/data-files/benchmarks/bm_dask/pyproject.toml b/pyperformance/data-files/benchmarks/bm_dask/pyproject.toml new file mode 100644 index 00000000..747fb2f2 --- /dev/null +++ b/pyperformance/data-files/benchmarks/bm_dask/pyproject.toml @@ -0,0 +1,9 @@ +[project] +name = "pyperformance_bm_dask" +requires-python = ">=3.8" +dependencies = ["pyperf"] +urls = {repository = "https://github.com/python/pyperformance"} +dynamic = ["version"] + +[tool.pyperformance] +name = "dask" diff --git a/pyperformance/data-files/benchmarks/bm_dask/requirements.txt b/pyperformance/data-files/benchmarks/bm_dask/requirements.txt new file mode 100644 index 00000000..b4aa40f6 --- /dev/null +++ b/pyperformance/data-files/benchmarks/bm_dask/requirements.txt @@ -0,0 +1 @@ +dask[distributed]==2022.11.0 diff --git a/pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py b/pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py new file mode 100644 index 00000000..9cf0b5c1 --- /dev/null +++ b/pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py @@ -0,0 +1,31 @@ +""" +Benchmark the Dask scheduler running a large number of simple jobs. + +Author: Matt Rocklin, Michael Droettboom +""" + +from dask.distributed import Client, Worker, Scheduler, wait + +import pyperf + + +def inc(x): + return x + 1 + + +async def benchmark(): + async with Scheduler() as scheduler: + async with Worker(scheduler.address): + async with Client(scheduler.address, asynchronous=True) as client: + + futures = client.map(inc, range(100)) + for _ in range(10): + futures = client.map(inc, futures) + + await wait(futures) + + +if __name__ == "__main__": + runner = pyperf.Runner() + runner.metadata['description'] = "Benchmark async generators" + runner.bench_async_func('async_generators', benchmark) From 536a7a1da8aa96a291fab7652f0101d51c854364 Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Tue, 15 Nov 2022 06:28:01 -0500 Subject: [PATCH 2/4] Downgrade for more version coverage --- pyperformance/data-files/benchmarks/bm_dask/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyperformance/data-files/benchmarks/bm_dask/requirements.txt b/pyperformance/data-files/benchmarks/bm_dask/requirements.txt index b4aa40f6..374cf38a 100644 --- a/pyperformance/data-files/benchmarks/bm_dask/requirements.txt +++ b/pyperformance/data-files/benchmarks/bm_dask/requirements.txt @@ -1 +1 @@ -dask[distributed]==2022.11.0 +dask[distributed]==2022.2.0 From 7ff79c28cf340237fe0182d60110aa4463686aae Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Tue, 15 Nov 2022 08:43:02 -0500 Subject: [PATCH 3/4] Fix naming issue --- pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py b/pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py index 9cf0b5c1..a3479785 100644 --- a/pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py +++ b/pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py @@ -28,4 +28,4 @@ async def benchmark(): if __name__ == "__main__": runner = pyperf.Runner() runner.metadata['description'] = "Benchmark async generators" - runner.bench_async_func('async_generators', benchmark) + runner.bench_async_func('dask', benchmark) From 37103157ec43990dcb2ddd3747986ba8035cd20e Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Wed, 16 Nov 2022 16:24:54 -0500 Subject: [PATCH 4/4] Fix description --- pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py b/pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py index a3479785..cf6610d2 100644 --- a/pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py +++ b/pyperformance/data-files/benchmarks/bm_dask/run_benchmark.py @@ -27,5 +27,5 @@ async def benchmark(): if __name__ == "__main__": runner = pyperf.Runner() - runner.metadata['description'] = "Benchmark async generators" + runner.metadata['description'] = "Benchmark dask" runner.bench_async_func('dask', benchmark)