By rchrd on Oct 08, 2007
Clearly, multithreaded or parallel programming is growing in importance as the new chip architectures move towards multiple cores and multiple threads rather than merely upping clock cycle times.
But parallel programming is hard, no doubt about it. It's so much easier to cast a computational problem into a serial, one-step-at-a-time framework than think of it in terms of data distribution over networks of compute nodes.
So how do you learn parallel programming?
Luckily there are a number of resources on the web. Here are just a few links
- Lawrence Livermore National Lab has an extensive set of online tutorials and training material.
- NERSC Tutorials
- Ian Foster's Designing and Building Parallel Programs (an online book and tutorial, still useful even tho it's now 12 years old)
- NCSA HPC Training Courses - requires (free) registration and login, has detailed online courses on OpenMP, MPI, parallel programming concepts, and combined shared/distributed memory parallelization.