2.0 KiB
MxTasking: Task-based framework with built-in prefetching and synchronization
MxTasking is a task-based framework that assists the design of latch-free and parallel data structures. MxTasking eases the information exchange between applications and the operating system, resulting in novel opportunities to manage resources in a truly hardware- and application-conscious way.
Paper
This is the code according to our paper MxTasks: How to Make Efficient Synchronization and Prefetching Easy.
Jan Mühlig and Jens Teubner. 2021. MxTasks: How to Make Efficient Synchronization and Prefetching Easy. SIGMOD '21: International Conference on Management of Data, 1331-1334. Download the PDF
Dependencies
For building
Required
cmake>= 3.10clang>= 10clang-tidy>= 10libnumaorlibnuma-dev
Optional
libgtest-devfor tests intest/
For generating the YCSB workload
python>= 3javacurl
How to build
- Call
cmake .to generateMakefile. - Call
maketo generate all binaries.
How to run
For detailed information please see README files in src/application/<app> folders:
- B Link Tree benchmark (
src/application/blinktree_benchmark) - Hash Join benchmark (
src/application/hashjoin_benchmark)
Simple example for B Link Tree
- Call
make ycsb-ato generate the default workload - Call
./bin/blinktree_benchmark 1:4to run benchmark for one to four cores.
Hello World
We build a small Hello World! example, located in src/application/hello_world.
You might take a look to see how to use MxTasking.
External Libraries
argparse(view on github) under MIT licensejson(view on github) under MIT license- Yahoo! Cloud Serving Benchmark (view on github) under Apache License 2.0