Hacker News new | past | comments | ask | show | jobs | submit login

Sure. IMO it is important to have an overall picture of the fields of Concurrent/Parallel/Distributed architecture/programming before delving into the details of a language/library implementation. To that end i have found the following books useful;

1) Foundations of Multithreaded, Parallel, and Distributed Programming by Gregory R. Andrews - This is one of my favourites even though old. You get to learn/compare the different paradigms in one single book.

2) Parallel Programming: Concepts and Practice by Bertil Schmidt et al. - This is a more recent book with good explanations/coverage including CUDA.

3) The Art of Multiprocessor Programming by Maurice Herlihy et al. - Well known classic though with a main focus on shared-memory architectures.

Along with the above you also need more detailed language/library specific implementation books;

a) C++ Concurrency in Action by Anthony Williams.

b) Programming with POSIX Threads by David Butenhof.

c) UNIX Systems Programming: Communication, Concurrency and Threads by Kay Robbins and Steve Robbins.

Finally; for studying concurrency at the OS level where software meets hardware, i have found nothing better than;

i) Unix Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers by Curt Schimmel.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: