CSc 422/522 -- Parallel and Distributed Programming

Spring, 2001

Instructor

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

Teaching Assistants

Bengu Li; email: libengu@cs.arizona.edu
Somu (Somasundaram Perianayagam); email: somu@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)

Planned Lecture Schedule

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

Assignments and Exams

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.

Schedule of Assignments and Exams

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

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 an account on Parallel, a shared memory multiprocessor.

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


Last updated January 11, 2001