You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: BENCHMARKING.md
+17-9
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,11 @@ utility](https://github.com/ginkgo-project/ssget) has to be installed on the
17
17
system. The purpose of this file is to explain in detail the capacities of this
18
18
benchmarking suite as well as how to properly setup everything.
19
19
20
-
There are two ways to benchmark `ginkgo`. When compiling the benchmark suite, executables are generated for collecting matrix statistics, running sparse-matrix vector product, solvers (possibly distributed) benchmarks. Another way to run benchmarks is through the convenience script `run_all_benchmarks.sh`, but not all features are exposed through this tool!
20
+
There are two ways to benchmark Ginkgo. When compiling the benchmark suite,
21
+
executables are generated for collecting matrix statistics, running
22
+
sparse-matrix vector product, solvers (possibly distributed) benchmarks. Another
23
+
way to run benchmarks is through the convenience script `run_all_benchmarks.sh`,
24
+
but not all features are exposed through this tool!
21
25
22
26
Here is a short description of the content of this file:
23
27
1. Ginkgo setup and best practice guidelines
@@ -114,8 +118,8 @@ done
114
118
```
115
119
116
120
### 3: Running benchmarks manually
117
-
When compiling `ginkgo` with the flag `-DGINKGO_BUILD_BENCHMARKS=on`, a suite of
118
-
executables will be generated depending on the `CMake` configuration. These
121
+
When compiling Ginkgo with the flag `-DGINKGO_BUILD_BENCHMARKS=ON`, a suite of
122
+
executables will be generated depending on the CMake configuration. These
119
123
executables are the backbone of the benchmarking suite. Note that all of these
120
124
executables describe the available options and the required input format when
121
125
running them with the `--help` option. All executables have multiple variants
@@ -165,7 +169,10 @@ case, and many other benchmarks the following minimal input should be provided:
165
169
```
166
170
The files have to be in matrix market format.
167
171
168
-
Some benchmarks require some extra fields. For example the solver benchmarks requires the field `"optimal": {"spmv": "matrix format (such as csr)"}`. This is automatically populated when running the `spmv` benchmark which finds the optimal (fastest) format among all requested formats.
172
+
Some benchmarks require some extra fields. For example the solver benchmarks
173
+
requires the field `"optimal": {"spmv": "matrix format (such as csr)"}`. This is
174
+
automatically populated when running the `spmv` benchmark which finds the
175
+
optimal (fastest) format among all requested formats.
169
176
170
177
After writing the necessary data in a JSON file, the benchmark can be called by
171
178
passing in the input via stdin, i.e.
@@ -174,7 +181,8 @@ passing in the input via stdin, i.e.
174
181
./solver < input.json
175
182
```
176
183
177
-
The output of our benchmarks is again JSON, and it is printed to stdout, while our status messages are printed to stderr. So, the output can be stored with
184
+
The output of our benchmarks is again JSON, and it is printed to stdout, while
185
+
our status messages are printed to stderr. So, the output can be stored with
178
186
179
187
```
180
188
./solver < input.json > output.json
@@ -312,10 +320,10 @@ log the time taken by all operations. These features are also available in the
312
320
to analyze Ginkgo's performance.
313
321
314
322
These features are implemented thanks to the loggers located in the file
315
-
`${ginkgo_src_dir}/benchmark/utils/loggers.hpp`. Ginkgo possesses hooks at all important code
316
-
location points which can be inspected thanks to the logger. In this fashion, it
317
-
is easy to use these loggers also for tracking memory allocation sizes and other
318
-
important library aspects.
323
+
`${ginkgo_src_dir}/benchmark/utils/loggers.hpp`. Ginkgo possesses hooks at all
324
+
important code location points which can be inspected thanks to the logger. In
325
+
this fashion, it is easy to use these loggers also for tracking memory
326
+
allocation sizes and other important library aspects.
0 commit comments