comparison benchmark/benchmarks.jl @ 1198:5d4a15d6118f tooling/benchmarks

Add some actual benchmarks
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 31 Jan 2023 20:40:18 +0100
parents 1aca445216b8
children f095c02081eb
comparison
equal deleted inserted replaced
1197:5e20c0815e07 1198:5d4a15d6118f
1 using BenchmarkTools 1 using BenchmarkTools
2 using Random 2 using Sbplib
3 using Sbplib.Grids
4 using Sbplib.SbpOperators
3 5
4 const SUITE = BenchmarkGroup() 6 const SUITE = BenchmarkGroup()
5 7
6 SUITE["utf8"] = BenchmarkGroup(["string", "unicode"]) 8
7 teststr = String(join(rand(MersenneTwister(1), 'a':'d', 10^4))) 9 sz(d) = ntuple(i->100, d)
8 SUITE["utf8"]["replace"] = @benchmarkable replace($teststr, "a" => "b") 10 ll(d) = ntuple(i->0., d)
9 SUITE["utf8"]["join"] = @benchmarkable join($teststr, $teststr) 11 lu(d) = ntuple(i->1., d)
10 SUITE["utf8"]["plots"] = BenchmarkGroup() 12
13 g1 = EquidistantGrid(sz(1),ll(1),lu(1))
14 g2 = EquidistantGrid(sz(2),ll(2),lu(2))
15 g3 = EquidistantGrid(sz(3),ll(3),lu(3))
16
17 v1 = rand(sz(1)...)
18 v2 = rand(sz(2)...)
19 v3 = rand(sz(3)...)
20
21 u1 = rand(sz(1)...)
22 u2 = rand(sz(2)...)
23 u3 = rand(sz(3)...)
24
25 stencil_set = read_stencil_set(joinpath(sbp_operators_path(),"standard_diagonal.toml"); order=4)
26
27 SUITE["derivatives"] = BenchmarkGroup()
28
29
30 SUITE["derivatives"]["first_derivative"] = BenchmarkGroup()
31
32 D₁ = first_derivative(g1,stencil_set)
33 SUITE["derivatives"]["first_derivative"]["1D"] = @benchmarkable $u1 .= $D₁*$v1
34
35 Dx = first_derivative(g2,stencil_set,1)
36 Dy = first_derivative(g2,stencil_set,2)
37 SUITE["derivatives"]["first_derivative"]["2D"] = BenchmarkGroup()
38 SUITE["derivatives"]["first_derivative"]["2D"]["x"] = @benchmarkable $u2 .= $Dx*$v2
39 SUITE["derivatives"]["first_derivative"]["2D"]["y"] = @benchmarkable $u2 .= $Dy*$v2
40
41 Dx = first_derivative(g3,stencil_set,1)
42 Dy = first_derivative(g3,stencil_set,2)
43 Dz = first_derivative(g3,stencil_set,3)
44 SUITE["derivatives"]["first_derivative"]["3D"] = BenchmarkGroup()
45 SUITE["derivatives"]["first_derivative"]["3D"]["x"] = @benchmarkable $u3 .= $Dx*$v3
46 SUITE["derivatives"]["first_derivative"]["3D"]["y"] = @benchmarkable $u3 .= $Dy*$v3
47 SUITE["derivatives"]["first_derivative"]["3D"]["z"] = @benchmarkable $u3 .= $Dz*$v3
48
49
50 SUITE["derivatives"]["second_derivative"] = BenchmarkGroup()
51
52 D₁ = second_derivative(g1,stencil_set)
53 SUITE["derivatives"]["second_derivative"]["1D"] = @benchmarkable $u1 .= $D₁*$v1
54
55 Dx = second_derivative(g2,stencil_set,1)
56 Dy = second_derivative(g2,stencil_set,2)
57 SUITE["derivatives"]["second_derivative"]["2D"] = BenchmarkGroup()
58 SUITE["derivatives"]["second_derivative"]["2D"]["x"] = @benchmarkable $u2 .= $Dx*$v2
59 SUITE["derivatives"]["second_derivative"]["2D"]["y"] = @benchmarkable $u2 .= $Dy*$v2
60
61 Dx = second_derivative(g3,stencil_set,1)
62 Dy = second_derivative(g3,stencil_set,2)
63 Dz = second_derivative(g3,stencil_set,3)
64 SUITE["derivatives"]["second_derivative"]["3D"] = BenchmarkGroup()
65 SUITE["derivatives"]["second_derivative"]["3D"]["x"] = @benchmarkable $u3 .= $Dx*$v3
66 SUITE["derivatives"]["second_derivative"]["3D"]["y"] = @benchmarkable $u3 .= $Dy*$v3
67 SUITE["derivatives"]["second_derivative"]["3D"]["z"] = @benchmarkable $u3 .= $Dz*$v3
68
11 69
12 SUITE 70 SUITE