blob: cd3cdef4152d92f7b80ac014fe46c4cca0326707 [file] [log] [blame]
% defer/defer.tex
\QuickQuizChapter{chp:Deferred Processing}{Deferred Processing}
The strategy of deferring work goes back before the dawn of recorded
history. It has occasionally been derided as procrastination or
even as sheer laziness.
However, in the last few decades workers have recognized this strategy's value
in simplifying and streamlining parallel algorithms~\cite{Kung80,HMassalinPhD}.
Believe it or not, ``laziness'' in parallel programming often outperforms and
scales better than does industriousness!
General approaches to such work deferral tactics include
reference counting, sequence locking, and RCU.
\input{defer/refcnt}
\input{defer/seqlock}
\input{defer/rcu}
\input{defer/rcuexercises}
\input{defer/whichtochoose}
\input{defer/updates}
% @@@ compare and contrast the various mechanisms.