1 - Sequential Computing
- Standard programming model is sequential computing, the computer executes each operation in order and one at a time; dependence
- due to single core CPUs
2 - Parallel Computing
- Most modern computers are multicore
- Independent tasks in the problem
- Multi-core processors can take advantage of parallel computing, it breaks the programs into smaller sequential operations
- One way to evaluate the benefits of parallel computing is to measure speedup
- The ratio of the time taken to run the program sequentially to the time taken to run the parallelized program
3 - Distributed Computing
- Many different computers
- Often used together with Parallel
- Can improve the performance by using many computers running in parallel
- Computers must be able to communicate over the network
- time is added by sending messages
- The trouble must be worth it