Lecture 2
Learning objectives
After this class, you should be able to:
- Define the time taken by a parallel program.
- Define the communication cost model that we will be using in this course.
- Derive the time complexity of different reduction implementations using our communication cost model.
- Given a simple parallel algorithm, derive its time complexity.
- Explain the difference between data parallelism and task parallelism.
- Explain the differences between shared memory and distributed memory programming.
- Explain the differences between concurrent, distributed, and parallel programming.
Reading assignment
- Lec-2 slides.
- Chapter 1.
- Review the basic idea behind caches from your computer organization course.
Exercises and review questions
- Questions on current lecture's material
- (Post on the discussion board) We discussed an analogy between distributed memory programming and people communicating with each other when they work in a group. Give an example of a human activity that is analogous to shared memory programming.
- Questions on next lecture's material
- What are the sizes of the different types of caches on linprog?