Skip to content

It is a comprehensive guide for learning High-Performance Computing (HPC) using Python. It covers essential concepts and practical techniques to leverage Python for HPC tasks, including optimization, parallel programming, distributed computing, and GPU acceleration.

Notifications You must be signed in to change notification settings

Ira-Sharma/Learning-High-Performance-Computing-with-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

Learning-High-Performance-Computing-with-Python

It is a comprehensive guide for learning High-Performance Computing (HPC) using Python. It covers essential concepts and practical techniques to leverage Python for HPC tasks, including optimization, parallel programming, distributed computing, and GPU acceleration.

Introduction

Key Topics Include:
  1. Parallel Programming: Learn multiprocessing, mpi4py, and concurrent programming techniques.
  2. Distributed Computing: Explore distributed systems using Dask and related Python tools.
  3. GPU Acceleration: Utilize CUDA with Python for GPU computing, focusing on libraries like Numba for just-in-time (JIT) compilation.
  4. Low-Level Performance: Learn to optimize Python code using Numba and Cython for performance boosts by compiling Python code to machine code.
  5. Profiling and Optimization: Techniques to profile, analyze, and optimize your code for better performance on HPC systems.
  6. Real-World Examples: Practical examples to reinforce your understanding of HPC concepts.

Code

The Jupyter Notebooks provided contain the code examples and exercises performed on Google Colaboratory and MacOS systems.

HPC on Google Colab

'HPC_on_Google_Colab.ipynb': This notebook covers a wide range of HPC topics and tasks performed on Google Colaboratory, including:
  1. Bottlenecks
  2. Intro to IPython and Jupyter Notebooks
  3. Numy Intro
  4. Think Vector
  5. Profiling
  6. Debugging in Python
  7. Speeding up your code with Cython
  8. Numba, GPUs and CUDA

HPC on MacOS

'HPC_on_Mac.ipynb': This notebook includes all the HPC tasks performed on a MacOS local machine, focusing on:
  1. Interactive Parallel Computing with IPython Parallel
  2. Numba Vectorize
  3. Introduction to Dask
  4. Introduction to MPI

References

[1] The Swiss National Supercomputing Centre is pleased to announce that the "High-Performance Computing with Python" course will be held from July 02-04, 2019 at CSCS in Lugano, Switzerland. https://www.youtube.com/watch?v=JYX4TQ_fCqY&list=PL1tk5lGm7zvQ-EzsiTZ6Xv1SxZs74epzg

About

It is a comprehensive guide for learning High-Performance Computing (HPC) using Python. It covers essential concepts and practical techniques to leverage Python for HPC tasks, including optimization, parallel programming, distributed computing, and GPU acceleration.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published