IKC-MH.57 Introduction to High Performance and Parallel Computing

2023-2024 Fall

Most recent announcement: February03

TIME

MONDAY

TUESDAY

WEDNESDAY

THURSDAY

FRIDAY

    Contents

8:30






9:30






10:30






11:30






12:30






13:30






14:00






15:00







16:00





IKC-MH.57


17:00





IKC-MH.57


Instructor

Cem Özdoğan

office: Faculty of Engineering and Architecture

Department of Engineering Sciences, H1-33

office hours: Schedule or appointment by email, or drop by anytime
office phone: 329 3535 / 3803
email address: cozdogan11@gmail.com

cem.ozdogan@ikc.edu.tr

TA

Not Available

office:
office hours:
office phone:
email address:


Announcements

Watch this space for the latest updates (If the characters do not show properly, please try viewing this page with Unicode (UTF-8) encoding). Last updated:

Saturday, February 03, 2024 Resit Examination grades are available.

Friday, January 26, 2024 Final Examination grades are available.

Friday, January 12, 2024 Midterm Examination grades are available.

Tuesday, December 19, 2023 Lecture notes for week13 is published, see Course Schedule section.

Wednesday, December 13, 2023 Lecture notes for week12 is published, see Course Schedule section.

Tuesday, December 12, 2023 Lecture notes for week11 is published, see Course Schedule section.

Friday, December 8, 2023 Lecture notes for week10 is published, see Course Schedule section.

Tuesday, December 5, 2023 Lecture notes for week9 is published, see Course Schedule section.

Thursday, November 23, 2023 Take-home Midterm Examination will be announced at "Lecture Hour" November 24, 2023, see Course Schedule section.

Tuesday, November 21, 2023 Lecture notes for week7 is published, see Course Schedule section.

Wednesday, November 15, 2023 Lecture notes for week6 is published, see Course Schedule section.

Friday, November 10, 2023 Lecture notes for week5 is published, see Course Schedule section.

Monday, November 06, 2023 Lecture notes for week4 is published, see Course Schedule section.

Thursday, October 26, 2023 Lecture notes for week3 is published, see Course Schedule section.

Sunday, October 22, 2023 Lecture notes for week2 is published, see Course Schedule section.

Sunday, October 22, 2023 Video for Installation of Kubuntu & Parallel Tools under VirtualBox is available, see Course Schedule section.

Monday, October 9, 2023 Lecture notes for week1 is published, see Course Schedule section.

Monday, October 9, 2023 In the first lecture, there will be first meeting. The lecture notes will be published soon, see Course Schedule section.

Back to top

Lecture Information

Almost all computer systems today are multi-core processors systems. Parallel programming must be used to take benefit of the full performance of such systems. Parallel programming also describes the processes and instructions for dividing a larger problem into smaller steps. The instructions are passed to multiple processors for required calculations to be executed in parallel. A practical approach to parallel program design and development will be presented in the course content. Awareness of potential design and performance concepts in heterogeneous computer architectures will be gained. Important announcements will be posted to the Announcements section of this web page, so please check this page frequently. You are responsible for all such announcements, as well as announcements made in lecture.


Back to top

Course Overview

IKC-MH.57 is intended to provide students an introduction to parallel programming by using C and/or similar programming languages. In this course, the basics of high performance and parallel computing will be given. OpenMP (Open Multi-Processing) in multi-core systems and MPI (Message Passing Interface) message passing in distributed memory systems will be taught for parallel programming. MPI is the industry standardized parallelization paradigm in high-performance computing and enables programs to be written that run on distributed memory machines. OpenMP is a thread-based approach to parallelize a program over a single shared memory machine. An introduction to the basic concepts of hybrid and accelerated paradigms as Cuda OpenCL programming will be given. The course consists of theoretical topics and hands-on practical exercises on parallel programming.

Upon completion of this course the students will be able to understand/explain/apply;

Back to top

Text Book

Lecture material will be based on them. It is strongly advised that student should read textbooks rather than only content with the lecture material supplied from the lecturer.

Required

Recommended




An Introduction to Parallel Programming

by Peter Pacheco and Matthew Malensek, Morgan Kaufmann,

2nd edition, 2021

Elsevier

Paralel Algoritmalar: Modeller ve Yöntemler (Yüksek Başarımlı Hesaplama)

by Abdulsamet Haşıloğlu 2020

Papatya Bilim

Parallel Programming: Techniques and Application Using Networked Workstations and Parallel Computers

by Barry Wilkinson and Michael Allen 2nd edition, 2005

Pearson






Back to top

Online Resourcess

The following resources are available online. Please inform me about the usefullness of the materials. Check this place for updates.

Back to top

Grading Criteria


Back to top

Policies


Back to top

Tentative Course Outline (pdf)

Back to top

Tentative Course Schedule & Lecture Notes

The following schedule is tentative; it may be updated later in the semester, so check back here frequently.


Week

Topic

Lecture Notes

Quizes

Homeworks

pdf

html

Hands-On

Pdf

Pdf

Grades

Grades

Lectures

1

First Meeting

Lecture Information.

Installation of Linux system and required tools/programs under VirtualBox in Windows environment (VirtualBox 7.0.10 + Extension Pack & kubuntu 22.04.3)

pdf

html

Video for Installation of Kubuntu & Parallel Tools under VirtualBox

2

Introduction I

Four Decades of Computing. Parallel Computers. Computing Clusters, Flynn’s Taxonomy of Computer Architecture

pdf

html

Hands-On

NA

3

Introduction II

SIMD Architecture, MIMD Architecture. Shared Memory Organization. Message Passing Organization

pdf

html

Hands-On

NA

4

Performance Analysis

Computational Models. Skeptic Postulates For Parallel Architectures. Amdahl's Law

pdf

html

Hands-On

NA

5

Programming Using the Message-Passing Paradigm I

Principles of Message-Passing Programming. Structure of Message-Passing Programs. The Building Blocks: Send and Receive Operations

pdf

html

Hands-On

NA

6

Programming Using the Message-Passing Paradigm II

MPI: the Message Passing Interface. Starting and Terminating the MPI Library. Communicators and communication in MPI. Getting Information. Sending and Receiving Messages. Avoiding Deadlocks. Sending and Receiving Messages Simultaneously

pdf

html

Hands-On

NA

7

Programming Using the Message-Passing Paradigm III

Parallelization Application Example - Pi Computation

pdf

html

mp4

NA

8

Take-home Midterm Examination (will be available at exam hour & see below for the pdf-file)

9

Programming Using the Message-Passing Paradigm IV

MPI: Message Passing Interface. Overlapping Communication with Computation. Collective Communication and Computation Operations. Broadcast, Reduction, Gather, Scatter, All-to-All

pdf

html

Hands-On

NA

10

Programming Using the Shared Memory Paradigm I

What is a Thread? Threads Model. Why Threads? Thread Basics: Creation and Termination, Passing Arguments, Joining

pdf

html

Hands-On

NA

11

Programming Using the Shared Memory Paradigm II

Getting started with OpenMP: a Standard for Directive Based Parallel Programming. Worksharing directives

pdf

html

Hands-On

NA

12

Programming Using the Shared Memory Paradigm III

Parallelization Application Example - Pi Computation

pdf

html

mp4

NA

13

Beyond OpenMP and MPI

GPU parallelization. GPUs: Introduction and Architecture. Execution and programming models. Introduction to CUDA

pdf

html

Hands-On

NA

14

MPI + OpenMP

OpenMP, MPI and Accelerators overview

Introduction to CUDA and OpenCL

pdf

html

NA

Exams

8

Take-home Midterm Examination

Solutions:

pdf

pdf

html

html

15

Take-home Final Examination

February 3, 2024 11:48 PM Grades

pdf

html


Back to top

References (other than text books)

Back to top