1. | Concurrent programming concepts; overview of course |
2. | Introduction to the MPD programming language |
3. | Concurrent programming in MPD |
4. | Techniques for parallelizing programs |
5. | Synchronization, atomic actions, and await statements |
6. | Semantics of concurrent programs; ways to avoid interference |
7. | Safety and liveness properties; Critical sections: spin locks |
8. | Critical sections: efficient spin locks; fair solutions |
9. | Parallel programming; bag of tasks paradigm; Pthreads library |
10. | Semaphores: mutual exclusion, signaling, split binary |
11. | Semaphores: dining philosophers, readers/writers |
12. | Semaphores: passing the baton, scheduling |
13. | Monitors: basic concepts, signaling disciplines |
14. | Monitors: synchronization techniques |
15. | Monitors: larger examples; use in Java, Pthreads, and MPD |
16. | Implementations: kernels, multiprocessors; review for exam |
17. | MIDTERM EXAMINATION 1 -- Thursday, March 8 |
--- | Spring Break |
18. | Parallel scientific computing |
19. | Barriers: counter, coordinator, combining tree |
20. | Symmetric barriers; data parallel algorithms |
21. | Message passing: basic concepts and examples |
22. | Message passing: clients and servers |
23. | Message passing: file servers, interacting peers |
24. | Message passing in MPD, MPI, and Java; manager/workers paradigm; Linda |
25. | Distributed parallel programming: heartbeat algorithms; pipeline algorithms |
26. | Remote operations; RPC; Java RMI |
27. | Rendezvous; full MPD language; distributed readers/writers |
28. | Distributed programming: replicated files, dining philosophers, distributed file systems |
29. | MIDTERM EXAMINATION 2 -- Thursday, April 26 |
30. | Distributed programming paradigms: clocks, tokens |
Homework sets (4) | 40 points each for undergrads and honors students, 50 for grads |
Midterms (2) | 60 points each for undergrads, 75 for grads and honors students |
Projects (2) | 60 points each for undergrads, 75 each grads and honors students |
The total for all assignments and exams is 400 points for undergrads, 460 points for honors students, and 500 points for graduate students.
Your final grade will be determined by how well you do relative to the maximum possible for your peer group. If you get at least 90% of the possible points, you will get an A; if you get at least 80% you will get a B; and so on. The final lines might be drawn somewhat below these levels.
Homework 1 | assign 1/25 | due 2/6 |
Homework 2 | assign 2/8 | due 2/20 |
Homework 3 | assign 2/22 | due 3/6 |
MIDTERM 1 | 3/8 | |
Parallel Project | assign 3/22 | due 4/3 (programs) and 4/10 (reports) |
Homework 4 | assign 4/12 | due 4/24 |
Distributed Project | assign 4/10 | due 4/17 (proposal) and 5/8 (demo or paper) |
MIDTERM 2 | 4/26 |
You are responsible for all material covered in lectures.
You may discuss assignments with classmates, but all work you turn in must be your own. If in doubt, refer to the University's "Code of Academic Integrity" or ask the instructor.
Assignments must be turned in during class on the dates they are due, unless you have received permission in advance for an extension. Examinations must be taken in class on the date they are given, unless you have received permission in advance.
Email. See the instructor or send him email when you have questions about the lectures, homework assignments, grading etc. We will later establish a class-wide email list so that we can quickly communicate with all of you.
Newsgroup. The class newsgroup is cs.course522. Use it to post general questions; we will post answers there so all of you can see them.
Class Directory. The home directory for the class is /home/cs522. Copies of handouts, programs, and other information will be stored there.
Class Web Page. The home page for the class contains course-related information, including links to information on MPD and SR and links to Postscript copies of all assignments. It is reachable by either of the following URLs:
http://www.cs.arizona.edu/classes/cs422/ http://www.cs.arizona.edu/classes/cs522/
Book Web Page. The home page for the textbook contains lots of information that you might find useful. Get to it using the link on the class web page or the following URL:
http://www.cs.arizona.edu/people/greg/mpdbook