Training Objectives
- Understand why parallel programming is important and what makes it hard
- Understand the hardware trends that drive parallel programming
- Learn the role of the OpenCL specification in the processor and software industry
- Understand the theoretical limits of parallel computing
- NC = P?
- Universality of consensus and the importance of atomic instructions
- Learn how to write OpenCL software for heterogeneous computing
- Learn the mathematical foundations of the OpenCL 2.0 memory model
- Learn how to write parallel software for CPUs, FPGAs, GPUs, and other accelerators
- Gain practical experience through a project
Trainee Requirements
- A laptop for project work and exercises
- Must support wireless networking
- Must have NoMachine NX Client installed
Trainee Prerequisites
- Degree in computer science or equivalent experience
- Familiarity with asymptotic notation, big-O notation, sequential programming
- Understanding of deterministic vs. non-deterministic algorithms
- Understanding of theory of computation including Turing Machines
- Extensive experience with C programming
- Advanced concepts: pointers and pointer operations, bitwise operations, memory management
- Knowledge of data-structures
- Linked-lists, trees, hash-tables, arrays, stacks, queues, graphs
- Essential mathematics background
- Understand the basic concept of a limit
- Understand basic probability concepts
- Understand sets and associated operations (union, intersect, etc.)
- Understand set relations (partial orders, total orders, etc.)
- Software engineering experience
About the Instructor
AJ Guillon is a Khronos member and contributed to OpenCL 2.1 and the OpenCL C++ kernel language. He has worked extensively with OpenCL since December 2008, when the first OpenCL 1 .0 specification was released. AJ is the founder of YetiWare Inc, a software company developing innovative parallel platforms built on top of OpenCL. He is available to share his experience and knowledge of the OpenCL standard through consulting and training, or public speaking events. AJ is a masters swimmer, water polo player, and enjoys rock climbing when time permits. He lives in Toronto, Ontario, Canada and earned an Honors Bachelor of Science from the University of Toronto, where he specialized in Computer Science.
Schedule & Location
The course is scheduled to take place Wednesday, February 17 - Friday, February 19, 2016 (University of Toronto reading week).
All talks to take place at the Fields Institute, 222 College St.