Things that a project need.
This is the main limit to parallelization. Think about things like a simulator where you need the previous time step to compute the next iteration.
Stride
Sometimes we can do n threads of work at the same time:
for i in 4..vec.len() {
vec[i] = vec[i-4]+1;
// we can do 4, 5, 6, and 7 at the same time
}Memory Carried Dependancies

Used in Critical Paths.