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.

Audience

This course will help Python Programmers, Data Analysts and aspiring Data Science professionals familiar with basic Python programming to extend their skillset so as to scale their code and improve their code performance.

Publisher resources

Download Example Code

Table of contents

  1. Chapter 1 : Getting Started with Faster and Efficient Python Code
    1. The Course Overview
    2. Exploring Python Datatypes
    3. Using Lambda Expressions
    4. Comprehensions for Speedups
    5. Generators and Iterators
    6. Using Decorators for Time Analysis
  2. Chapter 2 : Parallel Programming in Python
    1. Introduction to the Threading Module
    2. Using Threads with Locks
    3. Global Interpreter Lock
    4. Multiprocessing in Python
    5. Using a Pool of Workers
  3. Chapter 3 : Using NumPy and SciPy to Speedup Computations
    1. Introduction to NumPy
    2. Exploring NumPy Arrays
    3. Indexing in NumPy Arrays
    4. Operations and Broadcasting on NumPy Arrays
    5. Performance Comparison of NumPy Arrays
    6. Combining SciPy with NumPy
  4. Chapter 4 : Optimizing Python Code Using Cython
    1. Introduction to Cython
    2. Implement a Program Using Cython
    3. Time Analysis of a Cython Program
    4. Cython Data Types
    5. Using Cython Functions
    6. Combining NumPy and Cython
  5. Chapter 5 : Speeding Up Your Python Code Using Numba
    1. Introduction to Numba
    2. Setting Up Numba
    3. Creating Your First Program with Numba
    4. Digging Deeper into Numba
    5. Threading Using Numba
    6. Performance Comparison with Numba
  6. Chapter 6 : Distributed Computing Using Python
    1. Introduction to Synchronous Programming
    2. Understanding Asynchronous Programming
    3. Asynchronous Programming in Python
    4. Distributed Systems Architecture
  7. Chapter 7 : Distributed Programming Using Dask
    1. Introduction to Dask
    2. Setting Up Dask
    3. Blocked Algorithms and Dask Arrays
    4. Writing Your First Program Using Dask
    5. Using @delayed to Parallelize Code
    6. Performance Comparison with Dask
  8. Chapter 8 : Reactive Programming Using Python
    1. Introduction to Reactive Programming
    2. Observables and Observers
    3. Overview of Data Operators
    4. Reactive Programming in Python Using RxPy
    5. Using Data Operators with RxPy

Product information

  • Title: High-Performance Computing with Python 3.x
  • Author(s): Mohammed Kashif
  • Release date: February 2019
  • Publisher(s): Packt Publishing
  • ISBN: 9781789956252