The University of Western Ontario
London, Canada

Department of Computer Science

CS4402/CS9535b -- Distributed and Parallel Systems

Course Outline -- Winter 2017

Course Description

The efficient usage of parallel and distributed systems (multi-processors and computer networks) is nowadays an essential task for computer scientists.

This course studies the fundamental aspects of parallel systems and aims at providing an integrated view of the various facets of software development on such systems: hardware architectures, programming languages and models, software development tools, software engineering concepts and design patterns, performance modeling and analysis, experimenting and measuring, application to scientific computing.

Course topics may include but are not limited to: hierarchical memory, cache complexity, multi-core architectures, fork-join parallelism, scheduling, scalability, GPU computing, data parallelism, pipelining, message passing (MPI), parallel and distributed data-structures, and applications of parallel and distributed computing.

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:MC 327
Office Hours: Tuesday 2:30-3:15 pm and Thursday 1:30-3:15pm in MC 327
Phone:661-2111 x3741

Lecture Notes and Textbook

Notes of each lecture will be available on the course website, approximately 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:

  1. Overview of parallel computing
  2. Parallel and distributed computing with Julia
  3. The Cilk concurrency platform
  4. Multithreading parallelism and performance
  5. Scheduling and Synchronizing
  6. Parallelism overheads
  7. Pipelining
  8. Many-core programming (GPGPUs)
  9. Code optimization techniques for multi-cores and GPGPUs
  10. High-Performance Computing with CUDA
  11. Multiprocessed parallelism, message passing (MPI)
  12. Other concurrency platforms (Open MP, Array Building Blocks, Threading Building Blocks)

Class Schedule

Lectures: 3 hours (Tuesdays 15:30 - 16:20 in MC 318 and Wednesdays 15:30 - 17:20 in MC-320.

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

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 One1/6Tu, Jan. 24Tu, Feb. 14regular
Assignment Two1/6Tu, Feb. 14Tu, Mar. 7regular
Project 1/3Fr, Feb. 14Wed, Apr. 6heavy
Quizzes1/9 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 cancelled 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 and approved by the instructor. Presenting in class research articles is a typical project. See the resource page for possible research articles to review and present in class. More articles can be proposed by the instructor on a particular topic of interest, upon request by the student. Each student must choose a project topic by March 7. The projects will be presented in class by the students during the last week of classes. Each presentation will consist of a 15 minute talk followed by questions for 5 to 10 minutes. A detailed project report will also be required and due by April 6.

For CS9535, there is no Assignment Two, while the Project is of much larger scale and start during the Assignment Two period. CS9535 projects must deal with current research topics (in the scope of this course's contents) and can be related to the student thesis (in fact, this is recommended). The topic of each CS9535 project must be discussed individually with the instructor during the Assignment Two period. This implies a literature review to be done by the student and presented to the instructor during a face-to-face meeting. By March 14, (preferably earlier) the objectives of each CS9535 project must be well-defined by the student and approved by the instructor. This will give the mark for Assignment Two. Projects must then be implemented and will be presented in class during the last week of classes, as for CS4402. With this definition of the CS9535 project and CS9535 Assignment Two, the mark allotment is the same as far CS4402. That is, assignments, projects and quizzes constitute 1/3, 1/3 and 1/3 of the CS9535 mark, respectively.

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.

Email Contact

The instructor will occasionally need to send email messages to the whole class, or to students individually. Email will be sent to your GAUL email address. You must make sure that you read your email on GAUL on a frequent and regular basis, or have it forwarded to an alternative email address if you prefer to read it there.

However, you should note that email at ITS (your UWO account) and other email providers such as or may have quotas or limits on the amount of space they can use. If you let your email accumulate there, your mailbox may fill up and you may lose important email from the instructor. Losing email that you have forwarded to an alternative email address is not an excuse for not knowing about the information that was sent.

Students can ask questions via email, however if there are any large, somewhat complicated issues, it is recommended to discuss them during office hours. Moreover, you MUST use your UWO account or your GAUL account in order to write to the instructor. (Emails from non-academic accounts will be automatically ignored.) In addition, you must include "CS4402" in the subject line.

Academic Accommodation for Medical Illness

If you are unable to meet a course requirement due to illness or other serious circumstances, you must provide valid medical or other supporting documentation to your Dean's office as soon as possible and contact your instructor immediately. It is the student's responsibility to make alternative arrangements with their instructor once the accommodation has been approved and the instructor has been informed. In the event of a missed final exam, a "Recommendation of Special Examination" form must be obtained from the Dean's Office immediately. For further information please see

All students who are in emotional/mental distress should refer to Mental Health@Western. for a complete list of options about how to obtain help. For further information please see

A student requiring academic accommodation due to illness should use the Student Medical Certificate when visiting an off-campus medical facility or request a Record's Release Form (located in the Dean's Office) for visits to Student Health Services. The form can be found at

Accessibility Statement

Please contact the course instructor if you require material in an alternate format or if you require any other arrangements to make this course more accessible to you. You may also wish to contact Services for Students with Disabilities (SSD) at 661-2111 x 82147 for any specific question regarding an accommodation.

Ethical Conduct

All assignments are individual assignments. You may discuss approaches to problems among yourselves; however, the actual details of the work (assignment coding, answers to concept questions, etc.) must be an individual effort. Assignments that are judged to be the result of academic dishonesty will, for the student's first offense, be given a mark of zero with an additional penalty equal to the weight of the assignment also being applied.

Students must write their essays and assignments in their own words. Whenever students take an idea, or a passage from another author, they must acknowledge their debt both by using quotation marks where appropriate and by proper referencing such as footnotes or citations. Plagiarism is a major academic offense (see Scholastic Offense Policy in the Western Academic Calendar).

The University of Western Ontario uses software for plagiarism checking. Students may be required to submit their written work and programs in electronic form for plagiarism checking.

Scholastic offenses are taken seriously  and students are directed to read the appropriate policy, specifically, the definition of what constitutes a Scholastic Offense, at the following Web site:

Marc Moreno Maza
Last modified: Mon Jan 10 EDT 2017