Mercurial > repos > public > sbplib_julia
annotate benchmark/benchmarks.jl @ 1634:29c7a787e67d
Fix bug in benchmarks.jl
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 25 Jun 2024 15:31:29 +0200 |
parents | 43aaf710463e |
children | b62770cec7d0 |
rev | line source |
---|---|
1171 | 1 using BenchmarkTools |
1375 | 2 |
1198
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
3 using Sbplib |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
4 using Sbplib.Grids |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
5 using Sbplib.SbpOperators |
1211
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
6 using Sbplib.RegionIndices |
1314
6ae9b98b15b9
Add missing import of LazyTensors in benchmarks.jl
Jonatan Werpers <jonatan@werpers.com>
parents:
1304
diff
changeset
|
7 using Sbplib.LazyTensors |
1171 | 8 |
1375 | 9 using LinearAlgebra |
10 | |
1171 | 11 const SUITE = BenchmarkGroup() |
12 | |
1198
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 sz(d) = ntuple(i->100, d) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
15 ll(d) = ntuple(i->0., d) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
16 lu(d) = ntuple(i->1., d) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
17 |
1634
29c7a787e67d
Fix bug in benchmarks.jl
Jonatan Werpers <jonatan@werpers.com>
parents:
1529
diff
changeset
|
18 g1 = equidistant_grid(ll(1)[1], lu(1)[1], sz(1)...) |
29c7a787e67d
Fix bug in benchmarks.jl
Jonatan Werpers <jonatan@werpers.com>
parents:
1529
diff
changeset
|
19 g2 = equidistant_grid(ll(2), lu(2), sz(2)...) |
29c7a787e67d
Fix bug in benchmarks.jl
Jonatan Werpers <jonatan@werpers.com>
parents:
1529
diff
changeset
|
20 g3 = equidistant_grid(ll(3), lu(3), sz(3)...) |
1198
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 v1 = rand(sz(1)...) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
23 v2 = rand(sz(2)...) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
24 v3 = 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 u1 = rand(sz(1)...) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
27 u2 = rand(sz(2)...) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
28 u3 = rand(sz(3)...) |
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 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
|
31 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
32 SUITE["derivatives"] = BenchmarkGroup() |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
33 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
34 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
35 SUITE["derivatives"]["first_derivative"] = BenchmarkGroup() |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
36 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
37 D₁ = first_derivative(g1,stencil_set) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
38 SUITE["derivatives"]["first_derivative"]["1D"] = @benchmarkable $u1 .= $D₁*$v1 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
39 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
40 Dx = first_derivative(g2,stencil_set,1) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
41 Dy = first_derivative(g2,stencil_set,2) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
42 SUITE["derivatives"]["first_derivative"]["2D"] = BenchmarkGroup() |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
43 SUITE["derivatives"]["first_derivative"]["2D"]["x"] = @benchmarkable $u2 .= $Dx*$v2 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
44 SUITE["derivatives"]["first_derivative"]["2D"]["y"] = @benchmarkable $u2 .= $Dy*$v2 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
45 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
46 Dx = first_derivative(g3,stencil_set,1) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
47 Dy = first_derivative(g3,stencil_set,2) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
48 Dz = first_derivative(g3,stencil_set,3) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
49 SUITE["derivatives"]["first_derivative"]["3D"] = BenchmarkGroup() |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
50 SUITE["derivatives"]["first_derivative"]["3D"]["x"] = @benchmarkable $u3 .= $Dx*$v3 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
51 SUITE["derivatives"]["first_derivative"]["3D"]["y"] = @benchmarkable $u3 .= $Dy*$v3 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
52 SUITE["derivatives"]["first_derivative"]["3D"]["z"] = @benchmarkable $u3 .= $Dz*$v3 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
53 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
54 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
55 SUITE["derivatives"]["second_derivative"] = BenchmarkGroup() |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
56 |
1199 | 57 D₂ = second_derivative(g1,stencil_set) |
58 SUITE["derivatives"]["second_derivative"]["1D"] = @benchmarkable $u1 .= $D₂*$v1 | |
1198
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
59 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
60 Dx = second_derivative(g2,stencil_set,1) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
61 Dy = second_derivative(g2,stencil_set,2) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
62 SUITE["derivatives"]["second_derivative"]["2D"] = BenchmarkGroup() |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
63 SUITE["derivatives"]["second_derivative"]["2D"]["x"] = @benchmarkable $u2 .= $Dx*$v2 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
64 SUITE["derivatives"]["second_derivative"]["2D"]["y"] = @benchmarkable $u2 .= $Dy*$v2 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
65 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
66 Dx = second_derivative(g3,stencil_set,1) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
67 Dy = second_derivative(g3,stencil_set,2) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
68 Dz = second_derivative(g3,stencil_set,3) |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
69 SUITE["derivatives"]["second_derivative"]["3D"] = BenchmarkGroup() |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
70 SUITE["derivatives"]["second_derivative"]["3D"]["x"] = @benchmarkable $u3 .= $Dx*$v3 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
71 SUITE["derivatives"]["second_derivative"]["3D"]["y"] = @benchmarkable $u3 .= $Dy*$v3 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
72 SUITE["derivatives"]["second_derivative"]["3D"]["z"] = @benchmarkable $u3 .= $Dz*$v3 |
5d4a15d6118f
Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1190
diff
changeset
|
73 |
1171 | 74 |
1375 | 75 SUITE["derivatives"]["second_derivative_variable"] = BenchmarkGroup() |
76 | |
77 c1 = map(x->sin(x)+2, g1) | |
78 D₂ = second_derivative_variable(g1, c1, stencil_set) | |
79 SUITE["derivatives"]["second_derivative_variable"]["1D"] = @benchmarkable $u1 .= $D₂*$v1 | |
80 | |
81 c2 = map(x->sin(x[1] + x[2])+2, g2) | |
82 Dx = second_derivative_variable(g2, c2, stencil_set, 1) | |
83 Dy = second_derivative_variable(g2, c2, stencil_set, 2) | |
84 SUITE["derivatives"]["second_derivative_variable"]["2D"] = BenchmarkGroup() | |
85 SUITE["derivatives"]["second_derivative_variable"]["2D"]["x"] = @benchmarkable $u2 .= $Dx*$v2 | |
86 SUITE["derivatives"]["second_derivative_variable"]["2D"]["y"] = @benchmarkable $u2 .= $Dy*$v2 | |
87 | |
88 c3 = map(x->sin(norm(x))+2, g3) | |
89 Dx = second_derivative_variable(g3, c3, stencil_set, 1) | |
90 Dy = second_derivative_variable(g3, c3, stencil_set, 2) | |
91 Dz = second_derivative_variable(g3, c3, stencil_set, 3) | |
92 SUITE["derivatives"]["second_derivative_variable"]["3D"] = BenchmarkGroup() | |
93 SUITE["derivatives"]["second_derivative_variable"]["3D"]["x"] = @benchmarkable $u3 .= $Dx*$v3 | |
94 SUITE["derivatives"]["second_derivative_variable"]["3D"]["y"] = @benchmarkable $u3 .= $Dy*$v3 | |
95 SUITE["derivatives"]["second_derivative_variable"]["3D"]["z"] = @benchmarkable $u3 .= $Dz*$v3 | |
96 | |
97 | |
98 | |
1199 | 99 |
100 SUITE["derivatives"]["addition"] = BenchmarkGroup() | |
101 | |
102 D₁ = first_derivative(g1,stencil_set) | |
103 D₂ = second_derivative(g1,stencil_set) | |
104 SUITE["derivatives"]["addition"]["1D"] = BenchmarkGroup() | |
105 SUITE["derivatives"]["addition"]["1D"]["apply,add"] = @benchmarkable $u1 .= $D₁*$v1 + $D₂*$v1 | |
106 SUITE["derivatives"]["addition"]["1D"]["add,apply"] = @benchmarkable $u1 .= ($D₁ + $D₂)*$v1 | |
107 | |
108 Dxx = second_derivative(g2,stencil_set,1) | |
109 Dyy = second_derivative(g2,stencil_set,2) | |
110 SUITE["derivatives"]["addition"]["2D"] = BenchmarkGroup() | |
111 SUITE["derivatives"]["addition"]["2D"]["apply,add"] = @benchmarkable $u2 .= $Dxx*$v2 + $Dyy*$v2 | |
112 SUITE["derivatives"]["addition"]["2D"]["add,apply"] = @benchmarkable $u2 .= ($Dxx + $Dyy)*$v2 | |
113 | |
114 Dxx = second_derivative(g3,stencil_set,1) | |
115 Dyy = second_derivative(g3,stencil_set,2) | |
116 Dzz = second_derivative(g3,stencil_set,3) | |
117 SUITE["derivatives"]["addition"]["3D"] = BenchmarkGroup() | |
118 SUITE["derivatives"]["addition"]["3D"]["apply,add"] = @benchmarkable $u3 .= $Dxx*$v3 + $Dyy*$v3 + $Dzz*$v3 | |
119 SUITE["derivatives"]["addition"]["3D"]["add,apply"] = @benchmarkable $u3 .= ($Dxx + $Dyy + $Dzz)*$v3 | |
120 | |
121 | |
122 SUITE["derivatives"]["composition"] = BenchmarkGroup() | |
123 | |
124 Dx = first_derivative(g1,stencil_set) | |
125 SUITE["derivatives"]["composition"]["1D"] = BenchmarkGroup() | |
126 SUITE["derivatives"]["composition"]["1D"]["apply,apply"] = @benchmarkable $u1 .= $Dx*($Dx*$v1) | |
127 SUITE["derivatives"]["composition"]["1D"]["compose,apply"] = @benchmarkable $u1 .= ($Dx∘$Dx)*$v1 | |
128 | |
129 Dx = first_derivative(g2,stencil_set,1) | |
130 Dy = first_derivative(g2,stencil_set,2) | |
131 SUITE["derivatives"]["composition"]["2D"] = BenchmarkGroup() | |
132 SUITE["derivatives"]["composition"]["2D"]["apply,apply"] = @benchmarkable $u2 .= $Dy*($Dx*$v2) | |
133 SUITE["derivatives"]["composition"]["2D"]["compose,apply"] = @benchmarkable $u2 .= ($Dy∘$Dx)*$v2 | |
134 | |
135 Dx = first_derivative(g3,stencil_set,1) | |
136 Dy = first_derivative(g3,stencil_set,2) | |
137 Dz = first_derivative(g3,stencil_set,3) | |
138 SUITE["derivatives"]["composition"]["3D"] = BenchmarkGroup() | |
139 SUITE["derivatives"]["composition"]["3D"]["xy"] = BenchmarkGroup() | |
140 SUITE["derivatives"]["composition"]["3D"]["xy"]["apply,apply"] = @benchmarkable $u3 .= $Dx*($Dy*$v3) | |
141 SUITE["derivatives"]["composition"]["3D"]["xy"]["compose,apply"] = @benchmarkable $u3 .= ($Dx∘$Dy)*$v3 | |
142 | |
143 SUITE["derivatives"]["composition"]["3D"]["yz"] = BenchmarkGroup() | |
144 SUITE["derivatives"]["composition"]["3D"]["yz"]["apply,apply"] = @benchmarkable $u3 .= $Dy*($Dz*$v3) | |
145 SUITE["derivatives"]["composition"]["3D"]["yz"]["compose,apply"] = @benchmarkable $u3 .= ($Dy∘$Dz)*$v3 | |
146 | |
147 SUITE["derivatives"]["composition"]["3D"]["xz"] = BenchmarkGroup() | |
148 SUITE["derivatives"]["composition"]["3D"]["xz"]["apply,apply"] = @benchmarkable $u3 .= $Dx*($Dz*$v3) | |
149 SUITE["derivatives"]["composition"]["3D"]["xz"]["compose,apply"] = @benchmarkable $u3 .= ($Dx∘$Dz)*$v3 | |
150 | |
151 SUITE["derivatives"]["composition"]["3D"]["xx"] = BenchmarkGroup() | |
152 SUITE["derivatives"]["composition"]["3D"]["xx"]["apply,apply"] = @benchmarkable $u3 .= $Dx*($Dx*$v3) | |
153 SUITE["derivatives"]["composition"]["3D"]["xx"]["compose,apply"] = @benchmarkable $u3 .= ($Dx∘$Dx)*$v3 | |
154 | |
155 SUITE["derivatives"]["composition"]["3D"]["yy"] = BenchmarkGroup() | |
156 SUITE["derivatives"]["composition"]["3D"]["yy"]["apply,apply"] = @benchmarkable $u3 .= $Dy*($Dy*$v3) | |
157 SUITE["derivatives"]["composition"]["3D"]["yy"]["compose,apply"] = @benchmarkable $u3 .= ($Dy∘$Dy)*$v3 | |
158 | |
159 SUITE["derivatives"]["composition"]["3D"]["zz"] = BenchmarkGroup() | |
160 SUITE["derivatives"]["composition"]["3D"]["zz"]["apply,apply"] = @benchmarkable $u3 .= $Dz*($Dz*$v3) | |
161 SUITE["derivatives"]["composition"]["3D"]["zz"]["compose,apply"] = @benchmarkable $u3 .= ($Dz∘$Dz)*$v3 | |
162 | |
1211
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
163 |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
164 SUITE["boundary_terms"] = BenchmarkGroup() |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
165 |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
166 H = inner_product(g2, stencil_set) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
167 H⁻¹ = inverse_inner_product(g2, stencil_set) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
168 Dxx = second_derivative(g2, stencil_set, 1) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
169 Dyy = second_derivative(g2, stencil_set, 2) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
170 |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
171 e₁ₗ = boundary_restriction(g2, stencil_set, CartesianBoundary{1,Lower}()) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
172 e₁ᵤ = boundary_restriction(g2, stencil_set, CartesianBoundary{1,Upper}()) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
173 e₂ₗ = boundary_restriction(g2, stencil_set, CartesianBoundary{2,Lower}()) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
174 e₂ᵤ = boundary_restriction(g2, stencil_set, CartesianBoundary{2,Upper}()) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
175 |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
176 d₁ₗ = normal_derivative(g2, stencil_set, CartesianBoundary{1,Lower}()) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
177 d₁ᵤ = normal_derivative(g2, stencil_set, CartesianBoundary{1,Upper}()) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
178 d₂ₗ = normal_derivative(g2, stencil_set, CartesianBoundary{2,Lower}()) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
179 d₂ᵤ = normal_derivative(g2, stencil_set, CartesianBoundary{2,Upper}()) |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
180 |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
181 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
|
182 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
|
183 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
|
184 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
|
185 |
58a7aa15ce68
Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents:
1199
diff
changeset
|
186 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
|
187 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
|
188 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
|
189 # 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
|
190 |
1199 | 191 #TODO: Reorg with dimension as first level? To reduce operator creation? |
192 | |
1304
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
193 |
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
194 |
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
195 SUITE["lazy_tensors"] = BenchmarkGroup() |
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
196 |
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
197 SUITE["lazy_tensors"]["compositions"] = BenchmarkGroup() |
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
198 s = ScalingTensor(1.,(10,)) |
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
199 u = rand(10) |
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
200 v = similar(u) |
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
201 s3 = s∘s∘s |
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
202 s4 = s∘s∘s∘s |
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
203 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
|
204 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
|
205 |
37d615522c2f
Add a simple benchmark demonstrating allocations with compositions
Jonatan Werpers <jonatan@werpers.com>
parents:
1211
diff
changeset
|
206 |
1171 | 207 SUITE |