Organisationsocaml-multicoremulticore-benchbranch/mainBuild History

Build History for branch/main

Builds (67)
Ignore results from ops on `ref` benchmarks This prevents the `get` op from being optimized away and makes some other operations also more realistic.
deca52
Bench and test with OCaml 5.3 and drop <5.2.1 from Windows tests
c4f3be
Upgrade to ocamlformat 0.27.0
01ef4e
Release notes for 0.1.7
223ae0
Ensure `sherlodoc` is installed when generating docs
5d0d02
Move private function used only once out of module scope
b0dd43
Avoid `include` of modules
afca10
`s/a require/require a/`
06e7bd
Updated changes
bd7d61
Add a scalable `Countdown` counter
b1fe90
Use a loop to reduce code size
56caff
Port to 4.12
fa0f4e
Release notes for 0.1.6
80066b
Fail when benchmark results have duplicates
c49274
More careful error handling and finalization Errors raised from benchmark callbacks should now properly stop the timing and backtrace should be preserved.
26883f
Add a naïve bounded queue benchmark
298c5d
Add a benchmark of atomic increments
e041b0
Release notes for 0.1.4
3f59d0
Test on 5.2.0 on Windows on CI
556ad0
Automatically filter benchmarks to run by given diff base file This makes it more convenient to run diffs against only specific benchmarks.
23ba8f
Randomize the order of benchmark suites by default The intention behind this is to try to account for things that might put the runtime into a state where it has major effects on specific benchmarks. After randomizing, we should see variation from run to run rather than e.g. having the potential effects only shown in specific suites.
fcdd27
Fix tests to pass on FreeBSD
3ea8ca
Release notes for 0.1.3
1cdcac
Use a more flexible signature for `Metric.make`
7b1dea
More flexible typing
3eb781
Use `^` instead of `+` in documentation for string concatenation
ade52c
Add `Metric.make` to support ad hoc metrics
afb537
Upgrade ocamlformat from `0.26.1` to `0.26.2`
c1cc3c
Bench on 5.2.x
afa57b
Avoid duplication
b8e6a4
Use `replace` instead of `add` This is more in line with with other benchmarks of hash tables
c91003
Add `Hashtbl` benchmark
81746e
Link to benchmarks on Picos
ae733d
Add a minimalist `Unix` IO benchmark
b79ac0
Link to benchmarks on `pascal`
497782
Prepare for `summer`
bde4fe
Implement brief output as diff to self
a03842
Add brief current-bench configuration instructions
53ee0f
Release notes for 0.1.2
7e093e
Release notes for 0.1.2
a89472
Use 256-color ANSI color gradients for better/worse results
17cb76
Link to `bench` directory
e7b3fb
Add `-brief` output mode This is useful as the output mode when running a benchmark executable as a test and the JSON output is just too much.
968dd5
Add note on `wrap`
73d956
Add link to benchmarks
f1ab51
Add benchmarks of some `Stdlib` data structures
7f6659
Require `sherlodoc` for searchable documentation
15ff3f
Add support for `wrap`ping the `work` without timing `wrap` itself The `wrap` function can be e.g. used to install effect handlers. This also tweaks the internal implementation of `Times.record` to try to minimize memory use, allocations, and false sharing as much as possible.
fb7854
Auto resetting single word barrier
aeffdb
Add `-diff base.json` switch to diff against base results from file
4fdeee
Release notes for 0.1.1
f55f88
Add `-debug` flag/mode to help debug benchmarks By default all the benchmarks are run and the results collected before any output is produced. This can make it difficult to determine which benchmark is causing problems in case of bugs. The `-debug` flag/mode is supposed to help debug benchmarks by printing some progress information.
3c90a1
Keep earliest start time per domain This is important on OCaml 4 where we use domain-shims, which uses systhreads to emulate domains. What can happen with systhreads, in particular, is that one or more systhreads may run for a long time or even complete their work before other systhreads get a change to run. The timings captured on different workers are then (more or less) sequential rather than parallel as assumed by the calculation of time per operation (latency) and total thruput.
c6f239
Wordsmithing
144299
Reformat and correct phrase
213ea2
Add initial documentation and simplify API This drops the public APIs to manipulate times and statistics as those are likely to change.
10722c
Add optional argument to neglect `domain_local_await`
ee9c11
Require latest version of DLA with bug fixes
71cbf5
No need to take `Float.abs` before squaring Thanks to @lyrm for noticing this.
cf80b0
Drop `backoff` dependency
42dbbc
Add GH action to test on Windows
96273e
By default run an extra (busy) domain when `n_domains = 1` The OCaml runtime has a number of special cases when running only a single domain. When benchmarking multicore abstractions we probably don't want to benchmark those special cases except in special cases.
bdbdc6
Support running an extra (busy) domain
bea841
Avoid spawning an extra domain
7c0a5a
Install polling DLA on every domain
657ba2
Add `Util.generate_push_and_pop_sequence` for benchmarking queues
df3928
API reference link
7b8120