Software Engineering (English) | |||||
Bachelor | TR-NQF-HE: Level 6 | QF-EHEA: First Cycle | EQF-LLL: Level 6 |
Course Code: | COE011 | ||||
Course Name: | Parallel Computing | ||||
Semester: | Spring | ||||
Course Credits: |
|
||||
Language of instruction: | English | ||||
Course Condition: | |||||
Does the Course Require Work Experience?: | No | ||||
Type of course: | Departmental Elective | ||||
Course Level: |
|
||||
Mode of Delivery: | Face to face | ||||
Course Coordinator: | Dr. Öğr. Üy. GÜRSAN ÇOBAN | ||||
Course Lecturer(s): | Assist. Prof. Dr. Amir Seyyedabbasi | ||||
Course Assistants: |
Course Objectives: | The course aims to provide an overview Parallel Computing concepts, Parallel Programming Skills, Parallel Algorithms and Data Structures, Parallel Computing Architectures. |
Course Content: | The content of the course consists of basic concepts and principles of parallel computing,earning parallel programming languages (OpenMP,MPI, CUDA),techniques for optimizing the performance of parallel programs, learn about the design and analysis of parallel algorithms for solving common computational problems. |
The students who have succeeded in this course;
1) Can use parallel concepts of performance, speed-up and efficiency. 2) Can analyze basic parallel algorithms and use them for programming purposes. 3) Can write Distributed Memory Programs using MPI. 4) Can write Shared Memory Programs using OpenMP and Pthreads. 5) Can write GPU-based parallel programs using CUDA. |
Week | Subject | Related Preparation |
1) | Introduction to parallel computing, general principles, taxonomy | |
2) | Parallel Computing Architectures, Hardware and Software 1 | |
3) | Parallel Computing Architectures, Hardware and Software 2 | |
4) | Distributed Memory Programming with MPI (1) | |
5) | Distributed Memory Programming with MPI (2) | |
6) | Paralel Partitioning Strategies | |
7) | Load Balancing | |
8) | Midterm Exam | |
9) | Programming Shared Memory with Pthreads | |
10) | Shared memory programming -1 (OpenMP) | |
11) | Shared memory programming -2 (OpenMP) | |
12) | GPU programming with CUDA | |
13) | GPU programming with CUDA | |
14) | Term Project Presentations |
Course Notes / Textbooks: | An Introduction to Parallel Programming 2nd Edition. Peter S. Pacheco, Matthew Malensek Introduction to Parallel Computing, A. Grama, A. Gupta, G.Karypis, V. Kumar, Addison Wesley. |
References: | Parallel Computing, Theory and practice, M.J.Quinn, McGraw Hill. Parallel programming with MPI, P.S. Pacheco.Morgan Kaufmann. GPU Gems 1&2, Nvidia. |
Course Learning Outcomes | 1 |
2 |
3 |
4 |
5 |
||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Program Outcomes | |||||||||||
1) Adequate knowledge in mathematics, science and software engineering; the ability to use theoretical and practical knowledge in these areas in complex engineering problems. | |||||||||||
2) Ability to identify, formulate, and solve complex software engineering problems; ability to select and apply appropriate analysis and modeling methods for this purpose. | |||||||||||
3) Ability to design, implement, verify, validate, measure and maintain a complex software system, process, device or product to meet specific requirements under realistic constraints and conditions; ability to apply modern design methods for this purpose. | 2 | 2 | 2 | 2 | |||||||
4) Ability to develop, select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in software engineering applications; ability to use information technologies effectively. | 2 | 3 | 3 | 3 | 3 | ||||||
5) Ability to design, conduct experiments, collect data, analyze and interpret results for the study of complex engineering problems or software engineering research topics. | |||||||||||
6) Ability to work effectively within and multidisciplinary teams; individual study skills. | |||||||||||
7) Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effectice reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions. | |||||||||||
8) Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously. | |||||||||||
9) To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications. | |||||||||||
10) Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development. | |||||||||||
11) Knowledge of the effects of software engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in software engineering; awareness of the legal consequences of software engineering solutions. |
No Effect | 1 Lowest | 2 Average | 3 Highest |
Program Outcomes | Level of Contribution | |
1) | Adequate knowledge in mathematics, science and software engineering; the ability to use theoretical and practical knowledge in these areas in complex engineering problems. | |
2) | Ability to identify, formulate, and solve complex software engineering problems; ability to select and apply appropriate analysis and modeling methods for this purpose. | |
3) | Ability to design, implement, verify, validate, measure and maintain a complex software system, process, device or product to meet specific requirements under realistic constraints and conditions; ability to apply modern design methods for this purpose. | 2 |
4) | Ability to develop, select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in software engineering applications; ability to use information technologies effectively. | 3 |
5) | Ability to design, conduct experiments, collect data, analyze and interpret results for the study of complex engineering problems or software engineering research topics. | |
6) | Ability to work effectively within and multidisciplinary teams; individual study skills. | |
7) | Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effectice reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions. | |
8) | Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously. | |
9) | To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications. | |
10) | Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development. | |
11) | Knowledge of the effects of software engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in software engineering; awareness of the legal consequences of software engineering solutions. |
Semester Requirements | Number of Activities | Level of Contribution |
Project | 1 | % 30 |
Midterms | 1 | % 30 |
Final | 1 | % 40 |
total | % 100 | |
PERCENTAGE OF SEMESTER WORK | % 60 | |
PERCENTAGE OF FINAL WORK | % 40 | |
total | % 100 |
Activities | Number of Activities | Preparation for the Activity | Spent for the Activity Itself | Completing the Activity Requirements | Workload | ||
Course Hours | 13 | 0 | 2 | 26 | |||
Laboratory | 13 | 0 | 2 | 26 | |||
Study Hours Out of Class | 13 | 2 | 26 | ||||
Project | 1 | 25 | 1 | 26 | |||
Midterms | 1 | 10 | 2 | 12 | |||
Final | 1 | 10 | 2 | 12 | |||
Total Workload | 128 |