O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

High-Performance Computing with Python 3.x

Video Description

Build high-performance, distributed, and concurrent applications in Python

About This Video

  • Master using NumPy, SciPy, and Cython to speed up your numerical computations.
  • Leverage the power of multiprocessing and multithreading in Python for parallelism.
  • Master using Dask to handle large data in a distributed setting and reactive applications in Python.

In Detail

Python is a versatile programming language. Many industries are now using Python for high-performance computing projects.

This course will teach you how to use Python on parallel architectures. You'll learn to use the power of NumPy, SciPy, and Cython to speed up computation. Then you will get to grips with optimizing critical parts of the kernel using various tools. You will also learn how to optimize your programmer using Numba. You'll learn how to perform large-scale computations using Dask and implement distributed applications in Python; finally, you'll construct robust and responsive apps using Reactive programming.

By the end, you will have gained a solid knowledge of the most common tools to get you started on HPC with Python.

All code files are located on GitHub at this link https://github.com/PacktPublishing/High-Performance-Computing-with-Python-3.x

Downloading the example code for this course: You can download the example code files for all Packt video courses you have purchased from your account at http://www.PacktPub.com. If you purchased this course elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Table of Contents

  1. Chapter 1 : Getting Started with Faster and Efficient Python Code
    1. The Course Overview 00:05:56
    2. Exploring Python Datatypes 00:10:17
    3. Using Lambda Expressions 00:09:14
    4. Comprehensions for Speedups 00:06:22
    5. Generators and Iterators 00:09:52
    6. Using Decorators for Time Analysis 00:08:23
  2. Chapter 2 : Parallel Programming in Python
    1. Introduction to the Threading Module 00:07:06
    2. Using Threads with Locks 00:10:40
    3. Global Interpreter Lock 00:02:24
    4. Multiprocessing in Python 00:04:18
    5. Using a Pool of Workers 00:05:22
  3. Chapter 3 : Using NumPy and SciPy to Speedup Computations
    1. Introduction to NumPy 00:03:21
    2. Exploring NumPy Arrays 00:05:45
    3. Indexing in NumPy Arrays 00:06:47
    4. Operations and Broadcasting on NumPy Arrays 00:06:44
    5. Performance Comparison of NumPy Arrays 00:04:15
    6. Combining SciPy with NumPy 00:03:21
  4. Chapter 4 : Optimizing Python Code Using Cython
    1. Introduction to Cython 00:04:30
    2. Implement a Program Using Cython 00:05:02
    3. Time Analysis of a Cython Program 00:05:01
    4. Cython Data Types 00:07:43
    5. Using Cython Functions 00:06:39
    6. Combining NumPy and Cython 00:06:52
  5. Chapter 5 : Speeding Up Your Python Code Using Numba
    1. Introduction to Numba 00:03:46
    2. Setting Up Numba 00:03:43
    3. Creating Your First Program with Numba 00:02:39
    4. Digging Deeper into Numba 00:07:48
    5. Threading Using Numba 00:02:57
    6. Performance Comparison with Numba 00:04:54
  6. Chapter 6 : Distributed Computing Using Python
    1. Introduction to Synchronous Programming 00:03:18
    2. Understanding Asynchronous Programming 00:03:08
    3. Asynchronous Programming in Python 00:10:53
    4. Distributed Systems Architecture 00:03:49
  7. Chapter 7 : Distributed Programming Using Dask
    1. Introduction to Dask 00:03:52
    2. Setting Up Dask 00:02:53
    3. Blocked Algorithms and Dask Arrays 00:02:46
    4. Writing Your First Program Using Dask 00:04:10
    5. Using @delayed to Parallelize Code 00:07:52
    6. Performance Comparison with Dask 00:06:14
  8. Chapter 8 : Reactive Programming Using Python
    1. Introduction to Reactive Programming 00:08:24
    2. Observables and Observers 00:03:52
    3. Overview of Data Operators 00:04:31
    4. Reactive Programming in Python Using RxPy 00:07:53
    5. Using Data Operators with RxPy 00:07:05