MPI-INF Logo
MPI-INF/SWS Research Reports 1991-2021

2. Number - only D1

MPI-I-2007-1-003

LFthreads: a lock-free thread library

Gidenstam, Anders and Papatriantafilou, Marina

October 2007, 36 pages.

.
Status: available - back from printing

This paper presents the synchronization in LFthreads, a thread library entirely based on lock-free methods, i.e. no spin-locks or similar synchronization mechanisms are employed in the implementation of the multithreading. Since lock-freedom is highly desirable in multiprocessors/multicores due to its advantages in parallelism, fault-tolerance, convoy-avoidance and more, there is an increased demand in lock-free methods in parallel applications, hence also in multiprocessor/multicore system services. This is why a lock-free multithreading library is important. To the best of our knowledge LFthreads is the first thread library that provides a lock-free implementation of blocking synchronization primitives for application threads. Lock-free implementation of objects with blocking semantics may sound like a contradicting goal. However, such objects have benefits: e.g. library operations that block and unblock threads on the same synchronization object can make progress in parallel while maintaining the desired thread-level semantics and without having to wait for any ``slow'' operations among them. Besides, as no spin-locks or similar synchronization mechanisms are employed, processors are always able to do useful work. As a consequence, applications, too, can enjoy enhanced parallelism and fault-tolerance. The synchronization in LFthreads is achieved by a new method, which we call responsibility hand-off (RHO), that does not need any special kernel support.

  • MPI-I-2007-1-003.pdf
  • Attachement: MPI-I-2007-1-003.pdf (210 KBytes)

URL to this document: https://domino.mpi-inf.mpg.de/internet/reports.nsf/NumberView/2007-1-003

Hide details for BibTeXBibTeX
@TECHREPORT{GidenstamPapatriantafilou2007,
  AUTHOR = {Gidenstam, Anders and Papatriantafilou, Marina},
  TITLE = {LFthreads: a lock-free thread library},
  TYPE = {Research Report},
  INSTITUTION = {Max-Planck-Institut f{\"u}r Informatik},
  ADDRESS = {Stuhlsatzenhausweg 85, 66123 Saarbr{\"u}cken, Germany},
  NUMBER = {MPI-I-2007-1-003},
  MONTH = {October},
  YEAR = {2007},
  ISSN = {0946-011X},
}