After learning the GPU programming model and writing a basic CUDA program Week 2 introduces some concepts for efficient algorithms. Communication is the first issues; how do threads communicate efficiently. This is easier in some problems, ie: Map than others ie: Scan/Sort. The memory access and write patterns  of some of the key algorithm types are discussed. Input-to-Output relationships: Map: one-to-one Gather: many-to-one Stencil: several-to-one Reduce: all-to-one Scatter: one-to-many Scan: all-to-all Sort:.. Read More