
Lock-free Algorithms
Martin Thompson and Michael Barker explain how Intel x86_64 processors and their memory model work along with low-level techniques that help creating lock-free software.

Martin Thompson and Michael Barker explain how Intel x86_64 processors and their memory model work along with low-level techniques that help creating lock-free software.
With the take up of Agile approaches in the software world, some commentators in the hardware space have been asking how these techniques can be applied and used in the development of hardware-intensive systems. Two recent articles provide advice and guidance on possible ways to gain the benefits of Agile development in the hardware realm.
If using HDDs from Western Digital (WD) with the string "EARS" in the model name, poor performance may have been encountered. Normally HDDs store data with a sector size of 512 bytes; WD's Advanced Format Technology uses 4096 byte sectors. Alignment of data on disk is essential to get the best performance. It's also only a matter of time until other vendors ship disks with non-512-bytes sectors.

James shares his experience as one of the Agile Manifesto co-authors, fathering the original Agile estimating game (which became Planning Poker) and how Agile methods fit with embedded software development. James also discusses his new book, Test Driven Development for Embedded C, while sharing some surprises, such as his recommendation that teams stop using Planning Poker.

John Nolan shows the state of hardware acceleration with GPUs and FPGAs, why it's hard to write efficient code for them, and why to favor polymorphism over if statements for performance.

Martin Thompson and David Farley discuss how to use the scientific method to create high performance systems by measuring performance and adapting the implementation to approach the limits of current hardware. The disruptor architecture is an open sourced result of their work at low-latency, high throughput systems for the retail trading platform of LMAX Ltd.