CS 426 – Parallel Computing

Course Description:

Parallel programming platforms: distributed memory, shared address space, accelerators. Principles of parallel algorithm design: decomposition techniques, tasks and interactions, mapping for load balancing, interaction overheads, parallel algorithm models (data-parallel, task-graph, work-pool, master-slave, pipeline). Basic communication operations. Analytical modeling of parallel programs: sources of parallel programming overhead, performance metrics for parallel systems, scalability of parallel systems (speedup, efficiency, cost, overhead function, isoefficiency, cost optimality, degree of concurrency, granularity), parallel programming paradigms: programming using MPI, programming shared address space platforms (threads, OpenMP, Intel Thread Building Blocks), programming GPUs (CUDA, OpenCL). Parallel computing kernels: matrix transposition, matrix-vector multiplication, matrix-matrix multiplication, matrix partitioning schemes for load-balancing and communication minimization.

Prerequisite: CS 342

Required Textbook:

Introduction to Parallel Computing,
Addison Wesley
Author: Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar

     Dr. Özcan Öztürk
    Office Hours:  13:30 - 15:30, Monday or by appointment.
    Office: EA 421, Phone: 3444
    WWW: http://www.cs.bilkent.edu.tr/~ozturk/

Credit Hours: 3
Class Schedule:  15:40 - 17:30, M and 13:40 - 15:30, Th
Classroom:  EB104

Teaching Assistant: 
    Kaan Akyol
    Office Hours:  13:30 - 15:30, Tuesday or by appointment.

    Office: EA 425
    email: kaan.akyol@bilkent

Grading Policy (Tentative):
    Midterm Exam 1 25% 4 Apr, in class
    Midterm Exam 2 25% 16 May, in class
    Projects (3-5) 35% No late assignments will be accepted.
    Class participation & pop quizzes 15%

Minimum Requirements to Qualify for the Final Exam:

   %50 minimum weighted grade average from midterm 1, project, quiz

Homework/Project Policy !!!!!!

Lecture Contents (Tentative!)