The property of a computer program, or program segment, that allows for the parallel execution of parts of the same program. Parallel programming covers a wide range of degrees, from the very small grain (e.g., similar operations on multiple elements of the same array or matrix) to large grain (e.g., simultaneous execution of unrelated procedures)