Cilk Arts’ good eBook on multicore coding

Multithreaded development in low-level language can be tricky, in large part due to race conditions, deadlocks, and the like. For example, say you have two threads. Perhaps the first thread is waiting on input from the second thread — while the second thread is waiting on input from the first thread. Oops.

There are a whole bunch of problems inherent in multithreaded development. They’re compounded when the application is on multiple cores or multiple processors.

How do you overcome those challenges? There are many coding techniques, such as thread pool and message passing, but they are hard to implement without having the programmer bogging down in multithreading details, and losing sight of the application logic. Different concurrency platforms can simplify that task, such as OpenMP, or parallel languages, like Carnegie Mellon’s NESL, or libraries, like Intel’s Threading Building Blocks, or language extensions, like MIT’s Cilk.

Cilk Arts, the company that’s created a commercial version of Cilk called Cilk++, has just finished a well-written eBook, “How to Survive the Multicore Revolution,” that introduces the challenges of multithreaded development on multicore systems. Only a small part of the eBook, written by Charles Leiserson and Ilya Mirman, is a commercial for Cilk++. (You can download the document without leaving your contact info, which is greatly appreciated.)

While you’re at it, read about my Threading Maturity Model (ThMM), proposed in January 2007. What the heck, eh?

Z Trek Copyright (c) Alan Zeichick
2 replies
  1. Larry
    Larry says:

    Your image with the “button” needs to be linked to the download! (Huh, what a surprise that I jumped on _this_ post!) — larry

Comments are closed.