17 dépôts
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 est un logiciel de mesure de réseau IP conçu pour quantifier les débits de transfert de données et la stabilité du réseau. Il fonctionne comme un outil de benchmarking de performance réseau qui teste la capacité et le débit entre deux hôtes pour identifier les goulots d'étranglement et les limites de performance. L'outil mesure spécifiquement la bande passante maximale et la perte de paquets sur les réseaux IP en utilisant les protocoles TCP et UDP. Il sert également d'exportateur de données réseau, produisant les résultats de performance au format JSON pour une analyse programmatique et une intégration. Le logiciel couvre une gamme de capacités incluant l'analyse du débit réseau et les tests de trafic. Il permet la mesure de la capacité totale de données et l'évaluation du matériel et des configurations réseau via des tests standardisés.
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 est un moniteur système avec interface utilisateur textuelle pour les systèmes Unix. Il fonctionne comme un visualiseur de processus interactif et un visualiseur de ressources en temps réel, fournissant un tableau de bord pour suivre les métriques CPU, mémoire et charge moyenne. L'outil permet le tri, le filtrage et la terminaison des processus et threads système actifs. Il se distingue par une interface en mode texte qui peut rendre les processus dans une structure arborescente hiérarchique pour visualiser les relations parent-enfant et permet l'assignation de l'affinité CPU à des cœurs de processeur spécifiques. La surface de surveillance couvre l'utilisation du CPU, les allocations mémoire, l'état de la batterie et les moyennes de charge du système. Les utilisateurs peuvent personnaliser l'expérience visuelle en configurant des compteurs de ressources, en modifiant les colonnes de processus et en appliquant des schémas de couleurs spécifiques. L'interface inclut une barre de fonctions persistante qui affiche les raccourcis clavier et les commandes 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 est un runtime asynchrone et un exécuteur haute performance pour Rust. Il implémente un modèle de concurrence thread-per-core qui épingle les tâches à des cœurs CPU spécifiques pour éliminer la surcharge de synchronisation et la migration de données. Le runtime exploite l'interface io_uring pour effectuer des appels système non bloquants et réduire la copie de mémoire entre le noyau et l'espace utilisateur. Il utilise un pilote d'E/S haute performance et un wrapping de flux TCP zero-copy pour gérer le transfert de données via des tampons en mémoire partagée. Le projet offre des capacités pour la gestion de l'affinité des cœurs CPU, la programmation système à faible latence et le réseau haute performance. Il inclut un backend de pilote d'E/S enfichable et des configurations pour le verrouillage mémoire afin de maintenir des tampons stables entre l'espace utilisateur et le noyau.
Optimizes performance by pinning asynchronous tasks to specific CPU cores.
NCCL est une bibliothèque de communication haute performance et un framework de calcul GPU distribué conçu pour exécuter des échanges de données collectifs et point à point sur plusieurs GPU dans des systèmes à un ou plusieurs nœuds. Il sert de couche de transport GPU RDMA et d'orchestrateur de mémoire, facilitant la synchronisation à large bande passante des données et des gradients de modèle pour l'entraînement et l'inférence GPU distribués. La bibliothèque se distingue par sa capacité à exécuter des primitives de communication directement depuis les noyaux (kernels) GPU, supprimant le CPU hôte du chemin critique. Elle utilise une sélection de chemin consciente de la topologie pour optimiser le mouvement des données et emploie un transport réseau basé sur RDMA, incluant InfiniBand et NVLink, pour permettre un accès mémoire zéro-copie entre les appareils sur différents nœuds physiques. Le projet couvre un large éventail de modèles de communication collective, notamment les réductions, les diffusions (broadcasts), les rassemblements (gathers) et les échanges tous-à-tous, ainsi que l'accès mémoire distant point à point. Il fournit une gestion complète des communicateurs pour initialiser, partitionner et redimensionner les groupes GPU, ainsi qu'une gestion spécialisée de la mémoire pour enregistrer les tampons (buffers) et coordonner la mémoire partagée des appareils. Le système inclut une suite d'outils de surveillance et d'observabilité pour le suivi de la santé, la journalisation diagnostique et la surveillance des événements en temps réel, ainsi que des interfaces d'intégration pour les frameworks de machine learning, les graphes CUDA, MPI et Python.
Binds internal threads to specific processor cores based on hardware proximity to minimize latency.
Asterinas est un noyau de système d'exploitation sécurisé en mémoire conçu pour prévenir les data races et la corruption mémoire. Il fonctionne comme un noyau compatible Linux-ABI, permettant l'exécution de binaires Linux existants et de charges de travail conteneurisées tout en offrant un modèle de distribution de système d'exploitation déclaratif. Le projet se distingue en agissant comme un hôte de conteneurs pour machines virtuelles et un OS invité pour le confidential computing, lui permettant de s'exécuter au sein d'environnements d'exécution isolés matériellement comme Intel TDX. Il implémente une base de calcul de confiance minimale en isolant les opérations dangereuses de bas niveau et sépare les mécanismes fondamentaux du noyau des implémentations de politiques spécifiques. Le système couvre un large éventail de capacités, incluant la gestion de la mémoire physique et virtuelle, le multi-processing symétrique et l'abstraction matérielle pour diverses architectures CPU. Il inclut également le support pour les runtimes de conteneurs sécurisés, un ensemble complet de primitives réseau et socket, ainsi qu'une toolchain spécialisée pour la compilation et l'émulation du noyau. Le projet prend en charge le déploiement multi-architecture sur les plateformes x86-64, RISC-V 64 et LoongArch 64.
Prevents tasks from executing on multiple CPUs simultaneously using atomic flags during context switches.
Iggy est une plateforme de streaming de messages distribuée et un courtier de messages multi-protocole qui fonctionne comme un magasin de journaux distribué persistant. Il fournit une infrastructure pour publier et consommer des messages binaires en utilisant un journal en ajout seul (append-only log), garantissant une haute disponibilité et une cohérence des données entre les nœuds via la réplication Viewstamped. La plateforme se distingue par son infrastructure de streaming LLM spécialisée, qui utilise un protocole serveur pour connecter les grands modèles de langage aux données en streaming et aux contrôles système. Cela inclut des protocoles standardisés pour la gestion du contexte et le pontage de données via HTTP ou l'entrée-sortie standard. Le système couvre un large éventail de capacités, y compris l'orchestration de pipelines de données avec des plugins de source et de destination modulaires, la coordination de groupes de consommateurs pour la mise à l'échelle horizontale et la prise en charge du transport multi-protocole via TCP, QUIC, HTTP et WebSocket. Il intègre également des primitives de sécurité telles que le chiffrement AES-256-GCM pour les données au repos et en transit, et fournit une observabilité via les métriques Prometheus, le traçage OpenTelemetry et un tableau de bord web opérationnel. Le serveur peut être déployé en utilisant des images de conteneur et orchestré via 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.