Module/Course Title: Parallel Computing

Module course code

KOMS120611

Student Workload
119 hours

Credits

3 / 4.5 ETCS

Semester

6

Frequency

Even Semester

Duration

16

1

Type of course

Field of Study Courses

Contact hours


40 hours of face-to-face (theoretical) class activity

Independent Study


48 hours of independent activity
48 hours of structured activities

Class Size

30

2

Prerequisites for participation (if applicable)

-

3

Learning Outcomes

  1. Students can demonstrate systematic thinking in selecting information technology architecture
  2. Students can analyze information technology infrastructure requirements
  3. Students can design information technology infrastructure solutions
  4. Students can compare between shared-memory model and distributed-memory model in parallel computing
  5. Students can design parallel computing solutions for several problems
  6. Students can implements parallel computing solutions for several problems

4

Subject aims/Content

Parallel Computing is an advanced computer science course that focuses on the principles, techniques, and methodologies for developing efficient and scalable parallel programs. The course is designed to equip students with the knowledge and skills required to harness the power of parallel computing in order to solve complex computational problems. Throughout the course, students will explore various parallel programming models, architectures, and algorithms associated with parallel programming, including concurrency, load balancing, synchronization, and communication among parallel processes and gain a knowledge of the challenges, opportunities, and emerging trends on the topics. Students will also have hands-on experiences of implementing several parallel programming technique using parallel languages and tools (such as OpenMP and MPI) in real-world problems.

Study Material

Parallel Computing Overview

Parallel Computing: Concepts and Terminology

Parallel Computer Memory Architectures

Parallel Programming Models

Parallel Programming Models (part 2)

Designing Parallel Programs

Designing Parallel Programs (part 2)

-

Designing Parallel Programs (part 3)

Designing Parallel Programs (part 4)

Parallel Examples: Array Processing 

Parallel Examples: PI Calculation

Parallel Examples: Simple Heat Equation

Parallel Examples: 1-D Wave Equation

Paper review

-

5

Teaching methods

Synchronous:

Face-to-face lectures, discussions

Asynchronous:

The material is delivered through e-learning

6

Assesment Methods

Participation, active observation, structured assignments

7

This module/course is used in the following study programme/s as well

Computer Science Study Programme

8

Responsibility for module/course

  • A.A. Gede Yudhi Paramartha, S.Kom., M.Kom.
  • NIDN : 0022068803

9

Other Information

Books:

  1. Thomas Rauber; Gudula Rünger (2013). Parallel Programming: for Multicore and Cluster Systems. Springer Science & Business Media. p. 1. ISBN 9783642378010.
  2.  Barney, Blaise. "Introduction to Parallel Computing". Lawrence Livermore National Laboratory. Retrieved 2007-11-09.

Publications:

  1. You Zou, et al. Parallel computing for genome sequence processing, Briefings in Bioinformatics, Volume 22, Issue 5, September 2021

Websites:

  1. OpenMP tutorials and Articles (https://www.openmp.org/resources/tutorials-articles/)
  2. MPI Tutorials (https://mpitutorial.com/tutorials/)