Dr. Miguel P. Encinar
Universidad Carlos III de Madrid

Miguel P. Encinar is a PhD holder in Aerospace Engineering, having earned his degree in 2020 under the guidance of Prof. J. Jiménez. He has also served as a postdoctoral researcher in the Department of Mechanical Engineering at Johns Hopkins University. Currently, he holds the position of Visiting Professor at UC3M. His research primarily centers on turbulent flows, and he has authored publications that delve into the analysis of turbulence in both wall-bounded and open flows. His research methodology revolves around conducting direct numerical simulations of the Navier-Stokes equations, leveraging cutting-edge High-Performance Computing (HPC) architectures, including GPUs. These simulations span a wide spectrum, ranging from some of the largest available simulations of turbulent flow to extensive ensembles of smaller simulations. This unique approach allows for the novel analysis of turbulent flows.

Introduction to HPC in heterogeneous architectures

HPC stands for High Performance Computing, and serves as an umbrella term to cover the architectures, tools, techniques and programs used to run state-of-the-art scientific simulations. The techniques used to program for HPC often differ from those used for  ‘mainstream’ computing, as the latter often compromise computer performance with flexibility, portability or ease of programming. These differences are magnified by the proliferation of heterogeneous HPC architectures such as GPUs. In this course, we cover some of the basic aspects of programming for these architectures. The emphasis is not to provide proven recipes but rather to show the general approach to the ‘HPC problem’ that should apply to most engineering/scientific problems.

The course is structured in five sessions of 2h each. Students are required to bring their laptops as all sessions will have practical exercises. These will run on Google’s Colab platform so no software needs to be installed. 

The five sessions are organised as follows:

  •  Session 1 (5 marzo, 13.00-15.00 –room 7.1H01) will cover an introduction to HPC in CPUs, and which practices are required for efficient code.
  • Session 2 (12 marzo, 13.00-15.00 – room 7.1H01)  will introduce GPUs, and how can they be programmed, with a few examples in performance
  • Session 3 (19 marzo, 13.00-15.00 – room 7.1H01)  will cover more advanced aspects of GPU programming, and we will create a working code that covers the contents of S2 and S3.
  • Session 4 (2 abril, 13.00-15.00 room 7.1H01 will cover which options can be used to use several GPUs, which libraries are available for GPU programming, as well as which languages are more relevant.
  • Session 5 (9 abril, 13.00-15.00 room 7.1H01)  will close, explaining the details and compromises of a practical case in which a scientific code has been ported to GPU.

The event will be in presence and previous registration is required.