COURSE INFORMATION
Course Title: PARALLEL PROGRAMMING
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
CEN 315 B 99 3 0 0 3 5
Language: English
Compulsory/Elective: Elective
Classroom and Meeting Time: E214
Course Description: -
Course Objectives: The objectives of this course are to give the students an understanding of how they can use parallel computing in their research and enable them to write parallel code for their high-performance computing applications. Extensive use of pertinent and practical examples from scientific computing will be made throughout. The programming languages used will be Matlab, Maple, sage, python, Fortran, or C. Both the shared and distributed paradigms of parallel computing will be covered via the OpenMP and MPI libraries.
COURSE OUTLINE
Week Topics
1 Introduction to Parallel Computers
2 Message-Passing Computing and Programming
3 Multi thread Programming
4 OpenMP Programming
5 Embarrassingly Parallel Computations
6 Partitioning and Divide-and-Conquer Strategies
7 Pipelined Computations
8 MIDTERM EXAM
9 Synchronous Computations
10 Load Balancing and Termination Detection
11 Sorting Algorithms
12 Numeric Algorithms
13 Image Processing Algorithms
14 Image Processing Algorithms 2
Prerequisite(s): Experience in numerical analysis
Textbook: Peter S. Pacheco, An Introduction to Parallel Programming, Morgan Kaufmann, 2011
Other References: Parallel Programming in C with MPI and OpenMP, Michael J. Quinn, McGraw Hill 2003
Laboratory Work: Yes
Computer Usage: YES
Others: No
COURSE LEARNING OUTCOMES
1 Students will understand how they can use parallel computing in their research
2 Students will be able to write parallel code for their high-performance computing applications
3 Extensive use of pertinent and practical examples from scientific computing will be made throughout
4 Advantage of parallel and distributed computing
5 Writing parallel code for processor intensive applications to be run on clusters, the grid, the cloud, or shared infrastructure
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Bachelor in Computer Engineering (3 years) Program
1 Engineering graduates with sufficient theoretical and practical background for a successful profession and with application skills of fundamental scientific knowledge in the engineering practice. 5
2 Engineering graduates with skills and professional background in describing, formulating, modeling and analyzing the engineering problem, with a consideration for appropriate analytical solutions in all necessary situations. 5
3 Engineering graduates with the necessary technical, academic and practical knowledge and application confidence in the design and assessment of machines or mechanical systems or industrial processes with considerations of productivity, feasibility and environmental and social aspects. 5
4 Engineering graduates with the practice of selecting and using appropriate technical and engineering tools in engineering problems, and ability of effective usage of information science technologies. 5
5 Ability of designing and conducting experiments, conduction data acquisition and analysis and making conclusions. 5
6 Ability of identifying the potential resources for information or knowledge regarding a given engineering issue. 5
7 The abilities and performance to participate multi-disciplinary groups together with the effective oral and official communication skills and personal confidence. 5
8 Ability for effective oral and official communication skills in foreign language. 5
9 Engineering graduates with motivation to life-long learning and having known significance of continuous education beyond undergraduate studies for science and technology. 5
10 Engineering graduates with well-structured responsibilities in profession and ethics. 5
11 Engineering graduates who are aware of the importance of safety and healthiness in the project management, workshop environment as well as related legal issues. 5
12 Consciousness for the results and effects of engineering solutions on the society and universe, awareness for the developmental considerations with contemporary problems of humanity. 5
COURSE EVALUATION METHOD
Method Quantity Percentage
Homework
4
5
Midterm Exam(s)
1
20
Project
1
20
Final Exam
1
30
Attendance
10
Total Percent: 100%
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
Activities Quantity Duration(Hours) Total Workload(Hours)
Course Duration (Including the exam week: 16x Total course hours) 16 6 96
Hours for off-the-classroom study (Pre-study, practice) 0
Mid-terms 1 6 6
Assignments 4 4 16
Final examination 1 7 7
Other 0
Total Work Load:
125
Total Work Load/25(h):
5
ECTS Credit of the Course:
5