The Free On-line Dictionary of Computing (18 March 2015):
A feature of a programming language for a parallel
processing system which decides automatically which parts to
run in parallel.
The best way of providing implicit parallelism is still (1995)
an active research topic. The problem is to generate the
right number of parallel tasks of the right size (or
"granularity"). Too many tasks and the system gets bogged
down in house-keeping, or memory for waiting tasks runs out,
too few tasks and processors are left idle.
The best performance is usually achieved with explicit
parallelism where the programmer can annotate his program to
indicate which parts should be executed as independent