hpides / perma-bench Goto Github PK
View Code? Open in Web Editor NEWA benchmarking suite to evaluate the performance of persistent memory access (PerMA-Bench @ VLDB '22)
License: MIT License
A benchmarking suite to evaluate the performance of persistent memory access (PerMA-Bench @ VLDB '22)
License: MIT License
Unmap pmem file in destructor of benchmark
Use unique pointer in benchmark_factory
There is some overlay in the plots. Also, the plots should be cleaner in the HTML pages. Maybe we should add a table layout.
If the path does not start with ./
or /
, it is empty.
add something like parallel_benchmark
as top level entry in config file to run multiple different workloads in parallel
Change path to path to JSON and not to a directory or accept more than one JSON in a result folder.
One memory mapped file per benchmark in yaml config
The parameters:
only output there enum integer. Instead, the input string should be used as an output as well.
{ "benchmark_name": "bm_name",
"config": <config>,
"results": [
{ "type": "write",
"latency": x, // (in nanoseconds)
"bandwidht": x, // (in GB/s)
"data_size": x, // (in GB)
"start_ts": x, // (timestamp)
"end_ts": x, // (timestamp)
"thread_id": x //
},
{ "type": "read",
"latency": x, // (in nanoseconds)
"bandwidht": x, // (in GB/s)
"data_size": x, // (in GB)
"start_ts": x, // (timestamp)
"end_ts": x, // (timestamp)
"thread_id": x //
},
{ "type": "pause",
"length": x, // (in microseconds)
"start_ts": x, // (timestamp)
"end_ts": x, // (timestamp)
"thread_id": x //
}
]
}
Add assertions for our assumptions like relation of number of threads to number of partitions or read and write ratio.
Single header parser: https://github.com/CLIUtils/CLI11
Current status: tests are commented out
Add NUMA none config in which threads can run on every CPU
Idea: give the user the option to differentiate between near or far benchmarks. Threads are scheduled on the same numa node where the data is in memory for near benchmarks. They are scheduled on different numa nodes if possible.
Main -(filename)-> BMSuite
See if we can setup a simulator to work on, e.g. quartz.
We should create a GitHub Pages site for this project.
The website should contain
If we wait until the end, all results are lost if a single BM fails. We should find a way to print intermediate results.
How do we handle errors in ::run_in_thread()
?
Instead of having read_ratio
and write_ratio
, only have one variable. then we can add this as a matrix arg
Integrate mixed patterns such as:
This is still open after #102.
User passes path as program argument via -r or --result-directory or default is current_path.
Use Map in resolveBenchmarkOption instead of multiple ifs.
Use three items: None, NoCache, Cache
These need to be implemented system-specific but should be hidden from the user.
This is the result for one benchmark:
{ "bandwidth": { "read": 43.37 }, "config": { ... }, "duration": { "avg": 212.00540293040294, "lower_quartile": 205, "max": 203647, "median": 215, "min": 69, "percentile_90": 234, "percentile_95": 241, "percentile_99": 284, "percentile_999": 370, "percentile_9999": 545, "std_dev": 805.4285555848616, "upper_quartile": 225 } }
std_dev value is 805.xx which is clearly to high.
We constantly get:
perma-bench/test/utils_test.cpp:14: warning: the use of 'tmpnam' is dangerous, better use 'mkstemp'
.
We should fix this sometime.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.