Requisitos
Para poder aprovechar los contenidos del curso, se recomienda tener experiencia con el lenguaje de programación Python.
Horario
Carga horaria: 15 horas.
- Clase 1: Lunes 13/3, 14:00hs a 17:00hs
- Clase 2: Martes 14/3, 14:00hs a 17:00hs
- Clase 3: Miércoles 15/3, 14:00hs a 17:00hs
- Clase 4: Jueves 16/3, 14:00hs a 17:00hs
- Clase 5: Viernes 17/3, 14:00hs a 17:00hs
Programa abreviado
Interactive exploration and analysis of large amounts of data from scientific simulations, in-situ visualization and application control are convincing scenarios for explorative sciences. Based on the open source software Jupyter or JupyterLab, a way has been available for some time now that combines interactive with reproducible computing while at the same time meeting the challenges of support for the wide range of different software workflows.
Even on supercomputers, the method enables the creation of documents that combine live code with narrative text, mathematical equations, visualizations, interactive controls, and other extensive output. However, a number of challenges must be mastered in order to make existing workflows ready for interactive high-performance computing. With so many possibilities, it’s easy to lose sight of the big picture. This course provides a detailed introduction to interactive high-performance computing.
Objetivos
A course on “Interactive High Performance Computing using Jupyter” should aim to teach students how to use Jupyter Notebooks to perform interactive, high-performance computing tasks. The course will cover the following objectives:
- Understanding High Performance Computing: The course should provide a solid foundation in high-performance computing concepts and principles, including parallel computing, distributed computing, and optimization techniques for code running on high-performance computing clusters.
- Introduction to Jupyter Notebooks: The course should provide an introduction to Jupyter Notebooks, including how to install and configure them, and how to use them for data analysis, visualization, and interactive computing tasks.
- Interactive Parallel Computing with Jupyter: The course should teach students how to use Jupyter Notebooks to perform interactive parallel computing tasks using libraries such as Dask, MPI, and PySpark.
- Optimizing Code for High Performance Computing: The course should cover techniques for optimizing code for high-performance computing, including how to manage memory, how to use threading and multiprocessing, and how to use GPU acceleration.
- Collaborative Computing with Jupyter: The course should teach students how to use Jupyter Notebooks to collaborate on high-performance computing projects with colleagues and team members.
The course aim to provide students with the skills and knowledge needed to perform interactive, high-performance computing tasks using Jupyter Notebooks, and to collaborate on high-performance computing projects with colleagues and team members.
Temario:
The following topics are covered:
- Introduction to Jupyter
- Parallel computing using Jupyter
- Interactive & in-situ visualization
- From ipywidgets to dashboards
Bibliografía:
- “High Performance Computing with Python 3: How to Use Parallel Processing for Machine Learning” by Dr. Ronald K. Pearson (2019).
- “Parallel and High Performance Computing with Jupyter” by W. van Engen and J. J. van der Bijl (2020).
- “Jupyter Cookbook: Over 100 Hands-On Recipes to Quickly Prepare, Cook, and Serve Jupyter Notebooks” by Dan Toomey (2018).
- “High Performance Python: Practical Performant Programming for Humans” by Micha Gorelick and Ian Ozsvald (2020).
- “Data Science on the Google Cloud Platform: Implementing End-to-End Real-Time Data Pipelines: From Ingest to Machine Learning” by Valliappa Lakshmanan (2018).
- “High Performance Computing and Big Data Analytics: Concepts, Technologies, and Applications” by H. Zhang, et al. (2018).
- “Python for Data Science Handbook: Essential Tools for Working with Data” by Jake VanderPlas (2016).
- “Parallel Computing: On the Road to Exascale” by Gerhard R. Joubert, et al. (2015).
- “Python High Performance: Build High-Performance Concurrent, and Distributed Applications” by Gabriele Lanaro (2017).
- “Jupyter Notebooks: Quick Start Guide” by Packt Publishing (2018).