Skip to content

Task-based framework for automatic synchronization and memory prefetching.

License

Notifications You must be signed in to change notification settings

Dookoen/mxtasking

 
 

Repository files navigation

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.10
  • clang >= 10
  • clang-tidy >= 10
  • libnuma or libnuma-dev

Optional

  • libgtest-dev for tests in test/

For generating the YCSB workload

  • python >= 3
  • java
  • curl

How to build

  • Call cmake . to generate Makefile.
  • Call make to generate all binaries.

How to run

For detailed information please see README files in src/application/<app> folders:

Simple example for B Link Tree

  • Call make ycsb-a to generate the default workload
  • Call ./bin/blinktree_benchmark 1:4 to 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

About

Task-based framework for automatic synchronization and memory prefetching.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.9%
  • Other 1.1%