Mercurial > repos > public > sbplib_julia
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 |