CMP675 - HIGH PERFORMANCE COMPUTING
Course Name | Code | Semester | Theory (hours/week) |
Application (hours/week) |
Credit | ECTS |
---|---|---|---|---|---|---|
HIGH PERFORMANCE COMPUTING | CMP675 | Any Semester/Year | 3 | 0 | 3 | 9 |
Prequisites | None | |||||
Course language | Turkish | |||||
Course type | Elective | |||||
Mode of Delivery | Face-to-Face | |||||
Learning and teaching strategies | Lecture Discussion Preparing and/or Presenting Reports Problem Solving Project Design/Management | |||||
Instructor (s) | Asst. Prof. Adnan Özsoy (aozsoy@cs.hacettepe.edu.tr) | |||||
Course objective | This course provides a thorough understanding of the fundamental concepts and recent advances in high performance computing. The main objective is to provide students practical and theoretical foundations to use and develop applications that can solve challenging problems in computer and data intensive problems. | |||||
Learning outcomes |
| |||||
Course Content | Parallel programming languages and frameworks, Amdhal?s Law, performance evaluation, shared and distributed memory systems, message passing protocols, R for HPC, Python for HPC, Vectorization, Massively parallel architectures, Big Data concepts | |||||
References | ? An Introduction to Parallel Programming, Peter Pacheco, Morgan Kaufmann, 2011 ? Introduction to Parallel Computing, Ananth Grama, George Karypis, Vipin Kumar, Anshul Gupta ? Wes McKinney, Python for Data Analysis, Data Wrangling with Pandas, NumPy, and IPython, O'Reilly Media, October 2012 ? Norman Matloff, Parallel Computing for Data Science, With Examples in R, C++ and CUDA, Chapman & Hall/CRC The R Series, 2015 |
Course outline weekly
Weeks | Topics |
---|---|
Week 1 | Introduction to High Performance Computing |
Week 2 | An Overview of Parallel Programs and Tools |
Week 3 | Shared Memory Systems |
Week 4 | Distributed Memory Systems |
Week 5 | Python for HPC |
Week 6 | Python for HPC |
Week 7 | Data Analysis using R |
Week 8 | Data Analysis using R |
Week 9 | SSE Vectorization |
Week 10 | General Purpose Graphics Processing Units ? CUDA |
Week 11 | General Purpose Graphics Processing Units ? OpenCL / OpenACC |
Week 12 | Massively parallel architectures |
Week 13 | Big Data Tools |
Week 14 | Big Data Tools |
Week 15 | Presentations and General Review |
Week 16 | Final exam |
Assesment methods
Course activities | Number | Percentage |
---|---|---|
Attendance | 0 | 5 |
Laboratory | 0 | 0 |
Application | 0 | 0 |
Field activities | 0 | 0 |
Specific practical training | 0 | 0 |
Assignments | 5 | 25 |
Presentation | 0 | 0 |
Project | 1 | 30 |
Seminar | 0 | 0 |
Midterms | 0 | 0 |
Final exam | 1 | 40 |
Total | 100 | |
Percentage of semester activities contributing grade succes | 0 | 60 |
Percentage of final exam contributing grade succes | 0 | 40 |
Total | 100 |
WORKLOAD AND ECTS CALCULATION
Activities | Number | Duration (hour) | Total Work Load |
---|---|---|---|
Course Duration (x14) | 14 | 3 | 42 |
Laboratory | 0 | 0 | 0 |
Application | 0 | 0 | 0 |
Specific practical training | 0 | 0 | 0 |
Field activities | 0 | 0 | 0 |
Study Hours Out of Class (Preliminary work, reinforcement, ect) | 14 | 3 | 42 |
Presentation / Seminar Preparation | 0 | 0 | 0 |
Project | 1 | 100 | 100 |
Homework assignment | 5 | 10 | 50 |
Midterms (Study duration) | 0 | 0 | 0 |
Final Exam (Study duration) | 1 | 36 | 36 |
Total Workload | 35 | 152 | 270 |
Matrix Of The Course Learning Outcomes Versus Program Outcomes
D.9. Key Learning Outcomes | Contrubition level* | ||||
---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | |
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. | X | ||||
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