Parallel programming and computational thinking
This chapter introduces the concept of computational thinking. It builds on the previous chapters to illustrate the central theme in computational thinking. It first reviews the main goals of parallel programming. It then discusses the thinking process of problem decomposition and algorithm selection. It then goes into the main concepts covered in the previous chapters and shows how they can be generalized into broader computational problem solving techniques.
Strong scaling; weak scaling; problem formulation; model; hardware limitations; program transformation; gather; scatter; data sharing; locality; binning; tiling; approximation