Python in HPC

Date and Time: 
2015 April 17 - AM
FL2-1022 Large Auditorium
Antonio Gomez-Iglesias

The aim of this tutorial is to present an overview of the most useful and important techniques and tools that can be used to efficiently work with Python in HPC. Different tips and approaches that developers can implement to improve the performance of their Python codes will be provided, as well as information on how to take advantage of multicore and distributed programming. This tutorial will also focus on different alternatives for efficiently developing, profiling and running Python codes on Stampede, however, most of the topics covered will be applicable to any other machine. This tutorial is not intended to be an introduction to Python, so no special focus will be put on the specifics of the syntax. This will be a hands-on tutorial in which the audience will be guided through a number of detailed examples.

Some of the topics that will be covered are:

  • Profiling of serial codes: different alternatives will be presented for profiling existing codes. This part will also provide an iterative model for profiling codes to improve existing bottlenecks.

  • Improvement of serial performance: various approaches will be introduced for improving the performance of an existing code. Cython and Numpy will be explained using examples. Automatic offload to the Intel Xeon Phi will be demonstrated.

  • Extending Python with C: how to use C code from Python for critical kernels of the code. Different options will be explored. This will also allow users to take advantage of the Intel Xeon Phi to perform their computations.

  • Distributed programming in Python: the tutorial will provide examples of the most common functionality of MPI using Python.

Speaker Description: 

Antonio joined TACC in 2014 as a Research Associate in the High Performance Group. Previously, he was Postdoctoral Fellow at CSIRO (Commonwealth Scientific and Industrial Research Organization) at the Mathematics, Informatics, and Statistics Division, now Computational Informatics, in the Operations Research Group in Clayton, Victoria, Australia. He obtained his PhD in Computer Science in 2011 from the University of Extremadura, Spain, in collaboration with the National Fusion Laboratory, where he worked as Research Project Officer.

PDF icon 1_intro.pdf2.35 MB
PDF icon 2_speed_up.pdf352.49 KB
PDF icon 3_numpy.pdf272.83 KB
PDF icon 4_mpi4py.pdf367.71 KB
PDF icon 5_multiprocessing.pdf210.84 KB

Event Category: