2019 Practical Parallel Computing

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Graduate major in Mathematical and Computing Science
Instructor(s)
Endo Toshio 
Course component(s)
Lecture
Day/Period(Room No.)
Mon3-4(W242)  Thr3-4(W242)  
Group
-
Course number
MCS.T418
Credits
2
Academic year
2019
Offered quarter
1Q
Syllabus updated
2019/4/3
Lecture notes updated
2019/6/6
Language used
English
Access Index

Course description and aims

This lecture series will cover high performance parallel computing, which is important technology to support evolution of science and technology. The demand for high performance computing, involving extremely large amount of computation and data, is increasing for molecular simulation, protein analysis, mathematical optimization problems, and so on.
The contents will include standard parallel programming tools, MPI and OpenMP, and also include a programming tool for GPU/accelerators. In addition to lecture, there will be programming training using the peta-scale supercomputer TSUBAME at Tokyo Tech.

Student learning outcomes

[Objective] Participants shall get used to usage of parallel programming tools such as MPI, OpenMP and GPU tools, through the lecture and training. Objectives also include learning of basic technologies for performance analysis, through training using the TSUBAME supercomputer.
[Theme] For efficient usage of modern computing systems including supercomputers, the knowledge of architecture, such as parallelism and hierarchy, is necessity. Theme includes programming with OpenMP and MPI, each of which has corresponding hierarchy, and programming on many-core accelerators (GPGPU).

Keywords

parallel computing, high performance computing, multi-core, MPI, OpenMP, GPGPU

Competencies that will be developed

Intercultural skills Communication skills Specialist skills Critical thinking skills Practical and/or problem-solving skills
- - -

Class flow

Lecture about parallel and high performance computing, and training of programming using Tokyo Tech TSUBAME supercomputer will be given.

Course schedule/Required learning

  Course schedule Required learning
Class 1 Introduction to supercomputers and parallel computing Nothing
Class 2 Overview and usage of TSUBAME supercomputer/ parallel programming models Nothing
Class 3 Shared memory parallel programming with OpenMP (1) Introduction Report for shared memory part
Class 4 Shared memory parallel programming with OpenMP (2) Attributes of variables Report for shared memory part
Class 5 Shared memory parallel programming with OpenMP (3) Mutual exclusion and bottlenecks Report for shared memory part
Class 6 Shared memory parallel programming with OpenMP (4) Thread safety Report for shared memory part
Class 7 Computer architecture for high performance computing Nothing
Class 8 Distributed memory parallel programming with MPI (1) Introductionsafety Report for distributed memory part
Class 9 Distributed memory parallel programming with MPI (2) Non-blocking communicatoin Report for distributed memory part
Class 10 Distributed memory parallel programming with MPI (3) Optimization of MPI programs Report for distributed memory part
Class 11 Distributed memory parallel programming with MPI (4) Network topology Report for distributed memory part
Class 12 GPU programming (1) Introduction Report for GPU part
Class 13 GPU programming (2) Parallelism of GPU programs Report for GPU part
Class 14 GPU programming (3) Optimization of GPU programs Report for GPU part
Class 15 GPU programming (3) Memory Hierarchy Report for GPU part

Textbook(s)

Nothing particular

Reference books, course materials, etc.

Nothing particular. Information on related references and web sites will be given.

Assessment criteria and methods

Based on the report submission. Attendance to classes is also considered.

Related courses

  • MCS.T407 : High Performance Computing
  • MCS.T233 : Computer Systems
  • CSC.T526 : High Performance Scientific Computing

Prerequisites (i.e., required knowledge, skills, courses, etc.)

Basic knowledge on C language, especially pointers
Basic knowledge on Linux commands

Page Top