COSC 407 – 101 – Winter 2021 – Term 1
© Scott Fazackerley. Not to be copied, used, or revised without express written permission from the copyright owner.
COSC 407 – 101 [3-2-0]
Introduction to Parallel Computing
2021 Winter Term 1
9:30 – 11:00 Tuesday, Thursday
All lectures and office hours are online with Zoom
Labs require in-person attendance
Instructor: Name: Scott Fazackerley
* scott. (preferred)
( 250.807.8542
� Office Hours: Monday, 11:00 – 12:00 or by appointment
Friday, 11:00 – 12:00 or by appointment
Laboratory Coordinator/Instructor/TA:
L01: Friday, 10:00 – 12:00 (ASC 165) TA: Devon MacNeil
L02: Thursday,14:00 – 16:00 (EME 2205) TA: Reece Walsh
L03: Tuesday, 14:00 – 16:00 (EME 2205) TA: Devon MacNeil
L04: Tuesday, 12:00 – 14:00 (SCI 234) TA: Reece Walsh
Course Website:
Course materials are available at https://canvas.ubc.ca.
Academic Calendar Entry:
Design and implementation of parallel programs including theoretical computer models, parallel architectures
(distributed, multicore, GPU), and standard parallel libraries. Credit will be granted for only one of COSC 407 or
COSC 507. [3-2-0]
Prerequisite: Either (a) COSC 111 or (b) APSC 177. Third-year standing is required.
Course Overview:
This course will provide 3rd and 4th year learners with the opportunity to develop a technical understanding of
basic concepts, models and terminology used in parallel computing. Core concepts will be covered through pre-
readings and exercises. In class, learners will build upon these concepts through discussions, exercises, and
coding examples. Learners will gain foundational skills for understanding and implementing parallel solutions
and understand parallel computing architectures and their limitations. Technical skill will focus on the design
and implementation of parallel algorithms on different architectures. In addition to practical skill and theory,
learners will explore POSIX threads, OpenMP, CUDA and MPI enabling them to design and implement parallel
programs using various standard libraries and write parallel code.
Course Format:
Synchronous (livestream) and asynchronous lectures, consisting of topic introduction, understanding evaluation
using iClicker cloud (livestream), and concept mastery with lecture and lab exercises. Practical skills and
applications of topics are re-enforced with lab activities. Materials will be complemented by out-out-class
readings, and assignments. Course materials are available on Canvas, presented in a week-by-week layout of
© Scott Fazackerley. Not to be copied, used, or revised without express written permission from the copyright owner.
Version: September 2021 Page 2 of 7
modules. In each module, you will find the materials for a given week. Midterm break and other calendar dates
can be found at http://okanagan.students.ubc.ca/calendar/.
Synchronous (livestream) Lectures:
Students are required to attend the livestream lecture as it will be used for in-class iClicker based questions
throughout the lecture as well as for any discussion/questions/demos specific to the course content for the
week. iClicker questions can only be answered during the livestream lecture. The remainder of the time
will also a lecture component continuing with the course materials for the week. Livestream lectures will
take place on Thursdays from 9:30 to 11:00. The Zoom link for this will be available on Canvas.
Lectures will be recorded and available on Canvas.
Asynchronous Lectures:
The second lecture of each week will be in a series of short topic videos aligned with course materials that
you can review at any time before the next livestream lecture. Please keep in mind that with this course,
topics will build on each other and falling behind in the materials can impact your overall learning
experience. Following the asynchronous lecture, you will complete a Canvas quiz that do count towards
the Lecture Quizzes portion of your grade. Each quiz must be finished before the posted deadline.
Additionally, iClicker questions in the following livestream lecture will be based on materials from the
recorded content.
Labs:
Labs will start during the second week on with the Thursday (L02) section (September 16th) with Friday
(L01) (September 17th), Tuesday (L05) and (L04) lab groups having their first lab during the third week.
Details and reminders will be available on Canvas. Lab sessions will be conducted in person. Please refer
to the COVID 19 Safety section before attending labs. You are free to work on the labs independently
ahead of time, but some labs will require access to specific hardware. The TA’s will be available if you
need assistance during the posted lab times. Please attend the section you are registered in. It is strongly
recommended to look at the lab materials ahead of time and attempt it before your lab section, so that you
can use the lab time for questions Further details on labs will be available on Canvas. Students must be
registered in a lab (secondary activity) for this course.
Evaluation Criteria and Grading:
iClicker /Canvas Quizzes 10%
Labs 20%
Midterm 20% – 40% (during regular classes)
Final 30% – 50% During Exam Period,TBA
Total 100%
Midterms are used to improve your mark, not to penalize. They will help prepare for the final exam. There is
70% of the course grade for all exams. The exams mark is calculated based on the best of the following options:
Option 1 Option 2 Option 3 Option 4
Midterm 1 20 % 20 % 10 % 10 %
Midterm 2 20 % 10 % 20 % 10 %
Final 30 % 40 % 40 % 50 %
© Scott Fazackerley. Not to be copied, used, or revised without express written permission from the copyright owner.
Version: September 2021 Page 3 of 7
Students MUST achieve a passing grade in the combined average exams (midterms and final), and lab
components in order to pass the course and an overall course grade of at least 50%. Failure to do so will result in a
45% grade, or the resulting grade, whichever is the lowest.
Both the midterm and final exam will take place online as Canvas Quizzes and are only available during the
scheduled exam times. A reliable internet connect, webcam and microphone are required for the exams.
Labs and assignments are due on the posted dates. No late assignments or labs will be accepted.
Attendance is expected both in the livestream lecture and labs. Readings and Home Assignments/Quizzes are to
be completed prior to the lecture. During the livestreamed lectures, class quizzes with iClicker Cloud will take
place. It is your responsibility to be prepared for quizzes for every livestream lecture.
Final grades will be based on the evaluations listed above and the final grade will be assigned according to the
standardized grading system outlined in the UBC Okanagan Calendar.
Laboratory/Tutorial Meeting Times:
Labs are held in person from 12:00 to 14:00 in SCI 234 and 14:00 to 16:00 in EME 2205 on Tuesdays, from
14:00 to 16:00 in EME 2205 on Thursdays and from 10:00 to 12:00 in ASC 165 on Fridays. Labs start on
Thursday, September 16th, 2021. Please check your registration to determine your lab/tutorial section and time.
Grading Practices
Faculties, departments, and schools reserve the right to scale grades in order to maintain equity among sections
and conformity to University, faculty, department, or school norms. Students should therefore note that an
unofficial grade given by an instructor might be changed by the faculty, department, or school. Grades are not
official until they appear on a student’s academic record.
http://www.calendar.ubc.ca/okanagan/index.cfm?tree=3,41,90,1014
Final Examination:
The examination period for Term 1 of Winter 2021 is Saturday, December 11th, 2021 to Wednesday, December
22nd, 2021. Except in the case of examination clashes and hardships (three or more formal examinations scheduled
within a 24-hour period) or unforeseen events, students will be permitted to apply for out-of-time final examinations
only if they are representing the University, the province, or the country in a competition or performance; serving
in the Canadian military; observing a religious rite; working to support themselves or their family; or caring for a
family member. Unforeseen events include (but may not be limited to) the following: ill health or other personal
challenges that arise during a term and changes in the requirements of an ongoing job. Further information on
Academic Concessions can be found under Policies and Regulations in the Okanagan Academic Calendar
http://www.calendar.ubc.ca/okanagan/index.cfm?tree=3,48,0,0.
Required Materials:
• Lecture notes (available electronically on Canvas)
• iClicker Cloud
© Scott Fazackerley. Not to be copied, used, or revised without express written permission from the copyright owner.
Version: September 2021 Page 4 of 7
Recommended Materials:
• Additional materials provided on Canvas
• Recommended readings (available online through library)
o Pacheco, P. S. An introduction to Parallel Programming, MK, 2011
o Kirk, D. B. & Hwu, W.-m. W. Programming Massively Parallel Processors: A Hands-on
Approach, MK., 2010
Course Schedule:
The following table provides a tentative schedule for the term and may be adjusted dependent on the class needs.
Topics
Week 1 Topic 0/1: Introduction to the course/Introduction to Parallelism Topic 2: Intro to C (basics, arrays, functions)
Week 2 Topic 2: Intro to C (pointers, struct, directives) Topic 3: Basic Concepts of Parallelism/Introduction to POSIX threads
Week 3 Topic 4: POSIX Threads Topic 5-a: Intro to OpenMP
Week 4
Topic 5-b: Open MP – Mutual Exclusion, Reduction, Sync
National Day for Truth and Reconciliation – Thursday, September
30th 2021.
Week 5 Topic 5-c: OpenMP – Work Sharing Midterm Exam – Thursday, October 7th, 2021
Week 6 Topic 5-c: OpenMP – Work Sharing continued Topic 5-d: OpenMP – Example Applications
Week 7 Topic 6: Speed and Efficiency Topic 6-a: Intro to CUDA
Week 8 Topic 6-c: CUDA Thread Organization
Week 9 Topic 6-c: CUDA Thread Organization (cont.) Topic 6-d: CUDA Thread Scheduling, Memory and Performance
Week 10 Reading Break
Week 11
Topic 6-d: CUDA Thread Scheduling, Memory and Performance
(cont.)
Midterm Exam – Thursday, November 18th, 2021
Week 12 Topic 6-e: CUDA Thread Sync Topic 6-f: CUDA Best Practices
Week 13 Topic 7: Distributed Memory Concurrency
Week 14 Topic 7: Distributed Memory Concurrency (cont.) Final Exam Review
© Scott Fazackerley. Not to be copied, used, or revised without express written permission from the copyright owner.
Version: September 2021 Page 5 of 7
Missed Graded Work:
Students who, because of unforeseen events, are absent during the term and are unable to complete tests or other
graded work, should normally discuss with their instructors how they can make up for missed work, according to
written guidelines given to them at the start of the course (see Grading Practices). Instructors are not required to
make allowance for any missed test or incomplete work that is not satisfactorily accounted for. If ill health is an
issue, students are encouraged to seek attention from a health professional. Campus Health and Counselling will
normally provide documentation only to students who have been seen previously at these offices for treatment or
counselling specific to conditions associated with their academic difficulties. Students who feel that requests for
consideration have not been dealt with fairly by their instructors may take their concerns first to the Head of the
discipline, and if not resolved, to the Office of the Dean. Further information can be found at:
http://www.calendar.ubc.ca/okanagan/index.cfm?tree=3,48,0,0.
There will be no make-up midterm exams. If the reason for absence is satisfactory, the student’s final exam will be
worth more of the final grade.
COVID-19 Safety
You are required to wear a non- medical mask during our lab meetings, for your own protection and for the safety
and comfort of everyone else in the class. For our in-person meetings in this class, it is important that all of us feel
as comfortable as possible engaging in class activities while sharing an indoor space. Non-medical masks that
cover our noses and mouths are a primary tool for combating the spread of COVID-19. Further, according to the
provincial mandate, masks are required in all indoor public spaces including lobbies, hallways, stairwells,
elevators, classrooms and labs. There may be students who have medical accommodations for not wearing a
mask. Please maintain a respectful environment. UBC Respectful Environment Statement.
Copyright disclaimer
Diagrams and figures included in lecture presentations adhere to Copyright Guidelines for UBC Faculty, Staff and
Students http://copyright.ubc.ca/requirements/copyright-guidelines/ and UBC Fair Dealing Requirements for
Faculty and Staff http://copyright.ubc.ca/requirements/fair-dealing/. Some of these figures and images are subject
to copyright and will not be posted to Canvas. All material uploaded to Canvas that contain diagrams and
figures are used with permission of the publisher; are in the public domain; are licensed by Creative Commons;
meet the permitted terms of use of UBC’s library license agreements for electronic items; and/or adhere to the
UBC Fair Dealing Requirements for Faculty and Staff. Access to the Canvas course site is limited to students
currently registered in this course. Under no circumstance are students permitted to provide any other person with
means to access this material. Anyone violating these restrictions may be subject to legal action. Permission to
electronically record any course materials must be granted by the instructor. Distribution of this material to a third
party is forbidden.
Academic Integrity
The academic enterprise is founded on honesty, civility, and integrity. As members of this enterprise, all students
are expected to know, understand, and follow the codes of conduct regarding academic integrity. At the most
basic level, this means submitting only original work done by you and acknowledging all sources of information
or ideas and attributing them to others as required. This also means you should not cheat, copy, or mislead others
about what is your work. Violations of academic integrity (i.e., misconduct) lead to the breakdown of the
academic enterprise, and therefore serious consequences arise and harsh sanctions are imposed. For example,
incidences of plagiarism or cheating may result in a mark of zero on the assignment or exam and more serious
consequences may apply if the matter is referred to the President’s Advisory Committee on Student Discipline.
Careful records are kept in order to monitor and prevent recurrences.
© Scott Fazackerley. Not to be copied, used, or revised without express written permission from the copyright owner.
Version: September 2021 Page 6 of 7
A more detailed description of academic integrity, including the University’s policies and procedures, may be
found in the Academic Calendar at: http://okanagan.students.ubc.ca/calendar/index.cfm?tree=3,54,111,0.
Cooperation vs. Cheating
Working with others on assignments is a good way to learn the material and we encourage it. However, there are
limits to the degree of cooperation that we will permit. Any level of cooperation beyond what is permitted is
considered cheating.
When working on programming assignments, you must work only with others whose understanding of the
material is approximately equal to yours. In this situation, working together to find a good approach for solving a
programming problem is cooperation; listening while someone dictates a solution is cheating. You must limit
collaboration to a high-level discussion of solution strategies and stop short of actually writing down a group
answer. Anything that you hand in, whether it is a written problem or a computer program, must be written by
you, from scratch, in your own words. If you base your solution on any other written solution, you are cheating. If
you provide your solution for others to use, you are also cheating.
Grievances and Complaints Procedures
A student who has a complaint related to this course should follow the procedures summarized below:
• The student should attempt to resolve the matter with the instructor first. Students may talk first to
someone other than the instructor if they do not feel, for whatever reason, that they can directly approach
the instructor.
• If the complaint is not resolved to the student’s satisfaction, the student should e-mail the Associate Head
of Computer Science, Dr. Yves Lucet at yves. or the Department Head pro tem, Dr. Andrew
Jirasek at andrew. .
Student Service Resources
Disability Assistance
The Disability Resource Centre ensures educational equity for students with disabilities, injuries or
illness. If you are disabled, have an injury or illness and require academic accommodations to meet the
course objectives, e-mail us or visit our website for more information.
Web: http://students.ok.ubc.ca/drc/welcome.html E-mail DRC at: drc.
Equity, Human Rights, Discrimination and Harassment
UBC Okanagan is a place where every student, staff and faculty member should be able to study and work
in an environment that is free from human rights-based discrimination and harassment. If you require
assistance related to an issue of equity, discrimination or harassment, please contact the Equity Office, your
administrative head of unit, and/or your unit’s equity representative.
UBC Okanagan Equity Advisor: ph. 250-807-9291
Web: https://equity.ok.ubc.ca/ E-mail: equity.
© Scott Fazackerley. Not to be copied, used, or revised without express written permission from the copyright owner.
Version: September 2021 Page 7 of 7
Health & Wellness – UNC 337
At UBC Okanagan health services to students are provided by Health and Wellness. Nurses, physicians and
counsellors provide health care and counselling related to physical health, emotional/mental health and
sexual/reproductive health concerns. As well, health promotion, education and research activities are
provided to the campus community. If you require assistance with your health, please contact Health and
Wellness for more information or to book an appointment.
Web: www.students.ok.ubc.ca/health-wellness Email: healthwellness.
Sexual Violence Prevention and Response Office (SVPRO)
A safe and confidential place for UBC students, staff and faculty who have experienced sexual violence
regardless of when or where it took place. Just want to talk? We are here to listen and help you explore your
options. We can help you find a safe place to stay, explain your reporting options (UBC or police), accompany
you to the hospital, or support you with academic accommodations. You have the right to choose what
happens next. We support your decision, whatever you decide. Visit svpro.ok.ubc.ca or call us at 250-807-
9640
Independent Investigations Office (IIO)
If you or someone you know has experienced sexual assault or some other form of sexual misconduct by a
UBC community member and you want the Independent Investigations Office (IIO) at UBC to investigate,
please contact the IIO. Investigations are conducted in a trauma informed, confidential and respectful manner
in accordance with the principles of procedural fairness. You can report your experience directly to the IIO
by calling 604-827-2060.
Web: https://investigationsoffice.ubc.ca/ E-mail: director.of.
The Hub
The Student Learning Hub (LIB 237) is your go-to resource for free math, science, writing, and language
learning support. The Hub welcomes undergraduate students from all disciplines and year levels to access a
range of supports that include tutoring in math, sciences, languages, and writing, as well as help with
study skills and learning strategies.
Web: (https://students.ok.ubc.ca/student-learning-hub/) Ph: 250-807-9185.
SAFEWALK – Download the UBC SAFE – Okanagan app.
Don’t want to walk alone at night? Not too sure how to get somewhere on campus?
Call Safewalk at 250-807-8076.
For more information: https://security.ok.ubc.ca/safewalk/