Introduction
Where a sequential execution can be imagined as a single worker on an assembly line moving between tasks, a parallel process is more like a series of workers, each doing a specific task.
It takes 4 months to grow a tomato. Can you only grow 3 tomatoes a year ??
Parallel does not mean always that your process will use another CPU. Two processes can run in parallel using only one CPU
Parallelism use is only going to increase because:
- CPU clock speeds are barely increasing (Moores law hits the roof),
- Multi-core processors are standard,
- and networks are getting faster.
Parallel execution is the ability to :
- divide a single operation through the hardware ressource
- apply multiple CPU and I/O resources to the execution of a single operation.
There are three architectures and approaches to increase performance through paralleled work over additional hardware:
- shared disk known also as shared memory or shared everything
Articles Related
Implementation
mechanism by which a task can be run in parallel may be:
- time-sharing cooperative multitasking,
- fibers,
- threads,
- processes, using different hyperthreads,
- cores,
- CPUs,
- machines,
- etc.