4 dépôts
Adding dummy data around variables to prevent CPU cache coherence traffic from false sharing.
Distinct from SIMD Buffer Padding: Specifically addresses false sharing via padding, whereas SIMD padding focuses on vector load alignment.
Explore 4 awesome GitHub repositories matching software engineering & architecture · Cache-Line Padding. Refine with filters or upvote what's useful.
The Disruptor is a lock-free inter-thread messaging library and high-performance event bus. It implements a concurrent ring buffer designed for high-concurrency and low-latency message sequencing. The project utilizes a specific messaging architecture to eliminate lock contention, enabling high-throughput event routing and the exchange of continuous event streams between threads. It ensures strict first-in-first-out ordering and immediate data visibility across processing threads. The library provides capabilities for lock-free data streaming, sequential data ordering, and sequence-based eve
Implements cache-line padding to eliminate false sharing and maximize CPU cache efficiency.
This project is a collection of educational resources and technical guides focused on Go performance optimization. It provides instruction on improving execution speed and reducing memory usage through code and architectural refinements. The guides cover advanced strategies for low-level programming, including the use of assembly for SIMD instructions and unsafe pointers for direct memory manipulation. It also details concurrency optimization techniques such as lock sharding and cache-line padding to reduce contention and improve hardware utilization. The material encompasses broad capabilit
Implements cache-line padding to prevent false sharing and reduce CPU cache coherence traffic.
Ce projet est un générateur d'ID unique distribué conçu pour produire des identifiants 64 bits globalement uniques et triables à travers plusieurs nœuds. Il implémente un algorithme compatible Snowflake qui empêche les collisions en combinant des horodatages, des identifiants de travailleur et des numéros de séquence en un seul entier. Le système inclut un orchestrateur d'ID de travailleur pour allouer et maintenir des identités de machine uniques pendant le démarrage et la migration de l'instance en utilisant des stratégies basées sur la base de données. Pour augmenter le débit des requêtes et réduire la latence, il utilise une couche de mise en cache à tampon circulaire qui pré-génère des identifiants et emploie un mécanisme de remplissage basé sur des seuils. Le logiciel fournit des capacités pour gérer les clés de base de données distribuées, coordonner les nœuds système et configurer la distribution des bits pour équilibrer les besoins de concurrence par rapport à la durée de vie du système. Il inclut également des utilitaires pour analyser les identifiants générés en leurs composants originaux.
Employs cache-line padding between buffer elements to eliminate false sharing and increase hardware throughput.
Ce projet est une référence technique et une collection de notes d'analyse interne axées sur le runtime et le compilateur du langage Go. Il fournit une analyse détaillée des rouages internes du langage, couvrant la gestion de la mémoire, le ramasse-miettes (garbage collection) et le modèle d'exécution du planificateur. Le matériel se distingue en fournissant des plongées approfondies dans les détails système de bas niveau, incluant une référence pour les instructions d'assemblage Go, l'utilisation des registres et l'interfaçage des appels système. Il analyse spécifiquement l'implémentation interne des primitives de concurrence, telles que le mécanisme de planification des goroutines, les opérations sur les canaux et les implémentations de verrous mutex. La couverture s'étend à la théorie de la construction des compilateurs, incluant l'analyse lexicale et syntaxique, ainsi que la mécanique du système de types et la gestion des interfaces. Il détaille également diverses techniques d'optimisation des performances, des utilitaires de diagnostic du runtime pour le traçage de la pile et des primitives d'E/S réseau.
Details the use of padding bytes to prevent CPU cache coherence traffic caused by false sharing.