All Projects → aliireza → slice-aware

aliireza / slice-aware

Licence: BSD-3-Clause license
Slice-aware Memory Management - Exploiting NUCA Characteristic of LLC in Intel Processors

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects
shell
77523 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to slice-aware

Umpire
An application-focused API for memory management on NUMA & GPU architectures
Stars: ✭ 154 (+340%)
Mutual labels:  memory-management
cactusref
🌵 Cycle-Aware Reference Counting in Rust
Stars: ✭ 129 (+268.57%)
Mutual labels:  memory-management
total
Ruby Gem to get total memory size in the system
Stars: ✭ 15 (-57.14%)
Mutual labels:  memory-management
Blog
Our open source benchmarks and code samples
Stars: ✭ 162 (+362.86%)
Mutual labels:  memory-management
Quiz App
A repository reflecting the progress made on the "How to Build iOS Apps with Swift, TDD & Clean Architecture" YouTube series, by Caio & Mike.
Stars: ✭ 230 (+557.14%)
Mutual labels:  memory-management
csharp-workshop
NDC London 2019, Workshop: Become a better C# programmer: more Value, more Expressions, no Waiting
Stars: ✭ 21 (-40%)
Mutual labels:  memory-management
Avoid Memory Leak Android
🔥 Examples of memory leaks and common patterns that cause them in Android development and how to fix/avoid them
Stars: ✭ 140 (+300%)
Mutual labels:  memory-management
Aqeous
(Inactive, Checkout AvanaOS, Rewrite of this) This is a New Operating System (Kernel right now). Made completely from scratch, We aim to make a complete OS for Learning purpose
Stars: ✭ 23 (-34.29%)
Mutual labels:  memory-management
D3d12memoryallocator
Easy to integrate memory allocation library for Direct3D 12
Stars: ✭ 234 (+568.57%)
Mutual labels:  memory-management
ddio-bench
Reexamining Direct Cache Access to Optimize I/O Intensive Applications for Multi-hundred-gigabit Networks
Stars: ✭ 50 (+42.86%)
Mutual labels:  ddio
Ugc
A single-header incremental garbage collector library
Stars: ✭ 173 (+394.29%)
Mutual labels:  memory-management
Pytorch memonger
Experimental ground for optimizing memory of pytorch models
Stars: ✭ 223 (+537.14%)
Mutual labels:  memory-management
archery
Abstract over the atomicity of reference-counting pointers in rust
Stars: ✭ 107 (+205.71%)
Mutual labels:  memory-management
Rmm
RAPIDS Memory Manager
Stars: ✭ 154 (+340%)
Mutual labels:  memory-management
GC
A lightweight conservative garbage collector for C/C++
Stars: ✭ 108 (+208.57%)
Mutual labels:  memory-management
Heapinspector For Ios
Find memory issues & leaks in your iOS app without instruments
Stars: ✭ 1,819 (+5097.14%)
Mutual labels:  memory-management
buddy alloc
A single header buddy memory allocator for C
Stars: ✭ 46 (+31.43%)
Mutual labels:  memory-management
poireau
Poireau: a sampling allocation debugger
Stars: ✭ 76 (+117.14%)
Mutual labels:  memory-management
M2SLAM
M2SLAM: Visual SLAM with Memory Management for large-scale Environments
Stars: ✭ 38 (+8.57%)
Mutual labels:  memory-management
NALib
General purpose C sourcecode collection
Stars: ✭ 16 (-54.29%)
Mutual labels:  memory-management

Slice-aware Memory Management

Applications can utilize our memory management scheme to improve their performance by allocating memory that is mapped to the most appropriate LLC slice(s), i.e., that have lower access latency. For more information, check out our paper and my talk at EuroSys'19.

Download

git clone --recursive https://github.com/aliireza/slice-aware.git

Repository Organization

The description of different folders are as follows:

  • ./apps/ Contains applications for measuring access time to different LLC slices + Finding the mapping between different physical addresses & LLC slices.
  • ./cachedirector/ Implementation of CacheDirector on DPDK. More info can be found in here.
  • ./lib/ Contains libraries used to enable slice-aware memory management.
  • ./others/ Some useful information regarding the CAT and the mapping of core<->slice(s) for Intel(R) Xeon(R) Gold 6134 (Skylake).
  • ./results/ Contains some of the results used in our paper.
  • ./workload/ Contains some sample access patterns (i.e., Uniform random and Zipf) and the source code for generating them.

Build & Run

  • To build applications and workload-generators, you can use the Makefile available in ./apps/ and ./workload/generator/.
  • For running each application, please make sure that you are passing the right arguments. More information can be found in source code.
  • For CacheDirector, please refer to here.

Citing our paper

If you use CacheDirector or slice-aware memory management in any context, please cite our paper:

@inproceedings{farshin-slice-aware,
 author = {Farshin, Alireza and Roozbeh, Amir and {Maguire Jr.}, Gerald Q. and Kosti\'{c}, Dejan},
 title = {{Make the Most out of Last Level Cache in Intel Processors}},
 booktitle = {Proceedings of the Fourteenth EuroSys Conference 2019},
 series = {EuroSys '19},
 year = {2019},
 isbn = {978-1-4503-6281-8},
 location = {Dresden, Germany},
 pages = {8:1--8:17},
 articleno = {8},
 numpages = {17},
 url = {http://doi.acm.org/10.1145/3302424.3303977},
 doi = {10.1145/3302424.3303977},
 acmid = {3303977},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {Cache Allocation Technology, Cache Partitioning, CacheDirector, DDIO, DPDK, Key-Value Store, Last Level Cache, Network Function Virtualization, Non-Uniform Cache Architecture, Slice-aware Memory Management},
}

Getting Help

If you have any questions regarding our code or the paper, you can contact Amir Roozbeh (amirrsk at kth.se) and/or Alireza Farshin (farshin at kth.se).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].