17 repositorios
Techniques for pinning processes or threads to specific CPU cores to optimize cache usage and reduce context switching.
Distinct from CPU Optimizations: Candidates focus on hardware architectures or AI-specific optimizations, not general systems programming for server process binding.
Explore 17 awesome GitHub repositories matching operating systems & systems programming · CPU Affinity Binding. Refine with filters or upvote what's useful.
h2o is a high-performance content delivery server and HTTP/3 web server. It functions as a network gateway and reverse proxy that forwards client requests to upstream servers to manage traffic flow and load. The project distinguishes itself as a protocol fuzzing tool, utilizing a testing framework to execute automated stress tests against network protocols to identify memory leaks and crashes. The server provides capabilities for secure web traffic management through encrypted data transmission and high-performance web serving across HTTP/1, HTTP/2, and HTTP/3. It includes tools for server r
Implements CPU affinity binding to pin server threads to specific physical cores for reduced cache misses.
PowerInfer is a high-performance local large language model inference engine and sparse inference framework. It provides a runtime for executing models on consumer-grade hardware, utilizing a GPU acceleration backend to optimize tensor operations for graphics processors. The system distinguishes itself through a sparse inference framework that increases generation speed by skipping computations based on activation sparsity in model weights. It includes a GGUF model converter for transforming weights and metadata into a unified binary format, as well as an OpenAI API compatible server for inte
Binds execution threads to high-performance CPU cores to minimize scheduling latency and maximize generation speed.
iperf es un software de medición de redes IP diseñado para cuantificar las tasas de transferencia de datos y la estabilidad de la red. Funciona como una herramienta de evaluación comparativa del rendimiento de la red que prueba la capacidad y el rendimiento entre dos hosts para identificar cuellos de botella y límites de rendimiento. La herramienta mide específicamente el ancho de banda máximo y la pérdida de paquetes en redes IP utilizando protocolos TCP y UDP. También sirve como exportador de datos de red, generando resultados de rendimiento en formato JSON para análisis programático e integración. El software cubre una gama de capacidades que incluyen el análisis del rendimiento de la red y pruebas de tráfico. Permite la medición de la capacidad total de datos y la evaluación del hardware y las configuraciones de red a través de pruebas estandarizadas.
Binds network processing threads to specific CPU cores to reduce cache misses and context switching.
htop is a terminal-based system resource monitor and interactive process viewer. It functions as a text-user interface dashboard for overseeing hardware temperatures, load averages, and battery status while providing a comprehensive tool for monitoring and managing system processes. The application distinguishes itself through detailed process lifecycle management, allowing users to kill processes, adjust priorities via renicing, and assign CPU affinity to specific cores. It provides high-level visibility into system behavior through process hierarchy visualization and the ability to inspect
Enables pinning processes to specific CPU cores to optimize performance and isolate workloads.
OpenBLAS is a high-performance implementation of the Basic Linear Algebra Subprograms standard designed for numerical computing and matrix operations. It serves as a hardware-accelerated numerical library and optimized math kernel library, providing a computational engine for large-scale matrix multiplication and vector operations. The library distinguishes itself through the use of hand-tuned assembly kernels and SIMD instruction mapping, such as AVX and SVE, to maximize floating-point performance on specific CPU architectures. It features a multi-threaded framework that manages parallel exe
Binds specific threads to CPU cores to optimize cache usage and maximize processing efficiency.
Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to support real-time analytics and event-driven applications. It functions as a partitioned, distributed key-value store that replicates data across cluster nodes to provide low-latency access and high availability. The platform also serves as a distributed SQL query engine, allowing users to execute standard SQL statements against both in-memory datasets and external data sources. What distinguishes Hazelcast is its use of a distributed consensus subsystem to maintain strongly consis
Reduces latency by mapping internal thread categories to designated CPU cores.
CppGuide is a curated collection of educational resources and practical guides focused on C++ server development, Linux kernel internals, concurrent programming, network protocols, and security exploitation. It provides structured learning paths for backend developers, covering everything from interview preparation to building high-performance network servers and understanding operating system fundamentals. The guide distinguishes itself by offering in-depth, hands-on tutorials that walk through real-world implementations, including building a Redis-like server from scratch, designing custom
Restricts where a task, interrupt, or memory allocation may run by respecting affinity masks and memory policies.
htop es un monitor de sistema con interfaz de usuario de terminal para sistemas Unix. Funciona como un visor de procesos interactivo y visualizador de recursos en tiempo real, proporcionando un panel para rastrear métricas de CPU, memoria y carga promedio. La herramienta permite la clasificación, el filtrado y la terminación de procesos y subprocesos activos del sistema. Se distingue por una interfaz de modo texto que puede representar procesos en una estructura de árbol jerárquico para visualizar las relaciones padre-hijo y permite la asignación de afinidad de CPU a núcleos de procesador específicos. La superficie de monitoreo cubre la utilización de la CPU, las asignaciones de memoria, el estado de la batería y los promedios de carga del sistema. Los usuarios pueden personalizar la experiencia visual configurando medidores de recursos, modificando columnas de procesos y aplicando esquemas de color específicos. La interfaz incluye una barra de funciones persistente que muestra los atajos de teclado y comandos disponibles.
Allows users to pin specific processes to designated CPU cores to optimize performance.
CRI-O is an open-source container runtime that implements the Kubernetes Container Runtime Interface (CRI) to manage container images, pods, and containers on cluster nodes using OCI-compatible runtimes. It serves as a node-level container manager that handles image pulling, container lifecycle, and resource monitoring for Kubernetes clusters, running containers according to the Open Container Initiative specifications. The runtime distinguishes itself through live configuration reloading that applies changes to runtime definitions, registry mirrors, and TLS certificates without restarting th
Assigns system-level commands and the container monitor to a dedicated CPU set for workload isolation.
seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of correctness, confidentiality, integrity, and availability. It enforces strict isolation between processes through hardware-enforced address space separation and a capability-based access control system, where each process holds explicit rights only to the resources it has been granted. The kernel exposes hardware resources through a minimal API of system calls that manage threads, address spaces, and inter-process communication, with synchronous IPC supporting sender-identifying b
Binds threads to specific processor cores to optimize cache usage and control execution placement.
monoio es un runtime asíncrono y ejecutor de alto rendimiento para Rust. Implementa un modelo de concurrencia thread-per-core que fija las tareas a núcleos de CPU específicos para eliminar la sobrecarga de sincronización y la migración de datos. El runtime aprovecha la interfaz io_uring para realizar llamadas al sistema no bloqueantes y reducir la copia de memoria entre el modo kernel y el modo usuario. Utiliza un controlador de E/S de alto rendimiento y envoltorios TCP zero-copy para gestionar la transferencia de datos a través de buffers de memoria compartida. El proyecto proporciona capacidades para la gestión de afinidad de núcleos de CPU, programación de sistemas de baja latencia y redes de alto rendimiento. Incluye un backend de controlador de E/S conectable y configuraciones para el bloqueo de memoria con el fin de mantener buffers estables entre el espacio de usuario y el kernel.
Optimizes performance by pinning asynchronous tasks to specific CPU cores.
NCCL es una biblioteca de comunicación de alto rendimiento y un framework de computación distribuida en GPU diseñado para ejecutar intercambios de datos colectivos y punto a punto a través de múltiples GPUs en sistemas de uno o varios nodos. Sirve como capa de transporte RDMA para GPU y orquestador de memoria, facilitando la sincronización de gran ancho de banda de datos y gradientes de modelos para el entrenamiento e inferencia distribuida en GPU. La biblioteca se distingue por su capacidad para ejecutar primitivas de comunicación directamente desde kernels de GPU, eliminando la CPU anfitriona del camino crítico. Utiliza la selección de rutas consciente de la topología para optimizar el movimiento de datos y emplea transporte de red basado en RDMA, incluyendo InfiniBand y NVLink, para permitir el acceso a memoria de copia cero entre dispositivos a través de diferentes nodos físicos. El proyecto cubre una amplia gama de patrones de comunicación colectiva, incluyendo reducciones, broadcasts, gathers e intercambios all-to-all, junto con acceso remoto a memoria punto a punto. Proporciona una gestión integral de comunicadores para inicializar, particionar y redimensionar grupos de GPU, así como una gestión de memoria especializada para registrar buffers y coordinar memoria compartida de dispositivo. El sistema incluye un conjunto de herramientas de monitoreo y observabilidad para el seguimiento de la salud, registro de diagnósticos y monitoreo de eventos en tiempo real, así como interfaces de integración para frameworks de aprendizaje automático, CUDA graphs, MPI y Python.
Binds internal threads to specific processor cores based on hardware proximity to minimize latency.
Asterinas es un kernel de sistema operativo con seguridad de memoria diseñado para prevenir condiciones de carrera (data races) y corrupción de memoria. Funciona como un kernel compatible con la ABI de Linux, permitiendo la ejecución de binarios de Linux existentes y cargas de trabajo en contenedores mientras proporciona un modelo de distribución de sistema operativo declarativo. El proyecto se distingue por actuar como host de contenedores de máquinas virtuales y como SO invitado de computación confidencial, permitiendo su ejecución dentro de entornos de ejecución confiables (TEE) aislados por hardware como Intel TDX. Implementa una base de computación confiable mínima al aislar operaciones inseguras de bajo nivel y separa los mecanismos centrales del kernel de las implementaciones de políticas específicas. El sistema cubre una amplia gama de capacidades, incluyendo gestión de memoria física y virtual, multiprocesamiento simétrico y abstracción de hardware para varias arquitecturas de CPU. También incluye soporte para runtimes de contenedores seguros, un conjunto completo de primitivas de red y sockets, y una cadena de herramientas especializada para la compilación y emulación del kernel. El proyecto admite el despliegue en múltiples arquitecturas en plataformas x86-64, RISC-V 64 y LoongArch 64.
Prevents tasks from executing on multiple CPUs simultaneously using atomic flags during context switches.
Iggy es una plataforma de streaming de mensajes distribuida y un broker de mensajes multiprotocolo que funciona como un almacén de registros distribuidos persistente. Proporciona infraestructura para publicar y consumir mensajes binarios utilizando un registro de solo adición (append-only log), asegurando alta disponibilidad y consistencia de datos entre nodos mediante Viewstamped Replication. La plataforma se distingue por su infraestructura de streaming para LLM, que utiliza un protocolo de servidor para conectar modelos de lenguaje grandes a datos de streaming y controles del sistema. Esto incluye protocolos estandarizados para la gestión de contexto y el puente de datos mediante HTTP o entrada/salida estándar. El sistema cubre un amplio conjunto de capacidades, incluyendo la orquestación de pipelines de datos con plugins modulares de origen y destino, coordinación de grupos de consumidores para escalado horizontal y soporte de transporte multiprotocolo a través de TCP, QUIC, HTTP y WebSocket. También incorpora primitivas de seguridad como cifrado AES-256-GCM para datos en reposo y en tránsito, y proporciona observabilidad mediante métricas de Prometheus, rastreo con OpenTelemetry y un panel de control operativo web. El servidor puede desplegarse utilizando imágenes de contenedor y orquestarse mediante Kubernetes.
Binds shards to specific CPU cores and detects hardware topology to maximize processing efficiency.
Fastsocket is a high-performance Linux socket implementation designed for linear scalability on multicore systems. It functions as a TCP throughput optimizer and a multicore packet steering engine that reduces system call overhead and lock contention to increase total network processing capacity. The project distinguishes itself through a network system call interceptor that uses a shared library to redirect standard socket calls to optimized interfaces without requiring changes to application binaries. It employs active connection steering by encoding CPU core IDs into source ports and utili
Maps network interface hardware queues to specific CPU cores to distribute interrupt processing.
BytePS is a distributed deep neural network training framework and communication library designed to scale model training across multiple GPUs and compute nodes. It functions as a GPU cluster orchestrator and RDMA network optimizer, providing the necessary primitives to synchronize gradients and data across a server cluster. The project distinguishes itself through high-performance network optimizations, utilizing remote direct memory access and page-aligned memory to reduce latency. It employs topology-aware communication tuning and CPU core affinity management to maximize hardware throughpu
Pins execution threads to specific physical cores and memory nodes to reduce context switching and latency.
uperf is an Android performance tuning tool and Linux kernel parameter manager designed to optimize device responsiveness and battery life. It functions as a CPU affinity and scheduling manager, a hardware power profile controller, and a real-time system monitor that adjusts kernel parameters and CPU frequencies. The project distinguishes itself through real-time system monitoring of touchscreen input and frame rendering to trigger immediate performance boosts. It utilizes hardware performance profiling to apply pre-tuned configuration files tailored to specific hardware platforms, balancing
Implements CPU affinity binding to pin UI threads to high-performance clusters and reduce latency.