COURSE OUTLINE
Session 1
Introduction to High-Performance Architectures and Applications
Current high-performance architectures, such as Cluster, Multicore, and Accelerators. Introduction to real-world applications that requires HPC, and the exascale challenge.
Session 2
Performance Analysis and Evaluation
Performance metrics, performance tracing and analysis. Characterisation of the applications’ performance. Bottlenecks and critical issues for performance scaling. Simple alternatives to visualise and identify performance problems.
Session 3
Structured Parallel Programming
Algorithmic Skeletons and Parallel Design Patterns. Separation of concerns, patterns and strategies for parallel programming.
Session 4
Parallel Programming for Multi-Core
Introduction to the shared memory parallel programming paradigm: Thread; lock and lock-free synchronisation mechanisms; race conditions, performance optimisations with load balancing and scheduling, cache efficiency, memory locality, and state-of-the-art libraries/frameworks.
Session 5
POSIX Threads
An overview of C++11 threads programming, use case examples for parallel programming with Loop parallelism and producer/consumer.
Session 7
OpenMP
An overview of OpenMP, its characteristics and functionalities, and use case examples.
Session 8
Parallel Programming for HPC Cluster
Introduction to the distributed memory parallel programming paradigm: process, deadlock, message passing, performance optimisations with load balancing and scheduling, and state-of-the-art libraries/frameworks.
Session 9
HPC Cluster Deployment and Configuration
How to deploy a cluster for MPI applications using OpenMPI. Introduction to Ganglia Cluster Monitoring. Cluster managements tools (Torque and PBS).
Session 10
Seminary’s Question Time and Work
This session will be for explaining how the seminary should be given, and students can make questions about their subjects. Also, the goal is to talk individually with each group/student.
Session 11
MPI (Message Passing Interface)
Overview on the main features and characteristics of MPI programming interface. Use case examples and exercises.
Session 12
MPI (Message Passing Interface)
Overview on the main features and characteristics of MPI programming interface. Use case examples and exercises.
Session 13
Hybrid Parallel Programming
Exploit parallelism at the same time from multi-core and clusters. Programming using distributed and shared memory paradigms by using MPI and OpenMP.
Session 14
Introduction to Cluster for Big Data
Distributed file system and distributed data processing. Principles and characteristics. Cluster management and parallel programming frameworks. Use cases with Hadoop.
Session 6
Intel TBB
An overview of TBB, its characteristics and functionalities, and use case examples.
Session 15
Seminary
Each student will present his work as a seminary about a specific big data support tool for parallel programming.