summaryrefslogtreecommitdiffstats
path: root/howto
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@kernel.org>2021-01-09 15:12:20 -0800
committerPaul E. McKenney <paulmck@kernel.org>2021-01-10 15:30:07 -0800
commitdbafd71e3c2e6415b484343cf4cc025a2206b23a (patch)
treee88a89099a598b888525755998aa34e8d021314d /howto
parentd28595295c81059517148689272ec52e811d5cfe (diff)
downloadperfbook-dbafd71e3c2e6415b484343cf4cc025a2206b23a.tar.gz
howto: Updates and wordsmithing
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'howto')
-rw-r--r--howto/howto.tex52
1 files changed, 29 insertions, 23 deletions
diff --git a/howto/howto.tex b/howto/howto.tex
index 9f3ee4ca..07c6c0ba 100644
--- a/howto/howto.tex
+++ b/howto/howto.tex
@@ -190,8 +190,8 @@ of parallel programming.
It is worth noting that Paul was taught most of this material by
parallel hardware and software, not by professors.
In Paul's experience, professors are much more likely to provide
- answers to verbal questions than are parallel systems,
- Watson notwithstanding.
+ answers to verbal questions than are parallel systems, recent
+ advances in voice-activate assistants notwithstanding.
Of course, we could have a lengthy debate over which of professors
or parallel systems provide the most useful answers to these sorts
of questions,
@@ -221,18 +221,6 @@ Here are a few possible strategies:
goal is to gain a general understanding of the material
or if you are skimming through the book to find a
solution to a specific problem.
-\item If you find the Quick Quizzes distracting but impossible
- to ignore, you can always clone the \LaTeX{} source for
- this book from the git archive.
- You can then modify \path{Makefile} and \path{qqz.sty} to eliminate
- the Quick Quizzes from the PDF output.\footnote{
- On the other hand, modifying these two files does not
- suffice at the moment if what you'd like to do is to pull
- the answers inline, immediately following the questions.
- This is due to the fragility of verbatim environments
- within arguments of \LaTeX\ macros.
- It should still be possible, for example, by editing every
- \path{.tex} source by a script, though.}
\item Look at the answer immediately rather than investing
a large amount of time in coming up with your own
answer.
@@ -243,6 +231,18 @@ Here are a few possible strategies:
deeper understanding of the material, but when you do not
expect to be called upon to generate parallel solutions given
only a blank sheet of paper.
+\item If you find the Quick Quizzes distracting but impossible
+ to ignore, you can always clone the \LaTeX{} source for
+ this book from the git archive.
+ You can then run the command \co{make nq}, which will
+ produce a \co{perfbook-nq.pdf}.
+ This PDF contains unobtrusive boxed tags where the Quick Quizzes
+ would otherwise be, and gathers each chapter's Quick Quizzes
+ and their answers at the end of that chapter.
+\item Learn to like (or at least tolerate) the Quick Quizzes.
+ Experience indicates that quizzing yourself periodically
+ while reading greatly increases comprehension and depth
+ of understanding.
\end{enumerate}
Note that as of mid-2016 the quick quizzes are hyperlinked
@@ -272,10 +272,10 @@ the chapter's exercises I could answer off the top of my head.\footnote{
Forcing myself to answer the questions greatly increased my
retention of the material.
So with these Quick Quizzes I am not asking you to do anything
-that I have not been doing myself!
+that I have not been doing myself.
Finally, the most common learning disability is thinking that
-you already know.
+you already understand the material at hand.
The quick quizzes can be an extremely effective cure.
\section{Alternatives to This Book}
@@ -284,8 +284,8 @@ The quick quizzes can be an extremely effective cure.
\epigraph{Between two evils I always pick the one I never tried before.}
{\emph{Mae West}}
-As \pplsur{Donald}{Knuth} learned, if you want your book to be finite,
-it must be focused.
+As \pplsur{Donald}{Knuth} learned the hard way, if you want your book
+to be finite, it must be focused.
This book focuses on shared-memory parallel programming, with an
emphasis on software that lives near the bottom of the software stack,
such as operating-system kernels, parallel data-management systems,
@@ -310,7 +310,7 @@ Fortunately, there are many alternatives available to you:
\ppl{Michael}{Scott}'s textbook~\cite{MichaelScott2013Textbook}
approaches similar material with more of a
software-engineering focus, and, as far as I know, is
- the first formally published academic textbook to include a
+ the first formally published academic textbook with
section devoted to RCU.
\item If you would like an academic treatment of parallel
programming from a programming\-/language\-/pragmatics viewpoint,
@@ -327,9 +327,8 @@ Fortunately, there are many alternatives available to you:
applying this work to a warehouse application.
The realism of this example is attested to by
the section entitled ``Partitioning the Big Ball of Mud'',
- wherein the problems inherent in parallelism often
- take a back seat to the problems inherent in getting
- one's head around a real-world application.
+ in which the problems inherent in parallelism often take a back
+ seat to getting one's head around a real-world application.
\item If you want to work with Linux-kernel device drivers,
then \pplsur{Jonathan}{Corbet}'s, \pplsur{Alessandro}{Rubini}'s,
and \pplsur{Greg}{Kroah-Hartman}'s
@@ -376,6 +375,12 @@ Fortunately, there are many alternatives available to you:
cache organizations affect the implementation of kernel
internals should take a look at \ppl{Curt}{Schimmel}'s classic
treatment of this subject~\cite{Schimmel:1994:USM:175689}.
+\item If you are looking for a hardware view, \ppl{John}{Hennessy}'s and
+ \ppl{David}{Patterson}'s classic
+ textbook~\cite{Hennessy2011} is well worth a read.
+ If you are looking for an academic textbook on memory ordering,
+ that of \ppl{Daniel}{Sorin} et al.~\cite{DanielJSorin2011MemModel}
+ is highly recommended.
\item Finally, those using Java might be well-served by \ppl{Doug}{Lea}'s
textbooks~\cite{DougLea1997Textbook,Goetz2007Textbook}.
\end{enumerate}
@@ -437,6 +442,7 @@ make # -jN for parallel build
evince perfbook.pdf & # Two-column version
make perfbook-1c.pdf
evince perfbook-1c.pdf & # One-column version for e-readers
+make help # Display other build options
\end{VerbatimL}
\caption{Creating an Up-To-Date PDF}
\label{lst:howto:Creating a Up-To-Date PDF}
@@ -540,6 +546,6 @@ The style for this particular book is documented in
As noted at the beginning of this section, I am this book's editor.
However, if you choose to contribute, it will be your book as well.
-With that, I offer you Chapter~\ref{chp:Introduction}, our introduction.
+In that spirit, I offer you Chapter~\ref{chp:Introduction}, our introduction.
\QuickQuizAnswersChp{qqzhowto}