@@ -87,7 +87,7 @@ plt = heatmap(xs, tslices, ys', xlabel="x", ylabel="t")
8787```
8888
8989```
90- 17.137453 seconds (16.55 M allocations: 2.154 GiB, 5.05 % gc time, 53.07 % c
90+ 17.965191 seconds (16.54 M allocations: 2.154 GiB, 3.99 % gc time, 54.33 % c
9191ompilation time)
9292```
9393
@@ -130,8 +130,8 @@ IMEXEuler
130130CNAB2
131131CNLF2
132132SBDF2
133- 67.222792 seconds (59.96 M allocations: 27.375 GiB, 4.30 % gc time, 17.13%
134- compilation time)
133+ 73.287431 seconds (60.06 M allocations: 27.382 GiB, 10.67 % gc time, 17.46%
134+ compilation time)
135135```
136136
137137
@@ -175,8 +175,8 @@ NorsettEuler (m=20)
175175ETDRK2 (caching)
176176ETDRK2 (m=5)
177177ETDRK2 (m=20)
178- 256.758478 seconds (145.20 M allocations: 111.863 GiB, 6.91 % gc time, 3.43%
179- compilation time)
178+ 263.221534 seconds (145.17 M allocations: 111.860 GiB, 11.61 % gc time, 3.54
179+ % compilation time)
180180```
181181
182182
@@ -197,8 +197,8 @@ setups = [
197197 Dict (:alg => ETDRK2 (), :dts => 1e-4 * multipliers),
198198]
199199labels = hcat (
200- " CNAB2 (dense linsolve )" ,
201- " CNAB2 (Krylov linsolve )" ,
200+ " CNAB2 (dense)" ,
201+ " CNAB2 (Krylov)" ,
202202 " ETDRK2 (caching)" ,
203203)
204204@time wp = WorkPrecisionSet (prob, abstols, reltols, setups;
@@ -209,10 +209,10 @@ plot(wp, label=labels, markershape=:auto, title="Between Families, High Toleranc
209209```
210210
211211```
212- CNAB2 (dense linsolve )
213- CNAB2 (Krylov linsolve )
212+ CNAB2 (dense)
213+ CNAB2 (Krylov)
214214ETDRK2 (caching)
215- 64.014218 seconds (40.55 M allocations: 34.591 GiB, 10.80 % gc time, 3.11 %
215+ 70.109623 seconds (34.75 M allocations: 28.427 GiB, 23.75 % gc time, 3.12 %
216216compilation time)
217217```
218218
@@ -225,27 +225,31 @@ compilation time)
225225
226226#### Implicit-Explicit Methods
227227
228-
229- Krylov linear solvers.
228+ Dense and Krylov linear solvers.
230229``` julia
231- abstols = 0.1 .^ (7 : 13 )
232- reltols = 0.1 .^ (4 : 10 )
230+ abstols = 0.1 .^ (8 : 12 )
231+ reltols = 0.1 .^ (5 : 9 )
233232setups = [
234- # KenCarp methods take forever with adaptive timestepping for some reason
235- # Dict(:alg => KenCarp3(linsolve=KrylovJL_GMRES())),
236- # Dict(:alg => KenCarp4(linsolve=KrylovJL_GMRES())),
237- # Dict(:alg => KenCarp5(linsolve=KrylovJL_GMRES())),
233+ Dict (:alg => KenCarp3 ()),
234+ Dict (:alg => KenCarp4 ()),
235+ Dict (:alg => KenCarp5 ()),
236+ Dict (:alg => KenCarp3 (linsolve= KrylovJL_GMRES ())),
237+ Dict (:alg => KenCarp4 (linsolve= KrylovJL_GMRES ())),
238+ Dict (:alg => KenCarp5 (linsolve= KrylovJL_GMRES ())),
238239 Dict (:alg => ARKODE (Sundials. Implicit (), order= 3 , linear_solver= :GMRES )),
239240 Dict (:alg => ARKODE (Sundials. Implicit (), order= 4 , linear_solver= :GMRES )),
240241 Dict (:alg => ARKODE (Sundials. Implicit (), order= 5 , linear_solver= :GMRES )),
241242]
242243labels = hcat (
243- # "KenCarp3",
244- # "KenCarp4",
245- # "KenCarp5",
246- " ARKODE3" ,
247- " ARKODE4" ,
248- " ARKODE5" ,
244+ " KenCarp3 (dense)" ,
245+ " KenCarp4 (dense)" ,
246+ " KenCarp5 (dense)" ,
247+ " KenCarp3 (Krylov)" ,
248+ " KenCarp4 (Krylov)" ,
249+ " KenCarp5 (Krylov)" ,
250+ " ARKODE3 (Krylov)" ,
251+ " ARKODE4 (Krylov)" ,
252+ " ARKODE5 (Krylov)" ,
249253)
250254@time wp = WorkPrecisionSet (prob, abstols, reltols, setups;
251255 print_names= true , names= labels, numruns= 5 , error_estimate= :l2 ,
@@ -255,10 +259,16 @@ plot(wp, label=labels, markershape=:auto, title="IMEX Methods, Krylov Linsolve,
255259```
256260
257261```
258- ARKODE3
259- ARKODE4
260- ARKODE5
261- 128.340745 seconds (261.02 M allocations: 41.002 GiB, 3.48% gc time, 1.47%
262+ KenCarp3 (dense)
263+ KenCarp4 (dense)
264+ KenCarp5 (dense)
265+ KenCarp3 (Krylov)
266+ KenCarp4 (Krylov)
267+ KenCarp5 (Krylov)
268+ ARKODE3 (Krylov)
269+ ARKODE4 (Krylov)
270+ ARKODE5 (Krylov)
271+ 426.726592 seconds (198.17 M allocations: 29.443 GiB, 1.79% gc time, 4.05%
262272compilation time)
263273```
264274
@@ -294,7 +304,7 @@ plot(wp, label=labels, markershape=:auto, title="ExpRK Methods, Low Tolerances")
294304ETDRK3 (caching)
295305ETDRK4 (caching)
296306HochOst4 (caching)
297- 131.857690 seconds (11.45 M allocations: 18.307 GiB, 0.71 % gc time, 4.68 % c
307+ 138.101421 seconds (11.44 M allocations: 19.659 GiB, 0.78 % gc time, 4.76 % c
298308ompilation time)
299309```
300310
@@ -314,7 +324,11 @@ setups = [
314324 Dict (:alg => ETDRK3 (), :dts => 1e-2 * multipliers),
315325 Dict (:alg => ETDRK4 (), :dts => 1e-2 * multipliers),
316326]
317- labels = hcat (" ARKODE (Krylov linsolve)" , " ETDRK3 ()" , " ETDRK4 ()" )
327+ labels = hcat (
328+ " ARKODE5 (Krylov)" ,
329+ " ETDRK3 (caching)" ,
330+ " ETDRK4 (caching)"
331+ )
318332@time wp = WorkPrecisionSet (prob, abstols, reltols, setups;
319333 print_names= true , names= labels, numruns= 5 , error_estimate= :l2 ,
320334 save_everystep= false , appxsol= test_sol, maxiters= Int (1e5 ));
@@ -323,10 +337,10 @@ plot(wp, label=labels, markershape=:auto, title="Between Families, Low Tolerance
323337```
324338
325339```
326- ARKODE (Krylov linsolve )
327- ETDRK3 ()
328- ETDRK4 ()
329- 131.804965 seconds (35.36 M allocations: 17.681 GiB, 1.34 % gc time, 0.06 % c
340+ ARKODE5 (Krylov)
341+ ETDRK3 (caching )
342+ ETDRK4 (caching )
343+ 96.038497 seconds (35.33 M allocations: 17.679 GiB, 2.57 % gc time, 0.01 % c
330344ompilation time)
331345```
332346
@@ -358,7 +372,7 @@ Platform Info:
358372 WORD_SIZE: 64
359373 LIBM: libopenlibm
360374 LLVM: libLLVM-15.0.7 (ORCJIT, znver2)
361- Threads: 1 default, 0 interactive, 1 GC (on 128 virtual cores)
375+ Threads: 128 default, 0 interactive, 64 GC (on 128 virtual cores)
362376Environment:
363377 JULIA_CPU_THREADS = 128
364378 JULIA_DEPOT_PATH = /cache/julia-buildkite-plugin/depots/5b300254-1738-4989-ae0a-f4d2d937f953
@@ -381,6 +395,7 @@ Status `/cache/build/exclusive-amdci3-0/julialang/scimlbenchmarks-dot-jl/benchma
381395 [c3572dad] Sundials v4.28.0
382396 [37e2e46d] LinearAlgebra
383397 [2f01184e] SparseArrays v1.10.0
398+ Warning The project dependencies or compat requirements have changed since the manifest was last resolved. It is recommended to `Pkg.resolve()` or consider `Pkg.update()` if necessary.
384399```
385400
386401And the full manifest:
@@ -777,5 +792,6 @@ Status `/cache/build/exclusive-amdci3-0/julialang/scimlbenchmarks-dot-jl/benchma
777792 [8e850ede] nghttp2_jll v1.52.0+1
778793 [3f19e933] p7zip_jll v17.4.0+2
779794Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
795+ Warning The project dependencies or compat requirements have changed since the manifest was last resolved. It is recommended to `Pkg.resolve()` or consider `Pkg.update()` if necessary.
780796```
781797
0 commit comments