The developments in computer architecture in the last thirty years have mostly revolved about the effective use of parallelism. However, only recently have the parallel computers become widespread and irreplaceable. This course will deal with the basics of parallel computer architectures, as well as the programming techniques applicable to concurrent, parallel and distributed programs. In architecture, our focus will be on the most widely accepted architectures, as well as with the multiprocessors on a chip. In the software part, we will mostly cover modern threading techniques and distributed programming concepts.
D. Culler and J. P. Singh, Parallel Computer Architecture, Morgan Kaufmann Publishers, 1999.
B. Wilkinson and M. Allen, Parallel Programming , Prentice-Hall, 2005.
|Background: Computer Architecture preliminaries [1 week]|
|Parallel Computer Architecture: [4 weeks]|
|Distributed Memory Architecture: [2 weeks]|
|Cache Coherent-NUMA and SoC Multiprocessors: [2 weeks]|
|Concurrent Programming: [2 weeks]|
|Parallel and Distributed Programming:[2 weeks]|
|Project Presentations: [1 weeks]|