Comments (2)
Some thoughts:
-
It will be good to categorize the benchmarks, so that a user can simply include a family of benchmarks for an experiment or a test. For example, a researcher interested in studying graph algorithms or analyzing performance for time-series data can run only those relevant benchmarks.
-
All the configuration should exist in a
config/
folder in the project repository, so that, the user knows as to where they need to look for in order to make a change. -
For any test, it will be good to allow the user to setup one or more
profiles
orexperiments
which describes in detail the relevant parameters used for benchmarking. -
It will be useful to have everything included in a single configuration file, including environment variables, so that, using a given file, we should be able to re-run any experiment. This also helps in repeating the test(s) to take average of the results, without having to worry about whether a particular environment variable was defined or what its value was during a test.
-
For a given set of well-defined test configurations, we will also be able to reproduce the results using just these files. These can be easily revision controlled.
-
A test run for running the tip of
dune
and stock OCaml will be useful for developers pushing changes upstream. -
Using a single file format for the configuration will maintain consistency, and using s-expressions will greatly help leverage the tools in the OCaml ecosystem.
-
Given the entire stack from application benchmarks to compiler to operating system, and hardware, it will be good to have options or knobs for the user to configure the tests at various levels in the stack. For example, to study the results on different operating system kernels (Linux, FreeBSD, OpenBSD etc.) or processor architectures (AMD, Intel, PPC, etc.), and their respective variants.
from sandmark.
While discussing tasksetting, we have come across another type of parameter: machine specific config for an experiment. This might be the same thing as the environment within which to run an executable
.
The use case discussion is here: #159 (comment)
from sandmark.
Related Issues (20)
- Report hardware resources in parallel architectures using `hwloc`
- Integrate SPECpower benchmarks and measurements in Sandmark
- Multicore parallel benchmarks support for 4.14 HOT 2
- Fix Uuidm.create, Stdlib.Printf.kprintf and ocaml_deprecated_auto_include compiler warnings
- `mtime.1.2.0` fails to build with 5.1.0+trunk HOT 1
- Add MaPLe benchmarks to Sandmark HOT 1
- graph500 failing HOT 1
- Add benchmarks from frama-c Open Source case studies
- Include pausetimes in jupyter notebook HOT 1
- Remove the old implementations of graph500
- Update Sandmark trunk to build for 5.2.0 HOT 1
- A number of parallel benchmarks seem to be broken HOT 2
- Include percentiles in the pausetimes bench data HOT 2
- Round off errors for mean and max latencies HOT 2
- Unpin `runtime_events_tools` and pin `ppxlib` to a version compatible with OCaml 5.1 and 5.2 HOT 2
- Get latency and throughput information from the same benchmark runs
- Running parallel benchmarks seems to fail sometimes because chrt permissions are lost?
- Benchmark runs seem to be failing due to base.v0.16.3 install failure
- Benchmark runs seem to be failing due to changes on trunk
- Remote access to Turing broken HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sandmark.