Mercurial > repos > public > sbplib_julia
annotate benchmark/benchmarks.jl @ 1304:37d615522c2f tooling/benchmarks
Add a simple benchmark demonstrating allocations with compositions
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Wed, 26 Apr 2023 13:08:05 +0200 |
| parents | 58a7aa15ce68 |
| children | 6ae9b98b15b9 |
| rev | line source |
|---|---|
| 1171 | 1 using BenchmarkTools |
|
1198
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
2 using Sbplib |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
3 using Sbplib.Grids |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
4 using Sbplib.SbpOperators |
|
1211
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
5 using Sbplib.RegionIndices |
| 1171 | 6 |
| 7 const SUITE = BenchmarkGroup() | |
| 8 | |
|
1198
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
9 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
10 sz(d) = ntuple(i->100, d) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
11 ll(d) = ntuple(i->0., d) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
12 lu(d) = ntuple(i->1., d) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
13 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
14 g1 = EquidistantGrid(sz(1),ll(1),lu(1)) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
15 g2 = EquidistantGrid(sz(2),ll(2),lu(2)) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
16 g3 = EquidistantGrid(sz(3),ll(3),lu(3)) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
17 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
18 v1 = rand(sz(1)...) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
19 v2 = rand(sz(2)...) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
20 v3 = rand(sz(3)...) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
21 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
22 u1 = rand(sz(1)...) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
23 u2 = rand(sz(2)...) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
24 u3 = rand(sz(3)...) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
25 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
26 stencil_set = read_stencil_set(joinpath(sbp_operators_path(),"standard_diagonal.toml"); order=4) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
27 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
28 SUITE["derivatives"] = BenchmarkGroup() |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
29 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
30 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
31 SUITE["derivatives"]["first_derivative"] = BenchmarkGroup() |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
32 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
33 D₁ = first_derivative(g1,stencil_set) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
34 SUITE["derivatives"]["first_derivative"]["1D"] = @benchmarkable $u1 .= $D₁*$v1 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
35 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
36 Dx = first_derivative(g2,stencil_set,1) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
37 Dy = first_derivative(g2,stencil_set,2) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
38 SUITE["derivatives"]["first_derivative"]["2D"] = BenchmarkGroup() |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
39 SUITE["derivatives"]["first_derivative"]["2D"]["x"] = @benchmarkable $u2 .= $Dx*$v2 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
40 SUITE["derivatives"]["first_derivative"]["2D"]["y"] = @benchmarkable $u2 .= $Dy*$v2 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
41 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
42 Dx = first_derivative(g3,stencil_set,1) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
43 Dy = first_derivative(g3,stencil_set,2) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
44 Dz = first_derivative(g3,stencil_set,3) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
45 SUITE["derivatives"]["first_derivative"]["3D"] = BenchmarkGroup() |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
46 SUITE["derivatives"]["first_derivative"]["3D"]["x"] = @benchmarkable $u3 .= $Dx*$v3 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
47 SUITE["derivatives"]["first_derivative"]["3D"]["y"] = @benchmarkable $u3 .= $Dy*$v3 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
48 SUITE["derivatives"]["first_derivative"]["3D"]["z"] = @benchmarkable $u3 .= $Dz*$v3 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
49 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
50 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
51 SUITE["derivatives"]["second_derivative"] = BenchmarkGroup() |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
52 |
| 1199 | 53 D₂ = second_derivative(g1,stencil_set) |
| 54 SUITE["derivatives"]["second_derivative"]["1D"] = @benchmarkable $u1 .= $D₂*$v1 | |
|
1198
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
55 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
56 Dx = second_derivative(g2,stencil_set,1) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
57 Dy = second_derivative(g2,stencil_set,2) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
58 SUITE["derivatives"]["second_derivative"]["2D"] = BenchmarkGroup() |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
59 SUITE["derivatives"]["second_derivative"]["2D"]["x"] = @benchmarkable $u2 .= $Dx*$v2 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
60 SUITE["derivatives"]["second_derivative"]["2D"]["y"] = @benchmarkable $u2 .= $Dy*$v2 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
61 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
62 Dx = second_derivative(g3,stencil_set,1) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
63 Dy = second_derivative(g3,stencil_set,2) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
64 Dz = second_derivative(g3,stencil_set,3) |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
65 SUITE["derivatives"]["second_derivative"]["3D"] = BenchmarkGroup() |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
66 SUITE["derivatives"]["second_derivative"]["3D"]["x"] = @benchmarkable $u3 .= $Dx*$v3 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
67 SUITE["derivatives"]["second_derivative"]["3D"]["y"] = @benchmarkable $u3 .= $Dy*$v3 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
68 SUITE["derivatives"]["second_derivative"]["3D"]["z"] = @benchmarkable $u3 .= $Dz*$v3 |
|
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
69 |
| 1171 | 70 |
| 1199 | 71 |
| 72 SUITE["derivatives"]["addition"] = BenchmarkGroup() | |
| 73 | |
| 74 D₁ = first_derivative(g1,stencil_set) | |
| 75 D₂ = second_derivative(g1,stencil_set) | |
| 76 SUITE["derivatives"]["addition"]["1D"] = BenchmarkGroup() | |
| 77 SUITE["derivatives"]["addition"]["1D"]["apply,add"] = @benchmarkable $u1 .= $D₁*$v1 + $D₂*$v1 | |
| 78 SUITE["derivatives"]["addition"]["1D"]["add,apply"] = @benchmarkable $u1 .= ($D₁ + $D₂)*$v1 | |
| 79 | |
| 80 Dxx = second_derivative(g2,stencil_set,1) | |
| 81 Dyy = second_derivative(g2,stencil_set,2) | |
| 82 SUITE["derivatives"]["addition"]["2D"] = BenchmarkGroup() | |
| 83 SUITE["derivatives"]["addition"]["2D"]["apply,add"] = @benchmarkable $u2 .= $Dxx*$v2 + $Dyy*$v2 | |
| 84 SUITE["derivatives"]["addition"]["2D"]["add,apply"] = @benchmarkable $u2 .= ($Dxx + $Dyy)*$v2 | |
| 85 | |
| 86 Dxx = second_derivative(g3,stencil_set,1) | |
| 87 Dyy = second_derivative(g3,stencil_set,2) | |
| 88 Dzz = second_derivative(g3,stencil_set,3) | |
| 89 SUITE["derivatives"]["addition"]["3D"] = BenchmarkGroup() | |
| 90 SUITE["derivatives"]["addition"]["3D"]["apply,add"] = @benchmarkable $u3 .= $Dxx*$v3 + $Dyy*$v3 + $Dzz*$v3 | |
| 91 SUITE["derivatives"]["addition"]["3D"]["add,apply"] = @benchmarkable $u3 .= ($Dxx + $Dyy + $Dzz)*$v3 | |
| 92 | |
| 93 | |
| 94 SUITE["derivatives"]["composition"] = BenchmarkGroup() | |
| 95 | |
| 96 Dx = first_derivative(g1,stencil_set) | |
| 97 SUITE["derivatives"]["composition"]["1D"] = BenchmarkGroup() | |
| 98 SUITE["derivatives"]["composition"]["1D"]["apply,apply"] = @benchmarkable $u1 .= $Dx*($Dx*$v1) | |
| 99 SUITE["derivatives"]["composition"]["1D"]["compose,apply"] = @benchmarkable $u1 .= ($Dx∘$Dx)*$v1 | |
| 100 | |
| 101 Dx = first_derivative(g2,stencil_set,1) | |
| 102 Dy = first_derivative(g2,stencil_set,2) | |
| 103 SUITE["derivatives"]["composition"]["2D"] = BenchmarkGroup() | |
| 104 SUITE["derivatives"]["composition"]["2D"]["apply,apply"] = @benchmarkable $u2 .= $Dy*($Dx*$v2) | |
| 105 SUITE["derivatives"]["composition"]["2D"]["compose,apply"] = @benchmarkable $u2 .= ($Dy∘$Dx)*$v2 | |
| 106 | |
| 107 Dx = first_derivative(g3,stencil_set,1) | |
| 108 Dy = first_derivative(g3,stencil_set,2) | |
| 109 Dz = first_derivative(g3,stencil_set,3) | |
| 110 SUITE["derivatives"]["composition"]["3D"] = BenchmarkGroup() | |
| 111 SUITE["derivatives"]["composition"]["3D"]["xy"] = BenchmarkGroup() | |
| 112 SUITE["derivatives"]["composition"]["3D"]["xy"]["apply,apply"] = @benchmarkable $u3 .= $Dx*($Dy*$v3) | |
| 113 SUITE["derivatives"]["composition"]["3D"]["xy"]["compose,apply"] = @benchmarkable $u3 .= ($Dx∘$Dy)*$v3 | |
| 114 | |
| 115 SUITE["derivatives"]["composition"]["3D"]["yz"] = BenchmarkGroup() | |
| 116 SUITE["derivatives"]["composition"]["3D"]["yz"]["apply,apply"] = @benchmarkable $u3 .= $Dy*($Dz*$v3) | |
| 117 SUITE["derivatives"]["composition"]["3D"]["yz"]["compose,apply"] = @benchmarkable $u3 .= ($Dy∘$Dz)*$v3 | |
| 118 | |
| 119 SUITE["derivatives"]["composition"]["3D"]["xz"] = BenchmarkGroup() | |
| 120 SUITE["derivatives"]["composition"]["3D"]["xz"]["apply,apply"] = @benchmarkable $u3 .= $Dx*($Dz*$v3) | |
| 121 SUITE["derivatives"]["composition"]["3D"]["xz"]["compose,apply"] = @benchmarkable $u3 .= ($Dx∘$Dz)*$v3 | |
| 122 | |
| 123 SUITE["derivatives"]["composition"]["3D"]["xx"] = BenchmarkGroup() | |
| 124 SUITE["derivatives"]["composition"]["3D"]["xx"]["apply,apply"] = @benchmarkable $u3 .= $Dx*($Dx*$v3) | |
| 125 SUITE["derivatives"]["composition"]["3D"]["xx"]["compose,apply"] = @benchmarkable $u3 .= ($Dx∘$Dx)*$v3 | |
| 126 | |
| 127 SUITE["derivatives"]["composition"]["3D"]["yy"] = BenchmarkGroup() | |
| 128 SUITE["derivatives"]["composition"]["3D"]["yy"]["apply,apply"] = @benchmarkable $u3 .= $Dy*($Dy*$v3) | |
| 129 SUITE["derivatives"]["composition"]["3D"]["yy"]["compose,apply"] = @benchmarkable $u3 .= ($Dy∘$Dy)*$v3 | |
| 130 | |
| 131 SUITE["derivatives"]["composition"]["3D"]["zz"] = BenchmarkGroup() | |
| 132 SUITE["derivatives"]["composition"]["3D"]["zz"]["apply,apply"] = @benchmarkable $u3 .= $Dz*($Dz*$v3) | |
| 133 SUITE["derivatives"]["composition"]["3D"]["zz"]["compose,apply"] = @benchmarkable $u3 .= ($Dz∘$Dz)*$v3 | |
| 134 | |
|
1211
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
135 |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
136 SUITE["boundary_terms"] = BenchmarkGroup() |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
137 |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
138 H = inner_product(g2, stencil_set) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
139 H⁻¹ = inverse_inner_product(g2, stencil_set) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
140 Dxx = second_derivative(g2, stencil_set, 1) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
141 Dyy = second_derivative(g2, stencil_set, 2) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
142 |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
143 e₁ₗ = boundary_restriction(g2, stencil_set, CartesianBoundary{1,Lower}()) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
144 e₁ᵤ = boundary_restriction(g2, stencil_set, CartesianBoundary{1,Upper}()) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
145 e₂ₗ = boundary_restriction(g2, stencil_set, CartesianBoundary{2,Lower}()) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
146 e₂ᵤ = boundary_restriction(g2, stencil_set, CartesianBoundary{2,Upper}()) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
147 |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
148 d₁ₗ = normal_derivative(g2, stencil_set, CartesianBoundary{1,Lower}()) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
149 d₁ᵤ = normal_derivative(g2, stencil_set, CartesianBoundary{1,Upper}()) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
150 d₂ₗ = normal_derivative(g2, stencil_set, CartesianBoundary{2,Lower}()) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
151 d₂ᵤ = normal_derivative(g2, stencil_set, CartesianBoundary{2,Upper}()) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
152 |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
153 H₁ₗ = inner_product(boundary_grid(g2, CartesianBoundary{1,Lower}()), stencil_set) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
154 H₁ᵤ = inner_product(boundary_grid(g2, CartesianBoundary{1,Upper}()), stencil_set) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
155 H₂ₗ = inner_product(boundary_grid(g2, CartesianBoundary{2,Lower}()), stencil_set) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
156 H₂ᵤ = inner_product(boundary_grid(g2, CartesianBoundary{2,Upper}()), stencil_set) |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
157 |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
158 SUITE["boundary_terms"]["pre_composition"] = @benchmarkable $u2 .= $(H⁻¹∘e₁ₗ'∘H₁ₗ∘d₁ₗ)*$v2 |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
159 SUITE["boundary_terms"]["composition"] = @benchmarkable $u2 .= ($H⁻¹∘$e₁ₗ'∘$H₁ₗ∘$d₁ₗ)*$v2 |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
160 SUITE["boundary_terms"]["application"] = @benchmarkable $u2 .= $H⁻¹*$e₁ₗ'*$H₁ₗ* $d₁ₗ*$v2 |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
161 # An investigation of these allocations can be found in the branch `allocation_test` |
|
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
162 |
| 1199 | 163 #TODO: Reorg with dimension as first level? To reduce operator creation? |
| 164 | |
|
1304
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
165 |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
166 |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
167 SUITE["lazy_tensors"] = BenchmarkGroup() |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
168 |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
169 SUITE["lazy_tensors"]["compositions"] = BenchmarkGroup() |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
170 s = ScalingTensor(1.,(10,)) |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
171 u = rand(10) |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
172 v = similar(u) |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
173 s3 = s∘s∘s |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
174 s4 = s∘s∘s∘s |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
175 SUITE["lazy_tensors"]["compositions"]["s∘s∘s"] = @benchmarkable $v .= $s3*$u |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
176 SUITE["lazy_tensors"]["compositions"]["s∘s∘s∘s"] = @benchmarkable $v .= $s4*$u |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
177 |
|
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
178 |
| 1171 | 179 SUITE |
