Tantárgy adatlapja
High Performance Computing applications: legacy C/C++/Fortran codes
High Performance Computing applications: new generation of Python libraries
Parallel Programming models used on CPUs: MPI, OpenMP
Parallel Programming models used on GPUs: OpenMP, OpenACC, SYCL, CUDA, etc
Defining a domain specific abstraction: embedded in C/Python
Mapping a DSL to different hardware: case study of OP2/OPS
Automatic code generation: boilerplate code + user code
Automatic code generation: traditional text-based scriping
Automatic code generation: compiler techniques - case study of OP-CG
Automatic code generation: using LLVM and MLIR
Required: M.B. Giles, G.R. Mudalige, Z. Sharif, G. Markall, P.H.J Kelly. Performance Analysis of the OP2 Framework on Many-core Architectures . (2011). ACM SIGMETRICS Perform. Eval. Rev. 38 (4) ISSN 0163-5999
Required: I.Z. Reguly, G.R. Mudalige, M.B. Giles, D. Curran and S. McIntosh-Smith, The OPS Domain Specific Abstraction for Multi-Block Structured Grid Computations . In proceedings of the 4th international workshop on Domain-Specific Languages and High-Level Frameworks for High Performance Computing(WOLFHPC '14).Held in conjunction with IEEE/ACM Supercomputing 201
4(SC'14).
Recommended: Hager, G., & Wellein, G. (2010). Introduction to high performance computing for scientists and engineers. CRC Press. ISBN 978-1439811924
List of required competences:
Understanding of the structure of science and engineering codes, the way they are implemented in computer code Ability to understand levels of abstraction provided by various DSLs and libraries Experience with coding up simple parallel algorithms running on parallel architectures Understanding of differences between different hardware and how this is reflected in software Ability to design automated steps from high-level abstraction to low level implementation