This talk introduces the attendee to non-blocking algorithm design and implementation. With multi-core processors being a commodity item, the ability to design and implement composable, scalable and resilient concurrent systems is becoming an increasingly (in)valuable skill. Lock-free synchronization allows concurrent systems to exude composibility, scalability, and resilience in ways impossible (in theory and in practice) via traditional lock-based synchronization methods. As lock-free algorithms receive a fair share of inappropriate hype, attendees will leave this course possessing the ability to determine when, where, and how to best utilize lock-free data structures and algorithms in real-world systems. The talk concludes with a plethora of valuable resources for the attendee to learn more about this exciting topic.
Many of the concepts explored in this talk are language-agnostic, however, the examples used will be in the C programming language (C99/GNU99). In order to maximize the value of this class, I would recommend an intermediate to advanced level of familiarity with the C or C++ programming language. It is strongly recommend that you be familiar with multi-threaded programming in some programming language.
I am a software engineer focused on developing a leading, real-time low latency online advertising platform. Before moving to New York, I played a crucial role on the engineering team behind the leading high-performance messaging platform. Prior to that, I was an active member of a high-performance computing laboratory and was primarily involved with Unified Parallel C and the performance modeling and analysis of shared-memory multi-processor systems.
I am actively involved in the open-source community and am the lead developer and the maintainer of Concurrency Kit, a library providing a plethora of concurrency primitives, safe memory reclamation mechanisms, and lock-less/lock-free data structures. This library exists to aid in the design and implementation of high-performance concurrent systems implemented in C (or C compatible) languages.
Sep 25 – TBD
2 Session Local Class