4 repository-uri
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.
Acest proiect este un generator de ID-uri unice distribuit, conceput pentru a produce identificatori unici globali și sortabili pe 64 de biți pe mai multe noduri. Implementează un algoritm compatibil cu Snowflake care previne coliziunile prin combinarea timestamp-urilor, identificatorilor de worker și numerelor de secvență într-un singur întreg. Sistemul include un orchestrator de ID-uri de worker pentru a aloca și menține identități unice de mașină în timpul pornirii și migrării instanței folosind strategii bazate pe baze de date. Pentru a crește throughput-ul cererilor și a reduce latența, utilizează un strat de caching de tip ring-buffer care pre-generează identificatori și folosește un mecanism de reumplere bazat pe praguri. Software-ul oferă capabilități pentru gestionarea cheilor de baze de date distribuite, coordonarea nodurilor de sistem și configurarea distribuției biților pentru a echilibra nevoile de concurență față de durata de viață a sistemului. Include, de asemenea, utilitare pentru parsarea identificatorilor generați înapoi în componentele lor originale.
Employs cache-line padding between buffer elements to eliminate false sharing and increase hardware throughput.
This project is a technical reference and a collection of internal analysis notes focused on the Go language runtime and compiler. It provides a detailed breakdown of the language internals, covering memory management, garbage collection, and the execution model of the scheduler. The material distinguishes itself by providing deep dives into low-level system details, including a reference for Go assembly instructions, register usage, and system call interfacing. It specifically analyzes the internal implementation of concurrency primitives, such as the goroutine scheduling mechanism, channel
Details the use of padding bytes to prevent CPU cache coherence traffic caused by false sharing.