BÄ°L674 - PARALLEL COMPUTING WITH GPUS

Course Name Code Semester Theory
(hours/week)
Application
(hours/week)
Credit ECTS
PARALLEL COMPUTING WITH GPUS BÄ°L674 Any Semester/Year 3 0 3 8
Prequisitesnone
Course languageTurkish
Course typeElective 
Mode of DeliveryFace-to-Face 
Learning and teaching strategiesLecture
Preparing and/or Presenting Reports
Project Design/Management
 
Instructor (s)Dr. Adnan Özsoy 
Course objectiveLearning the fundamentals of parallel computing with the general purpose GPUs and the CUDA programming environment 
Learning outcomes
  1. ? Trends in Parallel Computing and GPU Computing ? Fundamentals of Parallel Algorithms ? GPU Programming Model ? GPU Hardware Specifications ? Parallel Computing Patterns ? Optimization Techniques ? Hands on experience on Sample Applications
Course ContentConcepts, languages, techniques, and patterns for programming heterogeneous, massively parallel processors; heterogeneous computing architectures, data-parallel programming models, techniques for memory bandwidth management, and parallel algorithm patterns 
ReferencesTEXTBOOKS

David B. Kirk and Wen-mei W. Hwu ?Programming Massively Parallel Processors: A Hands-on Approach?, Morgan Kaufman, ISBN-10: 0123814723, ISBN-13: 978-0123814722.

REFERENCE MATERIAL
Wen-mei W. Hwu (Editor), ?GPU Computing Gems?, Morgan Kaufman, ISBN-10: 0123849888, ISBN-13: 978-0123849885.
H. Bidgoli, ?CUDA by Example: An Introduction to General-Purpose GPU Programming?, Addison Wesley, ISBN-10: 0131387685, ISBN-13: 978-0131387683.

NVIDIA Developer Zone, http://developer.nvidia.com/page/home.html
 

Course outline weekly

WeeksTopics
Week 1Fundamentals of Parallel Programming
Week 2Introduction to GPU Computing
Week 3CUDA Programming Model
Week 4CUDA Memory Model
Week 5GPU Hardware and Parallel Communication
Week 6Parallel Programming Concepts
Week 7Parallel Computing Patterns
Week 8Fundamental Parallel Algorithms
Week 9CUDA Performance Considerations
Week 10Advanced CUDA API Features
Week 11Sample Applications
Week 12Sample Applications
Week 13Project/Paper presentations
Week 14Overview

Assesment methods

Course activitiesNumberPercentage
Attendance1410
Laboratory00
Application00
Field activities00
Specific practical training00
Assignments00
Presentation110
Project440
Seminar00
Midterms00
Final exam140
Total100
Percentage of semester activities contributing grade succes060
Percentage of final exam contributing grade succes040
Total100

WORKLOAD AND ECTS CALCULATION

Activities Number Duration (hour) Total Work Load
Course Duration (x14) 14 3 42
Laboratory 0 0 0
Application000
Specific practical training000
Field activities000
Study Hours Out of Class (Preliminary work, reinforcement, ect)8540
Presentation / Seminar Preparation12020
Project42080
Homework assignment000
Midterms (Study duration)000
Final Exam (Study duration) 14040
Total Workload2888222

Matrix Of The Course Learning Outcomes Versus Program Outcomes

D.9. Key Learning OutcomesContrubition level*
12345
1. Graduates should have a mastery of computer science as described by the core of the Body of Knowledge.   X 
2. Graduates need understanding of a number of recurring themes, such as abstraction, complexity, and evolutionary change, and a set of general principles, such as sharing a common resource, security, and concurrency.   X  
3. Graduates of a computer science program need to understand how theory and practice influence each other.  X  
4. Graduates need to think at multiple levels of detail and abstraction.    X 
5. Students will be able to think critically, creatively and identify problems in their research.    X
6. Graduates should have been involved in at least one substantial project.     X
7. Graduates should realize that the computing field advances at a rapid pace.   X  
8. Graduates should conduct research in an ethical and responsible manner.   X  
9. Graduates should have good command of technical terms in both Turkish and English.  X  
10. Graduates should understand the full range of opportunities available in computing.     
11. Graduates should understand that computing interacts with many different domains.     X
12. Graduates should develop the knowledge acquired at master level and apply scientific methods in order to solve scientific problems.    X 

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest