COURSE INFORMATION
Course Title: PARALLEL COMPUTING
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
CEN 885 C 99 3 2 0 4 7.5
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) NA
Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: Betim Çiço
Second Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: Julian Hoxha
Teaching Assistant(s) and Office Hours: NA
Language: English
Compulsory/Elective: Elective
Classroom and Meeting Time:
Course Description: -
Course Objectives: n a parallel computation, multiple processors work together to solve a given problem. These are exciting times in parallel computing. The largest parallel machine has over a hundred thousand processors, and it is believed that machines with over ten thousand processors will be commonly available by the end of the decade. Furthermore, with most chip manufacturers moving toward multicore processors, most machines will soon be parallel ones. It is, therefore, essential to learn to use parallel machines effectively. This course will describe different techniques used to solve the above problems, in order to develop efficient parallel algorithms for a variety of problems. We will also pay much attention to practical aspects of implementing parallel code that actually yields good performance on real parallel machines. The course will include material on emerging multicore hardware, shared-memory programming models, message passing programming models used for cluster computing, data-parallel programming models for GPUs, and problem-solving on large-scale clusters using MapReduce. A key aim of the course is for you to gain a hands-on knowledge of the fundamentals of parallel programming by writing efficient parallel programs using some of the programming models that you learn in class.
COURSE OUTLINE
Week Topics
1 Principles of parallel algorithm design decomposition techniques mapping & scheduling computation templates
2 Programming shared-address space systems Cilk Plus OpenMP Pthreads
3 Parallel computer architectures shared memory systems and cache coherence distributed-memory systems interconnection networks and routing
4 Programming scalable systems message passing: MPI global address space languages
5 Analytical modeling of program performance speedup, efficiency, scalability cost optimality isoefficiency
6 Collective communication
7 Synchronization
8 Non-numerical algorithms (sorting graphs dynamic programming)
9 Numerical algorithms dense matrix algorithms sparse matrix algorithms
10 Performance measurement and analysis of parallel programs
11 GPU Programming
12 Problem solving on clusters using MapReduce
13 Warehouse-scale computing I
14 Warehouse-scale computing II
Prerequisite(s): You should be comfortable programming in C, and have good knowledge of undergraduate level algorithms, data structures, and computer architecture. No knowledge of parallel computing is required.
Textbook: Introduction to Parallel Computing, Second Edition, Ananth Grama, George Karypis, Vipin Kumar, Anshul Gupta, Addison-Wesley, 2003, ISBN: 0201648652 (Recommended, but not required)
Other References:
Laboratory Work:
Computer Usage:
Others: No
COURSE LEARNING OUTCOMES
1 Students will analyze the scalability and parallel efficiency of parallel programs they write
2 Students will understand principles of Parallel Algorithm Design.
3 Students will understand principles of shared memory Parallel Algorithm with CilkPlus, Open MP, Threads.
4 Introduction to parallel computing for shared memory coherence and synchronization, network topology, routing embedded,
5 Introduction to distributive matrix algorithm.
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Doctorate (PhD) in Computer Engineering 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. 4
7 The abilities and performance to participate multi-disciplinary groups together with the effective oral and official communication skills and personal confidence. 4
8 Ability for effective oral and official communication skills in foreign language. 4
9 Engineering graduates with motivation to life-long learning and having known significance of continuous education beyond undergraduate studies for science and technology. 4
10 Engineering graduates with well-structured responsibilities in profession and ethics. 3
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. 3
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. 2
COURSE EVALUATION METHOD
Method Quantity Percentage
Homework
1
80
Presentation
4
5
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 3 48
Hours for off-the-classroom study (Pre-study, practice) 12 6 72
Mid-terms 0
Assignments 4 10 40
Final examination 0
Other 1 27.5 27.5
Total Work Load:
187.5
Total Work Load/25(h):
7.5
ECTS Credit of the Course:
7.5