Intro Flashcards
Define sequential computing.
- Executes a program that contains a discrete series of instructions.
- Instructions are executed one after the other. (one instruction is execute at a time)
- All instructions are executed on a single core/processor.
Define parallel computing.
- A problem is broken into discrete parts that can be solved simultaneously.
- One part contains a set of instructions that are executed on a specific core/processor.
- Different parts are executed on different cores.
- What are situations where parallel processing will outperform serial computing?
- Vice-versa?
- Applying filters in image processing, matrix multiplication
- serial I/O - file reading, recursive algorithms with strong dependencies.
What are the requirements a program should meet to be prallelized?
- Be able to be partitioned into discrete partitions that can be solved simultaneously.
- Execute multiple instructions at the same time.
- Spend less time using multiple computing resources than on a single resource.
Define speedup
The ratio of time taken to solve a problem on a single processor, to the time taken on a parallel system.
Define efficiency
The ratio of speedup to the number of processors. (how effectively the processors are utilized)
Why are GPUs so good at graphics processing?
They have thousands of cores optimized for parallel processing. Graphics operations include manipulating pixels where the same operation is performed on a large number of pixels. These operations can be done simultaneously. GPUs make this process efficient by parallelizing this processes.