Content | Academic Policy

GAM610 and DPS915 introduce parallel programming.  These courses focus on parallel programming of heterogeneous personal computers.  Parallel programming requires care and attention to detail.  Designing parallel programs involves allocating tasks to serial and parallel processors and refining algorithms to optimize throughput. 

You will learn how to code programs that use:

  • the CPU for serial processing tasks
  • the GPU for parallel processing tasks
  • system memory and GPU memory efficiently

You use Nvidia's CUDA SDK throughout.  In the final weeks, you will learn to port your CUDA code to OpenCL. 

Attendance is essential in this course.  You will be tested on your understanding of finer details.  The subject web site and the subject wiki contain all of the subject matter.  The complete URLs for the subject home page and the subject wiki are

If you have any suggestions on how to improve the web site or course wiki, please let your instructor know.  Check the last modified date at the bottom of each web page to ensure that you have the most recent version of these subject notes. 



The subject material is organized into five parts:

  1. Introduction
  2. CUDA Programming Model
  3. OpenCL Programming Model
  4. OpenACC
  5. Presentations

Each reading in each part covers one major topic. 

Course Wiki

The course wiki provides anyone registered with CDOT an opportunity to contribute to the course material throughout the semester.  Registration with CDOT is open to anyone with a Seneca email.  You may edit the wiki and add whatever details you think would help others in this course. 

Discussion Board

Anyone registered in the course may post questions or comments at any time to Moodle's discussion board.  Encourage your peers to use this discussion board frequently. 

Discussion keeps the board interesting and maximizes everyoneís learning. 

Please do not publish items posted to the discussion board to respect each studentís privacy.


The Academic Policy of Seneca College applies to Computer Studies.  Cheating, plagiarism and breach of copyright are serious offenses under this Policy.  The official version of the Cheating and Plagiarism Section is here.


Cheating during a test or exam is construed as talking, peeking at another studentís paper or any other clandestine method of transmitting information.


Plagiarism is using the work of others without citing it; that is, holding the work of others out as your own work.

Do not submit an assignment that contains material copied from another student, a website, a textbook or any other published or unpublished source without identifying the material that is not your own.  Simply rewording someone else's submission or changing the field names in their program and presenting their work as your own may be construed as plagiarism: you are still copying the solution and submitting it as your own.  Plagiarism is not excusable by trivial differences in the code or the wording.

Assignments unless otherwise stated are individual work.  If your instructor notices that you have copied parts of your submission from another student or external source without citation, your instructor is required to charge you with plagiarism.