6 private links
In pipelined processors, instruction are fetched, decoded, and executed speculatively, and are not permitted to modify system state until instruction commit. For instructions that modify registers, this is often achieved using register renaming. For stores to memory, speculative stores write into a store queue at execution time and only write into cache after the store instructions have committed.
The behavior of dispatch_once is in the name. It does something once and only once.
It takes two parameters. The first is a predicate that tracks the "once". The second is a block to execute on the first call.
This article is an attempt to sum up a small number of generic rules that appear to be useful rules of thumb when creating high performing programs. It is structured by first establishing some fundamental causes of performance hits followed by their extensions.
Speed memory access by arranging data to take advantage of CPU caching.
Branch prediction in the mill cpu
Recently I’ve been doing some benchmarking and came upon a very surprising behavior from a number of different Intel i7 CPUs (it manifests on Sandy Bridge and Haswell desktop-class CPUs as well as Sandy Bridge-EP Xeon CPUs).
Software developers using Windows have a fantastic process explorer, made by Mark Russinovich. Linux lacks such a process explorer tool. This projects aims (in the end) to be an equivalent process explorer for Linux.
Goal is to have the same functionality of the Windows process explorer under linux, or less if linux limits us.
lockfree, waitfree, obstructionfree synchronization algorithms and data structures, scalability-oriented architecture, multicore/multiprocessor design