Git Product home page Git Product logo

awesome-numa's Introduction

Awesome NUMA

A community-oriented list of libraries, tools, and resources aimed to assist with NUMA-aware software development.

Non-Uniform Memory Access (NUMA) refers to multiprocessor systems whose memory is divided into multiple memory nodes.

Contributing

To add, remove or change things on the list: please submit a pull request to the GitHub repository.

NUMA library bindings and interfaces

  • libnuma - The libnuma shared library to control NUMA policy for processes or shared memory on Linux
    • numa-rs - Rust bindings for libnuma
    • go-numa - Go bindings for libnuma
    • jnuma - Java bindings for libnuma
    • py-numa - Python bindings for libnuma
    • ocaml-numa - OCAML bindings for libnuma
  • libNumaAPI - A cross-platform API wrapper for NUMA architecture
  • hwloc - A portable API to detect and exploit the topology of parallel architectures
  • Windows NUMA API - Official Microsoft Win32 NUMA API

NUMA-aware memory placement and scheduling

  • numactl - A program to run other programs with a specific NUMA policy
  • numatool - A wrapper to linux kernels move_pages system call to balance processes' pages across NUMA nodes
  • libtorque - A threaded, continuations-based I/O event library for manycore NUMA machines
  • pgasus - A C++ parallel programming framework for NUMA systems, based on PGAS semantics
  • NUMASK - A skip list designed to exploit the characteristics of NUMA architectures to improve performance
  • golang-numa - A golang utility library for NUMA-aware code
  • NumaAllocator - A simple C++ header NUMA memory allocator
  • numanji - A rustlang Local-affinity first NUMA-aware allocator with optional fallback
  • Tesson - A tool for NUMA-aware sharding with Docker
  • Umpire - An application-focused API for memory management on NUMA & GPU architectures
  • memkind - A heap manager which enables control of memory characteristics and a partitioning of the heap between kinds of memory

Observation and profiling tools

  • numastat - A program display NUMA allocation statistics
  • NUMACC - A golang-based tool to check CPU affinity and NUMA configuration for containers and pods
  • NumaTOP - An observation tool for runtime memory locality characterization and analysis of processes and threads running on a NUMA system
  • SnuMAP - A NUMA performance profiler
  • irqstat - A /proc/interrupts watcher designed for NUMA systems
  • Numa-Trace - A Pin tool to track NUMA memory accesses
  • NUMAPROF - A NUMA memory profliler based on Pintool to track remote memory accesses
  • Numalize - A memory tracing tool to detect communication and page usage of NUMA applications
  • NumaMMA - A lightweight NUMA memory profiler/analyzer and a NUMA application execution engin
  • numap - A Linux library for memory profiling based on hardware performance monitoring unit
  • pcm-numa- A tool to monitor local and remote memory accesses on a NUMA system

Benchmarking

  • Comm|Scope - A NUMA-aware multi-CPU multi-GPU CUDA data transfer benchmarks
  • Numafac - Scripts to calculate the NUMA factor of NUMA machines, based on the stream and lmbench3 benchmarks
  • nurdma - Understanding RDMA behavior in NUMA systems
  • numabench - A NUMA benchmarking tool
  • numa-bench - A NUMA-aware memory allocation benchmark

NUMA-aware data structures

  • Skyhooks - An experimental NUMA-aware, lock-free heap memory allocator
  • rw-numa-locks - A NUMA-aware reader-writer locks
  • NUMA_Black-Box - Black-box concurrent data structures for NUMA architectures

About

This list was compiled by Domagoj Margan with help and resources from the systems community.

awesome-numa's People

Contributors

domargan avatar garfield96 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.