Course Description
This course is an introduction to high performance computing (HPC)
on modern desktop computer architectures.
The targeted audience is undergraduate students who are not
engaged in a computer science program but who want to be exposed
to the principles HPC (relevant to desktop computers)
and take advantage of them in their field of study.
Since most popular concurrency platforms are based on C/C++
and since many HPC software tools are primarily developed under UNIX,
this course starts with a 5 to 6 weeks review of C-UNIX.
In the course of this review, students will be introduced to
performance issues on single-core machines, in particular memory traffic,
for which the C language is the ideal programming platform.
This initiation to performance issue is the main purpose of this
first half of the course. Students with no background in C/C++,
or related imperative languages such as Fortran, would likely
find this material too difficult.
The next 7 to 6 weeks will be dedicated to an overview of multithreaded
programming, using CilkPlus, which is an extension of the C language.
The powerful dynamic scheduler of CilkPlus will allow students to focus
on exposing parallelism in their programs.
However, notions from scheduling (dependencies, task graphs, work and
span, work stealing principle) together with performance metrics
(speedup, efficiency, scalability) will be presented to the students.
Classical algorithms of scientific computing (such as cubic matrix
multiplication, matrix transposition, Cooley-Tukey FFT,
counting sort and merge sort) will illustrate the topics of the course.
Prerequisite: Familiarity with an imperative programming language, such as C/C++ or Fortran.
Antirequisites: Computer Science 1025A/B or 1026A/B, Engineering Science 1036A/B, the former Computer Science 036A/B.
Lecture Hours: Tuesdays 11:30am - 1:20pm (UCC, room54A) and Thursdays 9:30am - 10:20pm (UCC, room 54A).
Lab Hours: Thursdays 10:30am - 12:20pm (MC, room 10).
Instructor: Marc MORENO MAZA
Office: Middlesex College 383 and 327
Office Hours: Tuesdays 2:30-4:30pm
Email: moreno <at> csd.uwo.ca
Phone: 661-2111 x 86891
Course Topics
The course will address as many of the following topics as time will allow:
Lecture Notes
Course lecture notes will be made available in PDF
on the course website.
They are provided as a courtesy by the course instructor. Possessing
(and even reading) these notes is not a suitable substitute for
attending lectures.
Course Website
The CS2101b website is at http://www.csd.uwo.ca/~moreno/cs2101a_moreno/index.html
Lecture notes, assignments, and class information will be posted on
this website. You are responsible for reading this information
on a frequent and regular basis.
e
TA Consulting Schedule: to be arranged
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, or to the I/O counter (MC 352).
Email Contact
We will occasionally need to send email messages
to the whole class, or to
students individually. Email will be sent to your UWO email address. You
must make sure that you read your
email on a frequent and regular basis, or have it forwarded to an
alternative email address if you prefer to read it there.
Note that UWO and most other email providers establish quotas
or limits on the amount of space available to you. If
you let your email accumulate, your mailbox may fill up and
you may lose important email from your instructors. Losing email
is not an acceptable 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 "CS2101" in the subject line.
Student Evaluation
Grades will be based on three homework assignments worth a total of 20%,
weekly lab assignments 20%,
a midterm exam worth 20%, and a final exam worth 40%.
If for any reason the assignment schedule given below cannot
be adhered to, the homework and lab assignment marks will be prorated. (The
assignments are worth 40% of the overall mark for the course.
If an assignment has to be cancelled for any reason,
the remaining assignment weights will be prorated (scaled) to add up to
40%.)
To be eligible to receive a passing grade in the course, your
mark on the final exam must be at least 40%, and your weighted
average on the assignments must be at least 40%. To be eligible to receive
a grade of C or higher, your mark on the final exam must be at least
50%, and your weighted average on the assignments must be at least
50%.
Assignment and Test Feedback
Every effort will be made to have homework assignments marked
and handed back within 2 weeks of the hand-in date. Midterm
exam marks will be posted within 2 weeks of the exam.
If we are unable to comply with our intended return dates,
revised dates will be posted on the course website.
Test and Exams
Midterm: 1 hr 40 mins, Tuesday October 6, during class time
(location to be announced)
Final: 3 hours during the December exam period; exact time
to be announced
There will be NO makeup midterm exam. Students who do not write the
midterm will have the weight shifted to the final exam, which will then be
worth 60 %. Students who do better on the final than the midterm will also
have the midterm weight shifted to the final.
Assignments
Due Dates (tentative)
Asn 2 - 7% (medium) - assigned Sep 25, due Oct 9
Asn 3 - 7%(medium) - assigned Oct 16, due Oct 30
Asn 4 - 7%(medium) - assigned Nov 13, due Nov 27
About the Assignments
Tutoring
The role of tutoring is to help students understand course
material. Tutors should not write assignments or tests
for the students who hire them. Submitting an assignment that contains
material written by a tutor is an academic offence.
Having employed the same tutor
as another student is not a legitimate defence against an accusation
of collusion, should two students hand in assignments judged similar
beyond the possibility of coincidence.
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
http://www.uwo.ca/univsec/handbook/appeals/medical.pdf.
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 https://studentservices.uwo.ca/secure/medical_document.pdf.
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 your individual effort. Assignments that
are judged to be the result of academic dishonesty will, for the
student's first offence, be given a mark of zero with an
additional penalty equal to the weight of the assignment also
being applied. You are responsible for reading and respecting
the Computer Science Department's policy on
Scholastic Offences
and
Rules of Ethical Conduct.