Parallel Programming

Get Started. It's Free
or sign up with your email address
Rocket clouds
Parallel Programming by Mind Map: Parallel Programming

1. Control Divergence

1.1. Because of "If" statement

1.2. Boundary conditions

2. Parallel Computation Patterns

2.1. Convolution

2.2. Reduce

2.3. Prefix Sum (Scan)

3. Grids

3.1. Blocks 2D

3.1.1. Threads 3D

3.1.1.1. registers

3.1.2. Shared memory

3.1.3. warp

3.2. Global memory

3.2.1. Bursts copying

3.3. Constant memory

3.4. Textures

4. Communication Patterns

4.1. Map

4.2. Gather

4.3. Scatter

4.4. Stencil

4.5. Transpose

5. High level strategies

5.1. Maximize arithmetic intensity

5.1.1. coalesced g.mem access

6. Atomics

6.1. atomicAdd

6.2. atomicMin

6.3. atomicXOR

7. Parallel Computation Patterns

7.1. Reduce

7.2. Scan

7.2.1. Inclusive\Exclusive

7.2.2. Hillis Steele (step efficient)

7.2.3. Blelloch Scan (work efficient)

7.2.4. Segmented scan

7.3. Histogram

7.3.1. Atomics

7.3.2. per thread, then reduce

7.3.3. sort by key, then reduce

7.3.3.1. thrust lib

7.4. Compact

7.4.1. input

7.4.2. predicate

7.4.3. output

7.4.3.1. sparse

7.4.3.2. dense

7.4.4. Allocate

7.4.4.1. Clipping

7.4.5. Thrust example

7.4.5.1. Stream_compaction.cu