Concurrent Programming Session 1: Course Overview Computer Engineering Department I Iran University U i i off SScience i and dT Technology h l Tehran, Iran
Instructor: Hadi Salimi Distributed Systems Lab. Computer Engineering Department, Department Iran University of Science and Technology,
[email protected]
What’ss the course about? What The overall aim of this course is to provide the necessary knowledge in the core concepts and techniques for concurrentt programming. i y It will study concurrent programming with ith threads th d and d processes in: i y
◦ Shared Memory Machines x MP/MP/GPU
◦ Distributed Systems x MC
Course Assistants Omid Kashefi
Nima Ghaemian
Course Outline (Tentative) y
Introduction to Parallel/Distributed Programming
y
P ll l P Parallel Programming i C Concepts
y
Parallel Architectures (MP/MC/MC/GPU)
y
Processes and Synchronization y ◦ Semaphores, Locks, Monitors, …
y
Shared Memory Parallel Programming ◦ OpenMP, p , CILK,, p pThreads
y
Multi-Computer Programming ◦ Socket Programming, MPI, RPC, RMI,
y
Parallel Algorithms
y
Parallelizing Compilers
Textbooks Gregory R. Andrew, “Foundations of Multithreaded, Parallel, and Distributed Programming”, Addison Wesley, Programming Wesley 1999
Textbooks (Cont.) (Cont ) Cameron Hughes , Tracey Hughes “Professional Multicore Programming: Design and Implementation for C++ Developers”, Wrox Publications, 2008
Textbooks (Cont.) (Cont ) y
Other textbooks would be introduced later.
Evaluation Midterm Exam y Final Exam y Homework y Programming Exercises y
◦ Our O Cl Cluster t
Final Project(s) y Contribution to Class y