A type of algorithm that runs multiple threads of computation simultaneously to speed up the process.