1. | 1/10 | Concurrent programming concepts; overview of course |
2. | 1/15 | Techniques for parallelizing programs |
3. | 1/17 | Synchronization, atomic actions, await statements |
4. | 1/22 | Pthreads library and MPD language |
5. | 1/24 | Formal semantics; avoiding interference; properties |
6. | 1/29 | Critical sections: spin locks |
7. | 1/31 | Critical sections: efficient locks; fair solutions |
8. | 2/5 | Parallel programming; bag of tasks paradigm |
9. | 2/7 | Semaphores: basic concepts and uses |
10. | 2/12 | Semaphores: the method of passing the baton |
11. | 2/14 | Semaphores: scheduling; use in Pthreads |
12. | 2/19 | Parallel scientific computing; grid computations |
13. | 2/21 | Barrier synchronization |
14. | 2/26 | Monitors: basic concepts |
15. | 2/28 | Monitors: synchronization techniques |
16. | 3/5 | Multiprocessor implementations; review for exam |
17. | 3/7 | EXAMINATION 1 |
--- | Spring Break | |
18. | 3/19 | Monitors: programming in the large; tools |
19. | 3/21 | Message passing: basic concepts and examples |
20. | 3/26 | Message passing: clients and servers |
21. | 3/28 | Message passing: interacting peers |
22. | 4/2 | Message passing in Java, MPD, and MPI |
23. | 4/4 | Remote operations: RPC and rendezvous |
24. | 4/9 | Examples of RPC and rendezvous |
25. | 4/11 | Java RMI; implementation of RMI |
26. | 4/16 | Programming distributed systems |
27. | 4/18 | Distributed parallel programming |
28. | 4/23 | Heartbeat and pipeline algorithms; review for exam |
29. | 4/25 | EXAMINATION 2 |
30. | 4/30 | Summary; hot topics |
Homework sets (4) | 40 points each | 40% of grade |
Projects (2) | 60 points each | 30% of grade |
Examinations (2) | 60 points each | 30% of grade |
The total for all assignments and exams is 400 points. Your final grade will be determined by how well you do. 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 slightly below these levels.
Homework 1 | assign 1/24 | due 2/5 |
Homework 2 | assign 2/7 | due 2/19 |
Parallel Project | assign 2/19 | due 3/5 |
Examination 1 | Thursday, March 8 | |
Homework 3 | assign 3/28 | due 4/9 |
Homework 4 | assign 4/11 | due 4/23 |
Distributed Project | assign 4/11 | due 5/6 |
Examination 2 | Thursday, April 25 |
You may discuss the meanings of problems with classmates, but you must develop your own answers and programs; in short, all work you turn in must be your own. The one exception is that you will be allowed to work with one other classmate on the two projects. 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. See the TA or send him email when you have questions about homework grading.
Newsgroup. The class newsgroup is cs.course422. Subscribe to it now. Use it to post general questions. We will post answers and other general information there so all of you can see them.
Class Directory. The home directory for the class is /home/cs422. Copies of handouts, programs, and other information are stored there.
Class Web Page. The home page for the class contains course-related information, including links to this syllabus, information on hardware and software tools, and copies of all assignments. The URL is
http://www.cs.arizona.edu/classes/cs422/spring02/
Book Web Page. The home page for the textbook contains lots of information that you might find useful. There is a link on the class home page. The URL is
http://www.cs.arizona.edu/people/greg/mpdbook