Heterogeneous High Performance Computing
2nd Cycle Studies - Mestrado
Computer Programming, Microprocessors Systems, Data Structures and Algorithms, Computer Architectures (knowledge of programming languages, C/C ++, computer architectures
This discipline has 4 hours of weekly contact:
- Lectures, supported by slides and the study of book chapters;
- Laboratory classes, conducting work with increasing degree of difficulty, clarifying questions and evaluating assignments.
The course's main objective is the acquisition of basic knowledge regarding the operation of a high performance heterogeneous computing system from the programmer and computer system designer’s perspective.
The student must be able to efficiently program modern systems with multiple and heterogeneous processors, partitioning computation, mastering the most appropriate programming languages, and also exploiting the flexibility of reconfigurable devices for the development of customizable heterogeneous systems. Thus, he/she should be able to better explore the evolution of computer systems that tend to become more heterogeneous and support distinct performance requirements.
In the end, the student should be capable of designing the most suitable heterogeneous system, and fast and efficient algorithm that will achieve the maximum processing time requirements specified by the application
M1: Introduction to parallel processing architectures of multi-core type / multi-processor
-Organization and operation of multi-processor architectures of the CPU and GPU type
-Analysis of parallel algorithms: decomposition techniques and synchronization
-Programming multicore processors
-Efficient use of the memory hierarchy
-OpenACC libraries and directives: heterogeneous computing portable between CPU and GPU
M2: Programming multicore GPUs
-CUDA and OpenCL languages
-Performance optimization techniques: organization of data structures, synchronization, divergence, coalescence, load balancing and scaling
M3: Frameworks and high-level programming tools for generating heterogeneous hardware
-Reconfigurable FPGA-based architectures for multi-processor systems
-High-level synthesis: OpenCL as hardware-generating tool
-High performance heterogeneous reconfigurable Computing
Gabriel Falcão Paiva Fernandes
Laboratory work or Field work: 50.0%
1. Slides das aulas
2. URL: http://www.openacc.org/, NVIDIA, 2016.
3. David B. Kirk, Wen-mei W. Hwu. “Programming Massively Parallel Processors: A Hands-on Approach (Applications of GPU Computing Series)”, 1st Edition, ISBN-13: 978-0123814722, Morgan Kaufmann, February 2010.
4. David R. Kaeli, Perhaad Mistry, Dana Schaa and Dong Ping Zhang. “Heterogeneous Computing with OpenCL 2.0”, 3rd Edition, Morgan Kaufmann, ISBN: 9780128014141, May 2015.