In response to Dave Patterson’s thoughts on multicore challenges and the rationale for increased government funding to solve them, Philip Machanick of the University of Queensland wrote a comment. He listed four lessons about parallel programming that were learned but forgotten. They are:
- parallel programming is inherently hard, and tools and techniques claiming to avoid the problems never work as advertised
- heterogeneous and asymmetric architectures are much harder to program effectively than homogeneous symmetric architectures
- Programmer-managed memory is much harder to use than system-managed memory (whether by the operating system or by hardware)
- Specialist instruction sets are much harder to use effectively than general-purpose ones
Although he sounds pessimistic about multicore processor evolution in his article, it is valid to look into Philip’s so-called forgotten lessons and think why he says parallel programming is difficult. I believe that a lot of multicore research is concentrated on utilizing multicore computing power. Hope with all these research efforts, someday parallel programming (and/or utilizing multicore) would become easier.


