DPS915 Course Outline

Course Code: DPS915
Course Name: Introduction to Parallel Programming
Offered Date: Fall - 2017 | Other versions
Print Outline
Course Description:
Modern GPU (Graphics Processing Unit) technology supports massively parallel computations, which complements the serial processing capabilities of CPU technology. This course teaches students how to read and write programs that use both CPU and GPU technology. Students learn to reorganize existing programs into serial code that runs on the CPU and parallel code that runs on the GPU. Students also study cases that have benefited from CPU+GPU programming and develop a CPU+GPU application for a prospective client.
Credit Status: 1 credit (3 units)
Professional Option for BSD - Bachelor of Technology (Software Development) 
Prerequisite: BTP305
Mode of Instruction:
Modes: In-class lecture, in-class exercises, and hands-on activity
Hours per week: 4
Room configurations: Classroom (2 hours), and computer lab (2 hours)
Typical scheduling pattern: Fall term
Learning Outcomes:
  • code heterogeneous solutions using the CUDA and OpenCL programming models
  • compile, run, and profile heterogeneous applications on Windows, Linux and Mac OS platforms
  • design and code heterogeneous solutions using GPU optimized libraries
  • discuss performance, optimization, and best practices in GPU programming
  • install and run applications that benefit from GPU compute technology
  • use directives to highlight parallelizable code to auto-compilers
  • express problems in terms of vectors and matrices and transform vectors using matrices
  • research potential CPU + GPU applications and implement a preliminary solution
Employability Skills:
Execute mathematical operations accurately.|Apply a systematic approach to solve problems.|Manage the use of time and other resources to complete projects.|
Topic Outline:
  • Introduction - 25%
    •         Heterogeneous Computing
    •         Assessing a Serial Program
    •         Linear Algebra Vectors and Matrices
  • CUDA Programming Model - 45%
    •         The Eco-System
    •         Grids, Blocks and Threads
    •         Memory Model
    •         Warp Partitioning
    •         Resource Constraints
    •         Profiling and Debugging
    •         Thrust
    •         Libraries
    •         Optimization
    •         Streams
  • OpenACC Directives - 5%
  • OpenCL Programming Model - 10%
    •         Terminology and Syntax
    •         OpenCL Memory Model
  • Design - 10%
    •         CUDA Case Studies
    •         Best Practices
  • Presentations - 5%
Prescribed Text(s):
Programming Massively Parallel Processors
Kirk, D.B. and Hwu, W.W. 
Published by Morgan Kaufmann Publishing
ISBN-13: 978-0-12-415992-1

Introduction to Parallel Programming using GPUs
Szalwinski, C.M.
Reference Material:
CUDA by Example
Sanders, J., Kandrot, E.
Addison-Wesley, Pearson Education
ISBN-13: 978-0-13-138768-3
Personal Computer or Laptop that has a CUDA-enabled GPU - Compute Capability 2.0 - Fermi or Kepler Architecture
Promotion Policy:
To obtain a credit in this subject, a student must:
  •     Pass the weighted average of all assessments
  •     Pass the weighted average of the exam and the test
  •     Pass the final exam
  •     Successfully complete all of the assignments and workshops. Submissions that do not meet specifications will be returned to the student for revision and resubmission.

Grading Policy
A+ 90%  to  100%
A 80%  to  89%
B+ 75%  to  79%
B 70%  to  74%
C+ 65%  to  69%
C 60%  to  64%
D+ 55%  to  59%
D 50%  to  54%
F 0%    to  49% (Not a Pass)
EXC Excellent
SAT Satisfactory
UNSAT Unsatisfactory

For further information, see a copy of the Academic Policy, available online (http://www.senecacollege.ca/academic-policy) or at Seneca's Registrar's Offices.

Assignment 30%
Workshops 20%
Mid-term Test 20%
Final Exam 30%
Approved By:
Mary-Lynn Manton
Cheating and Plagiarism:
Each student should be aware of the College's policy regarding Cheating and Plagiarism. Seneca's Academic Policy will be strictly enforced.

To support academic honesty at Seneca College, all work submitted by students may be reviewed for authenticity and originality, utilizing software tools and third party services. Please visit the Academic Honesty site on http://library.senecacollege.ca for further information regarding cheating and plagiarism policies and procedures.
Discrimination and Harassment:
All students and employees have the right to study and work in an environment that is free from discrimination and/or harassment. Language or activities that defeat this objective violate the College Policy on Discrimination/Harassment and shall not be tolerated. Information and assistance are available from the Student Conduct Office at student.conduct@senecacollege.ca.
Accomodation for Students with Disabilities
The College will provide reasonable accommodation to students with disabilities in order to promote academic success. If you require accommodation, contact the Counselling and Disabilities Services Office at ext. 22900 to initiate the process for documenting, assessing and implementing your individual accommodation needs.