http://www.skillshare.com/Introduction-to-Lock-Free-Algorithms/592151380/1963589433
I will look into possibly getting a video recording for the interested
that won't be able to make it. I have copy-pasted the course outline
for the interested:
This class introduces the student 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, students 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 course concludes
with a plethora of valuable resources for the student to learn more
about this exciting topic.
Class Format: The course is delivered as a two hour lecture divided
into an hour and a half of presentation and thirty minutes for
questions and discussion. Several of the covered concepts will be
developed and explored in real time. This lecture is structured in a
manner by which attendees can easily grasp techniques and concepts,
many of which are buried in sometimes inaccessible academic
literature.
Topics include: blocking synchronization, atomic operations and the
consensus problem, obstruction-freedom, wait-freedom, lock-freedom,
memory models, the ABA problem, safe memory reclamation and the
practical implications of non-blocking synchronization.
Prerequisites: Many of the concepts learned in this class 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.
Regards.
--
Samy Al Bahra [http://repnop.org]