The University of Western Ontario
London, Canada

Department of Computer Science

Distributed and Parallel Systems

Course Web Site -- Winter 2012

Course Description

To best utilize parallel and distributed systems (multi-core, many-core and cluster) is nowadays an important task for computer scientists.

This course studies the fundamental aspects of parallel/distributed systems and aims at providing an integrated view of the various facets of software development on such systems: hardware architectures, programming models and languages, software development tools and scientific applications.

Course topics may include but are not limited to:

Part of the materials (multi-threaded programming, hierarchical memory) are shared between this course: CS4435/CS9624 - High Performance Computing: From Models of Computation to Applications(

Follow this link for various resources (software tools and tutorials, hardware documentation, conferences, other HPC course web sites, etc.) regarding this course and HPC in general (

Prerequisites for Undergraduate Students


Name:Marc Moreno Maza
Office Hours: Tuesday 2:30-4:30 pm in MC 327

Lecture Notes and Textbook

Notes of each lecture will be available on the course website, approximatively one or two days after the oral presentation. There is no textbook.

Course Website

The course web site is accessible from:

Please check the site often for updates on lecture notes and errata. Also be aware that the course website is not a substitute for actual classroom attendance!

Lecture Topics

The list of topics will be something on the order of:

Lecture Notes

  • An Introduction to Software Performannce Engineering. slides and handouts.
  • An Introduction to Multicore Programming. slides and handouts.
  • Multithreaded Parallelism and Performance Measures. slides and handouts.
  • Analysis of Multithreaded Algorithms. slides and handouts.
  • Issues in Parallelism (by Matteo Frigo). slides
  • Cache memories: complexity analysis and practical issues. slides and handouts and C programs.
  • Synchronizing without locks. slides and handouts.
  • Many-core Computing with CUDA. slides and handouts.
  • High-Performance Computing with CUDA. slides and handouts.
  • Problem Sets

  • Problem set 1
  • Problem set 2
  • Class Schedule

    Lectures: 3 hours (Wednesdays 9:30am - 10:20am in UCC 53 and Thursdays 4:30pm - 6:20pm, in MC 6).

    Each student is expected to attend the lectures. In particular, quizzes (short written tests) may take place without notice in advance.

    Student Evaluation

    Assignment/Project/Quiz Schedule

    All dates are tentative and currently subject to change, although it is doubtful by any significant amount.

    Evaluation Technique Weight Posted Date (tentative!) Due Date (tentative!) Workload
    Assignment One20%We, Jan. 26Fr, Feb. 12regular
    Assignment Two20%We, Feb. 16Fr, Mar. 4regular
    CS4402 Project 40%We, Mar. 8Fr, Apr. 8heavy
    Quizzes10% eachN/AvariousN/A

    If for any reason the schedule given above cannot be adhered to, the assignment, project and quiz marks will be pro-rated. For instance, if an assignment has to be canceled for any reason, the remaining assignment weight will be prorated to add up to 1/3.

    Every effort will be made to have assignments, projects and quizzes marked and handed back within 3 weeks of the hand-in date, preferably sooner.


    Quizzes may be held without being announced in advance.

    Quizzes will be closed book.


    Assignments will be due on the (tentative) dates listed above. The assignment will be sent by email to the instructor.

    Extensions will be granted only by the course instructor. If you have serious medical or compassionate grounds for an extension, you should take supporting documentation to the office of the Dean of your faculty, who will contact the instructor.


    A project topic is chosen by the student from a list of topics proposed by the instructor. Project topics will be posted by March the 2nd (tentative) and each student must choose a project topic by March 9.

    The projects will be presented by the students during the class on April 12. Each presentation will consist of a 15 minute talk followed by questions for 10 minutes. A detailed project report will also be required and due by April 8.

    It is expected that presentation session may last longer than a usual class. For this reason, the project presentation will start at 14:30 and could run for n/2 hours, where n is the number of registered students.

    Computing Facilities

    Each student will be given an account on the Computer Science Department senior undergraduate computing facility, GAUL. In accepting the GAUL account, a student agrees to abide by the department's Rules of Ethical Conduct

    Note: After-hours access to certain Computer Science lab rooms is by student card. If a student card is lost, a replacement card will no longer open these lab rooms, and the student must bring the new card to a member of the Systems Group in Middlesex College Room 346.

    Feedback from Previous Students