Why this is for you
Python is an excellent general-purpose programming language that has revolutionised data science by making data easy to handle and transform, but often at the cost of performance. Devices like GPU's have brought supercomputer-like performance to desktop computers, however access to these devices has, up to this point, been through lengthy and error-prone C code that is a big drain on your most precious commodity, time.
This course aims to help you cross a bridge between retaining the flexibility of Python and accessing the raw compute power of devices like GPU's. Learn how to accelerate computing with Python through a high-level abstraction over the CUDA and OpenCL and frameworks for GPU’s and other Multi-core devices. Using this technology I obtained a 10x increase in data throughput for a client. Speed increases like this can transform your data processing workflows without the need for significant investment into developer- intensive languages like C.
GPU computing with Python is aimed at intermediate and advanced Python developers who need to accelerate parallel algorithms. The core topics covered are as follows:
- Understand how GPU and CPU compute devices work and what algorithms they are suited for
- Explore fundamental HPC concepts such as how multi-dimensional arrays map to memory allocations.
- Investigate how OpenCL and CUDA map work to manycore devices.
- Write Python code that interacts with the compute device.
- Learn the basics of C syntax in compute kernels and how to use pointers.
- Develop compute kernels to process data in Numpy arrays with for a wide variety of data types.
- Optimisation tips on how to write high performance compute kernels.
The course is taught almost purely by example, and I carefully explain each line of code. You will have numerous opportunities to apply the knowledge you learn through a number of carefully crafted exercises.
Things you need to know before enrolling
For this course I will assume that you have a reasonable grasp of Python. There is some installation required to get all the software components ready, so you need administrator access to a computer (Windows, MacOS, and Linux is fine), as well as a means to download the required software.
By the end of the course you will be able to write Python programs that leverage the compute power of CPU's, GPU's, and other multi-core compute devices, thus unlocking the sheer compute power that these devices provide. How much is that ability worth to you?
Dr. Toby Potter is a computational physicist and proprietor of Pelagos Consulting and Education. He has a keen interest in using computers to solve problems and showing others how to do the same. Toby was formerly employed as a postdoctoral researcher in the Centre for Energy Geoscience at The University of Western Australia, and has been using Python on a daily basis since 2008. He is also a passionate science communicator, and regularly engages with industry and academia in both consulting and education roles.
LinkedIn profile: https://www.linkedin.com/in/topotter/
Publication record: https://scholar.google.com.au/citations?user=-BVUGTgAAAAJ&hl=en&oi=ao
Conference talk example: https://youtu.be/wrDbW_2HjYE
Phone number: +61 437 454 750