running multiple task simultaneously: establishing criteria that determine when a task is performed, synchronization among tasks to coordinate sharing, and allocation of computing resources
process is split into parts that execute on different processors attached to the same computer
when a processor executes more than one instruction at a time and works well with today's multi-core microprocessors