This document discusses thread cooperation in parallel programming on GPUs. It introduces mechanisms for threads to communicate and synchronize their parallel execution. Specifically, it shows how to index data for threads within blocks and across multiple blocks to allow vector addition on arbitrarily long vectors. By launching threads in a grid of blocks and incrementing the thread index by the total number of threads, each thread can work on a different portion of the data in parallel.