The Art of Multiprocessor Programming 2nd Edition Book Club

3 days ago (eatonphil.com)

Hey folks, this is the 7th book in a series of readings I run over Google Groups. There are about 1800 people in the group and 300-800 join each reading. While we often read books on database internals this one seems pretty relevant to any developer working on systems that scale. Hope to have you in the group!

Also even if you don't want to join this particular reading, join the mailing list for the overall book club (on /bookclub.html) because we're going to read Designing Data Intensive Applications 2nd Edition together after it comes out this winter.

  • Herlihy used to have video lectures up. He gave lectures to university students and he recorded it one year. I was lucky enough to watch them. We had this course for my computer science master. It was a good course thanks to this book :)

    • I had Herlihy for a few classes around 2000.

      FWIW, he's a really great instructor and a super nice guy. Taking courses with him was a real treat.

  • I wasn't aware of this initiative, looks interesting and such a good idea in hindsight!

    Might be a good help to keep the enthousiasm and energy to read a technical book in its entirety!

  • Interesting idea! This is an excellent book for learning about concurrency and parallelism. I'll join if I can find the time.

    For reference, the second edition includes two additional chapters: "Optimism and manual memory management" and "Transactional programming". Did you intentionally skip those? :)

  • Have you considered creating collaboratively written Anki decks for each chapter of each book as you read them?

    • I have perfected the personal level of effort I'm interested in/capable of putting into this club. But anyone who participated is welcome to do whatever they'd like! Or you can also start your own club.

      1 reply →

  • I am so surprised to hear about this book reading club, I don't know how it works but I will join and try to work through the book like everyone else.

The 2nd edition was published in 2020 by Morgan Kaufmann (ISBN: 978-0124159501) and is available on Amazon and other book retailers, though the 2012 "revised reprint" of the 1st edition is often confused with it.

To the OP, as a participant in one of your previous reading groups and an organizer of similar groups:

What are your goals for these reading groups? How completely are you meeting them? "Goals" in a broad sense, anywhere from "motivating myself to read more" to "building a community of experts and friends."

This seems great! Would love to join however I can only seem to find the 2008 and 2012 pdf of The Art of Multiprocessor Programming for free, is there a link for the 2020 version?

  • It’s not a free book. I believe that comment was a gentle nudge to remind people they actually need to buy it to support the author.

    • Thanks! I was just confirming because the older versions were available for free, but I do agree

Signed up. Concurrency has been a bit of a blindspot for me outside the basics. It'll be nice to be able to really evaluate approaches and understand the internals.

It says to find a 2020, but all I can see (on O'Reilly) is a revised reprint from 2012.

Also, if you sign up is this then only for this book's discussion?

  • https://www.sciencedirect.com/book/9780124159501/the-art-of-... - This is the current edition.

    I'm only comparing the TOCs here:

    Chapters 1-6 have, unless I missed something, the same chapter topics and section titles.

    Chapter 7 seems to be reorganized a bit and adds an exercises section.

    Chapters 8 - 16 have one extra section for exercises each, I'm not seeing (quick review) any other differences in section names.

    Chapter 17 becomes Chapter 18, adds an exercises section.

    Chapter 18 becomes Chapter 20, several additional sections.

    So the earlier edition is missing Chapter 17 "Data parallelism" and Chapter 19 "Optimism and manual memory management" from the newer edition. Only the missing Chapter 17 would impact the reading group plan since it is covering chapters 1-18.

  • I included the ISBN on the page. :) 9780124159501

    Yes this is only for this book's discussion. The broader mailing list is on /bookclub.html. And that mailing list is used just to stay in the loop about future readings (and votes on future readings).

Hi Phil, I want to join the group. The form asks "chapter discussion starter email", what do you mean by that?

  • It's explained on the page. :) Each week someone kicks off discussion. The form helps me find a volunteer for each chapter.

    It's what makes it sustainable for me to keep running this group.

I saw a past iteration was in person in NYC. Do you still do in person or is it all virtual now?

  • The very first one I did was in person in NYC. Of the 20 who signed up 5-7 actively showed up. I decided to move it purely asynchronous online to make it easier for anyone anywhere to participate. I host other meetups in NYC still just not a tech book club.

This seems interesting. Any specific reason why it's over emails instead of something like a forum or discord?

  • Discord would be unpleasant for something like this with so many participants. It's a similar reason to skipping out on Hangouts, Zoom, etc. It forces synchronization, if you're not online during the discussion you're effectively barred from it. It can be very hard to catch up and very hard to respond to any particular thread of discussion. Discord is also, by design, essentially single-threaded. You can reply to specific comments but it's still presented in an interleaved format which makes tracking difficult when multiple threads of discussion are occurring at once.

    If the discussion is light, it's a non-issue, but with 300-800 (per eatonphil's comment) it's likely that it will not be light.

    • Your criticism of discord for this use case is valid. I didn't mean it has to be discord, it could be any platform as long as it allows having proper discussions without being a pain. I believe something like a flarum forum would be way better for this use case.

      1 reply →

    • Only a minority actively participates. But it's for all the other reasons you mention yes.

      And, unrelatedly, even though few actively participate that isn't the point. It is a motivational vehicle. And I repeatedly hear about this from folks who join and don't participate. That's perfectly fine with me.

      3 replies →