Syllabus and Lecture Notes

The first time I used the published version of the book was in my Spring 2000 class at The University of Arizona. The preface of the book describes how my class fits into our curriculum at Arizona. More information and additional ways to use the book are also available.

The syllabus for the Spring 2000 class follows. It includes links to my notes for each lecture.

The class met two times a week for a semester; each lecture and examination was 75 minutes long. I generally present new material on the board and use transparencies for larger examples that illustrate the use of new material. The transparencies are figures from the book or other programs that I hand out and place in the class directory.

You might also wish to visit the homepage for my Arizona class. It contains the syllabus, homework assignments, projects, and exams for the most recent offering of the class. Be forewarned, however, that it evolves each spring as I teach the class.



CSc 422/522 --- Parallel and Distributed Programming

Spring Semester, 2000

Instructor

Greg Andrews: Gould-Simpson 705; email: greg@cs.arizona.edu
Office Hours: Monday, 2:00-3:30, Tuesday 3:30-4:30, and by appointment

Teaching Assistant

Dean Starrett; email: dms@cs.arizona.edu

Textbooks

Foundations of Multithreaded, Parallel, and Distributed Programming, Addison-Wesley, 2000
The SR Programming Language: Concurrency in Practice, Benjamin/Cummings, 1993 (optional)

Lecture Schedule

1. Concurrent programming concepts; overview of course
2. Introduction to the SR programming language
3. Concurrent programming in SR
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 concepts; bag of tasks paradigm; Pthreads library
10. Barriers: counter, coordinator, combining tree
11. Symmetric barriers; data parallel algorithms
12. Parallel scientific computing
13. Semaphores: mutual exclusion, signaling, split binary, resource counting
14. Semaphores: dining philosophers, readers/writers
15. Semaphores: passing the baton, resource allocation and scheduling
16. Implementations: kernels, multiprocessors; review for midterm
17. MIDTERM 1
--- Spring Break
18. Monitors: basic concepts, signaling disciplines
19. Monitors: synchronization techniques
20. Monitors: larger examples; use in Java, Pthreads, and SR
21. Message passing: basic concepts and examples
22. Message passing: clients and servers
23. Message passing: file servers, interacting peers
24. Message passing in SR, MPI, and Java; manager/workers paradigm; Linda
25. Distributed parallel programming: heartbeat algorithms; pipeline algorithms
26. Remote operations; RPC; Java RMI
27. Rendezvous; full SR language; distributed readers and writers
28. Distributed programming: replicated files, dining philosophers, distributed file systems
29. MIDTERM 2
30. Review of key concepts; distributed programming paradigms

Assignments and Exams

Homework sets (4): 40 points each for undergrads and honors students, 60 for grads

Midterms (2): 60 points each for undergrads, 75 for grads and honors students

Projects (2): 40 points each for undergrads, 60 for grads and honors students

The total for all assignments and exams is 360 points for undergrads, 430 points for honors students, and 510 points for graduate students.

Your final grade will be determined by how well you do relative to 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.

Schedule of Assignments

Homework 1a assign 1/20 due 2/1
Homework 1b assign 1/27 due 2/8
Homework 2 assign 2/10 due 2/22
Parallel Project assign 2/22 due 3/7 (programs) and 3/23 (reports)
Homework 3 assign 3/23 due 4/4
Homework 4 assign 4/6 due 4/18
Distributed Project assign 4/13 due 4/20 (proposal) and 5/9 (demo or paper)

Copies of these are available online.

Policies

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.

Accounts and Electronic Resources

If you do not already have an account on Lectura, apply for one immediately. Later in the term you will be given accounts on parallel and distributed machines.

Email. Send email to (or see) the instructor 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.

Home Directory. The home directory for the class is /home/cs522. Copies of handouts, programs, and other information will be stored there.

Home Web Page. The home page for the class contains course-related information, including links to information on 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/


Last updated August 8, 2000