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: README.md
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,8 @@ AAF and solver benchmarking and analysis toolkit.
4
4
# Quick start
5
5
The archive contains a full, ready to use environment in the `install-final` folder. To rebuild from source: ensure the necessary dependencies (CMake, Boost, a recent version of GCC/Clang) are installed; in the root `CMakeLists.txt`, configure `INSTALL\_PREF` as desired; `cd build` and run `make install`.
6
6
7
+
Then place some graphs into store/graphs (or use the -g/-d options to specify graphs), run `graph\_analyser` to generate metric scores and/or `benchmarker` with proper options (see `benchmarker -h`) to generate solver performance data, and then either peruse the store or generate an report on the data using `report\_generator -t <type> [other options]` (see `report\_generator -h` for more information).
8
+
7
9
## Installation
8
10
### Prerequisites
9
11
* Cmake
@@ -76,5 +78,17 @@ As an alternative, any executable file in the directory `store/external-metrics`
76
78
77
79
This allows new metrics to be easily created without recompiling any other code; it also gives a lot of flexibility in how metrics are developed - the executable could be anything from a Python script to a wrapper calling an external tool located elsewhere.
78
80
81
+
### Graph hashing
82
+
Graphs are hashed with SpookyHash (http://burtleburtle.net/bob/hash/spooky.html) to ensure no duplication. `graph_mapper` can be used to quickly check what a graph's hash is, or what graph file a hash belongs to. The file `store/graphhashmap` stores key-value pairs between graph filepath and hash, as a cache, and can also be easily explored or `grep`ed manually.
83
+
84
+
## Store
85
+
The store is where all the data is saved; here is an overview of its structure.
86
+
### `graph-scores`
87
+
Each file here corresponds to a graph. The format of the files should be self-explanatory: each line gives the value of a metric.
88
+
### `bench-solutions`
89
+
Here the solutions for every problem are stored, in subdirectories corresponding to each graph. Each problem has its own file, named after the problem, containing the output of the reference solver used verbatim
90
+
### `benchmarks`
91
+
The output of benchmark runs. Each subfolder here corresponds to a solver. Inside a solver's folder, there is a subfolder for every run ID, inside of which the actual run information is stored. Each benchmark run has a subfolder for every graph, inside which each problem has either 1 or 2 corresponding files named after it: a `<PROBLEM>.stat` file and a `<PROBLEM>.output` file. The latter contains the solver output verbatim, and may not be kept depending on the options passed to `benchmarker` (by default, only outputs for incorrect solutions are kept; you can also specify the max size of solutions to keep). The .stat file contains the performance data of the solver.
92
+
79
93
# License
80
94
This program is released under the GNU General Public License, version 3 or (at your option) any later version. For more information, see LICENSE.txt or https://www.gnu.org/licenses/.
{ std::cerr << "WARNING: Reference solver path does not point to a file. Double-check the filepath. Skipping graphs with no existing solutions." << std::endl;
0 commit comments