Special offers now — see discounted courses.
day
:
hour
:
min
:
sec
See special offers
Python Parallel and Concurrent Programming Part 2

Python Parallel and Concurrent Programming Part 2

2h 19mAdvanced2019-08-27

Authors

Barron Stone

Barron Stone

Electrical Engineer

Olivia Chiu Stone

Olivia Chiu Stone

Programmer, Engineer

Course details

Parallel programming is key to writing faster and more efficient applications. This course, the second in a series from instructors Barron and Olivia Stone, introduces more advanced techniques for parallel and concurrent programming in Python. Barron and Olivia explain concepts like condition variables, semaphores, barriers, and thread pools in a fun and informative way, relating them to everyday activities you perform in the kitchen. They also explain how to evaluate your code’s performance and design more efficient parallel programs from the start with techniques like partitioning. To cement the ideas, they demo them in action using Python—closing the course with a variety of coding challenges. Each lesson is short and practical, driving home the theory with hands-on techniques.

Learning objectives
Working with condition variables
Exploring the producer-consumer problem
Controlling the order of operations with barriers
Reusing threads with thread pools
Adding placeholders with futures
Measuring speedup, latency, and throughput
Designing parallel programs
Combining tasks
Mapping tasks

Skills covered

Programming FoundationsPythonProgramming LanguagesOpen SourceSoftware DevelopmentDeep Dive (X:Y)

Concepts

Introduction

  • Learn parallel programming basics
  • What you should know
  • Exercise files

Synchronization

  • Condition variable
  • Condition variable - Python demo
  • Producer-consumer
  • Producer-consumer threads - Python demo
  • Producer-consumer processes - Python demo
  • Semaphore
  • Semaphore - Python demo

Barriers

  • Race condition
  • Race condition - Python demo
  • Barrier
  • Barrier - Python demo

Asynchronous Tasks

  • Computational graph
  • Thread pool
  • Thread pool - Python demo
  • Process pool - Python demo
  • Future
  • Future - Python demo
  • Divide and conquer
  • Divide and conquer - Python demo

Evaluating Parallel Performance

  • Speedup, latency, and throughput
  • Amdahl's law
  • Measure speedup
  • Measure speedup - Python demo

Designing Parallel Programs

  • Partitioning
  • Communication
  • Agglomeration
  • Mapping

Challenge Problems

  • Welcome to the challenges
  • Challenge - Matrix multiply in Python
  • Solution - Matrix multiply in Python
  • Challenge - Merge sort in Python
  • Solution - Merge sort in Python
  • Challenge - Download images in Python
  • Solution - Download images in Python

Conclusion

  • Additional resources
  • Next steps

About us

LyndaKade is a leading learning platform that helps people learn business, software, technology, and creative skills to achieve personal and professional goals.

Phone numberAparat ChannelTelegram SupportTelegram ChannelInstagram Page

All rights to this site belong to LyndaKade.

Terms of Service|Privacy Policy

نماد الکترونیک enamad در صورت اتصال با آی‌پی داخل کشور، نمایش داده خواهد شد.
logo-samandehi - لوگو ساماندهی
Zarinpal
Zibal