COURSE DESCRIPTION AND APPLICATION INFORMATION

Course Name Code Semester T+A+L (hour/week) Type (C / O) Local Credit ECTS
Multi-variate Statistical Methods MAT 601 Fall-Spring 03+00+00 Elective 3 10
Academic Unit: Management Information Systems
Mode of Delivery: Face to face
Prerequisites: None
Language of Instruction: English
Level of Course Unit: Doctorate
Course Coordinator: - -
Course Objectives: 1. To gain basic knowledge and skills in the field of parallel computing. 2. To teach the design and analysis of parallelizing the traditional and modern numerical methods used in the solution of medium and large-scale scientific and engineering problems. 3. To introduce the necessary tools and methods required for the running of parallel algorithms on various computing platforms. 4. To gain the elementary skills required for running the designed algorithms on large scale distributed, shared-memory and distributed-shared memory server systems
Course Contents: Introduction to parallelism. Principles of parallel programming. Parallel Computing Architectures, OS and Memory Hierarchy. Caches, Virtual Memory and Programming Performance. Message Passing Computing: point-to-point, collective communications. Parallel algorithm examples. Parallel Techniques: partitioning, pipelining, synchronous computations, load balancing. Advanced examples. Programming with shared memory: architecture, threads, accessing shared data, cache coherence systems. Programming with OpenMP.
Learning Outcomes of the Course Unit (LO):
  • 1- Understand and use of parallel algorithms and know the possible bounding factors.
  • 2- Understand in general terms, the size of the potential gains for a given problem when ported to a parallel server system.
  • 3- Choose a suitable parallel algorithm for a given problem
  • 4- Get to know and learn the necessary tools for constructing the parallel algorithms.
  • 5- Be able to write and run the parallel algorithms in distributed and shared-memory systems.
Planned Learning Activities and Teaching Methods: In class lectures, homework, quizzes, laboratory exercises, midterm and final exams


WEEKLY SUBJECTS AND RELATED PREPARATIONS

WeekSubjectsRelated Preperation
1 Introduction to high performance computing
2 Parallel computing architectures
3 Memory Hierarchy
4 Cache, virtual memory and programming performance
5 Message Passing Computing I
6 Message Passing Computing II
7 Embarrassingly parallel algorithms
8 Partitioning, divide and conquer strategies
9 Synchronous and data parallel computations
10 Dynamic load balancing
11 Programming with shared memory I
12 Programming with shared memory II
13 Programming with shared memory III
14 Review


REQUIRED AND RECOMMENDED READING

1. Wilkinson, B. ve Allen, M. (1999). Parallel Programming, Prentice Hall.
2. Pacheco, P.S. (1997). Parallel Programming With MPI, Morgan Kaufmann.
3. Arbenz, P. ve Petersen, W. (2004). Introduction to Parallel Computing, Oxford University Press


OTHER COURSE RESOURCES



ASSESSMENT METHODS AND CRITERIA

Semester RequirementsNumberPercentage of Grade (%)
Attendance / Participation 14 5
Project 1 10
Homework Assignments 3 10
Midterms / Oral Exams / Quizes 5 35
Final Exam 1 40
Total: 24 100


WORKLOAD

EventsCountDuration (Hours)Total Workload (hour)
Course Hours14342
Project12020
Homework Assigments31545
Extra-Class Activities (reading,individiual work, etc.)9327
Midterms / Oral Exams / Quizes14040
Final Exam12020
Total Workload (hour):194


THE RELATIONSHIP BETWEEN COURSE LEARNING OUTCOMES (LO) AND PROGRAM QUALIFICATIONS (PQ)

# PQ1 PQ2 PQ3 PQ4 PQ5 PQ6 PQ7 PQ8 PQ9 PQ10 PQ11 PQ12
LO1                        
LO2                        
LO3                        
LO4                        
LO5