// HACKER NEWS — CYBERSECURITY
Book review: Is parallel programming hard, and, if so, what can you do about it?
Here are my thoughts on the free online textbook Is Parallel Programming Hard, And, If So, What Can You Do About It? by Paul E. McKenney, author of the Linux kernel’s RCU synchronization mechanism.
I read a lot of this textbook, got my fill, and probably won’t read more of it in the near future so wanted to write this review while it is all still fresh.
Here I’ll talk about the mindset/life phase and physical setting I was in when I started reading this textbook.
This might be like the tedious personal flavor preamble they have on recipe websites so skip ahead if that does not interest you.
My professional life had revolved around TLA⁺ & distributed systems for the past decade, and I was thinking it was time for a change.
A transitional and emotionally tumultuous period!
In 2022 I had tried (and failed) to move to Lean, hoping to acquire an unbelievably niche & nonexistent job as the guy who formalizes researchers’ quantum information processing results for them.
I burned out on that, which given recent advances in automated theorem proving might have been my temporarily-prescient nervous system dodging me a bullet.
Thus was the history & context in which I attended the 2026 Software Should Work conference in Columbia, Missouri.
The conference had a lot of good talks, but I especially enjoyed the one on Fil-C by Filip Pizlo:
I also got to talk to Fil a fair bit, about interpreters and then about concurrency.
I fancied myself pretty knowledgeable about concurrency from TLA⁺ & distributed systems, but Fil told me about the difficulty of writing a concurrent lock-free garbage collector and I realized I actually knew very little about concurrency (feeling that you know very little is the mark of a good conference).
Fil also mentioned TLA⁺ might not be useful (or at least ergonomic) for reasoning about events which happen literally concurrently (an actual possibility with a multicore CPU!) and the importance of analyzing concurrent algorithms for linearizability, a concept I sort of understood in the distributed systems sense.
All of this seemed very alluring, so I looked around for a textbook to read about concurrency that focused more on lock-free aspects as opposed to mutex-based or message-passing patterns.
Is Parallel Programming Hard, And, If So, What Can You Do About It? seemed to fit the bill, focusing as it does on general concurrent programming & CPU cache effects instead of more specific textbooks about how to write lock-free datastructures.
It also had a few (2023, 2021, 2020, 2015, 2014, 2011) moderately interesting HN threads.
I don’t think it’s useful spending time in analysis paralysis trying to find the exact “right” textbook (this is really just a clever way to procrastinate), so it seemed good enough.
The physical setting in which I read this textbook was a 1.5 week vacation to visit my family in a quiet, wooded part of Canada.
2026 also turned out to be a particularly horrific mosquito season.
Thus I spent much of the time sitting in a cool screened-in patio, diligently watched over by hundreds of guards ensuring I did not leave my post:
Satellites & cell towers have made distracting internet connectivity annoyingly good even in the more remote parts of the country, but otherwise this was an optimal textbook reading location.
Some quick notes on the actual structure of the textbook; it is available in no fewer than three separate formats, all PDF:
The last one is perfect for reading on my Pine64 PineNote.