diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 3d552c25..fa73bac4 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.10.0","generation_timestamp":"2024-02-01T19:36:19","documenter_version":"1.2.1"}} \ No newline at end of file +{"documenter":{"julia_version":"1.10.0","generation_timestamp":"2024-02-02T10:33:03","documenter_version":"1.2.1"}} \ No newline at end of file diff --git a/dev/examples/juliaset/juliaset/index.html b/dev/examples/juliaset/juliaset/index.html index caac8b6d..f0142be9 100644 --- a/dev/examples/juliaset/juliaset/index.html +++ b/dev/examples/juliaset/juliaset/index.html @@ -52,4 +52,4 @@ 63.707 ms (39 allocations: 3.30 KiB)
As hoped, the parallel implementation is faster. But can we improve the performance further?
nchunks
As stated above, the per-pixel computation is non-uniform. Hence, we might benefit from load balancing. The simplest way to get it is to increase nchunks
to a value larger than nthreads
. This divides the overall workload into smaller tasks than can be dynamically distributed among threads (by Julia's scheduler) to balance the per-thread load.
@btime compute_juliaset_parallel!($img; schedule=:dynamic, nchunks=N) samples=10 evals=3;
32.000 ms (12013 allocations: 1.14 MiB)
Note that if we opt out of dynamic scheduling and set schedule=:static
, this strategy doesn't help anymore (because chunks are naively distributed up front).
@btime compute_juliaset_parallel!($img; schedule=:static, nchunks=N) samples=10 evals=3;
63.439 ms (42 allocations: 3.37 KiB)
-
This page was generated using Literate.jl.
Settings
This document was generated with Documenter.jl version 1.2.1 on Thursday 1 February 2024. Using Julia version 1.10.0.