Skip to content

Latest commit

 

History

History

mx

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MxTasking

MxTasking is a task-based framework for many-core hardware, both current and future. The MxTask is the main abstraction of MxTasking. An MxTask is a short code sequence that performs a single, modest unit of work and is guaranteed to run without interruption. MxTasking's true power resides in the ability to apply annotations to each MxTask. Applications can use annotations to communicate task characteristics to the execution unit, such as runtime characteristics (such as predicted resource needs); information about connected data objects (such as access intention such as read or write access); or desired scheduling priorities. MxTasking will then optimize resource allocation, scheduling, and placement based on this knowledge.

Paper and original Source Code

  • 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
  • The original source code was already published on GitHub: MxTasking at GitHub.

Structure

Memory

The memory component can be found in the memory folder. It implements different memory allocators (the fixed size allocator mainly for tasks with a static size and the dynamic size allocator for variable sized data objects). Further, epoch-based memory reclamation is implemented by the epoch manager.

Queue

Different (task-) queues can be found in the queue folder. It provides

Resource

The resource component can be found in the resource folder. This package encapsulates

Synchronization

The synchronization component can be found in the synchronization folder. This package provides different synchronization methods (optimistic lock, rw lock, spinlock) and structures to define the required synchronization level.

Tasking

The tasking core can be found in the tasking folder. For more information see the tasking-specific readme.