Concurrent and Parallel Programming in Python Online Course
Concurrent and Parallel Programming in Python Online Course
This Concurrent and Parallel Programming in Python course equips you to overcome speed bottlenecks in big data projects by leveraging threading for concurrency and multiprocessing for parallelism. The course covers essential concepts like threading, multiprocessing, asynchronous programming, locking, queues, and Pool Map. You'll work on practical projects, including building a multi-threaded Wikipedia and Yahoo Finance Reader, creating a master scheduler, and saving data to a local database. By combining multiprocessing and async programming, you’ll learn to fully utilize CPU resources, reduce IO wait times, and develop efficient, high-performance applications.
Key Benefits
- Gain a comprehensive understanding of common computing speed bottlenecks and learn effective strategies to address them.
- Develop expertise in building multi-threaded, asynchronous, and multi-process programs to significantly enhance the performance and efficiency of your applications.
- Master the integration of multiprocessing and asynchronous programming to optimize coding practices, maximize resource utilization, and achieve superior performance outcomes.
Target Audience
This course is designed for programmers, API developers, web developers, and application developers with intermediate to advanced skill levels who aim to deepen their expertise. A foundational knowledge of Python, ranging from basic to intermediate, is recommended to fully grasp the concepts of concurrency and parallelism covered in this course. Familiarity with Python coding practices will ensure learners can effectively engage with the material and maximize the course’s benefits.
Learning Objectives
- Master the implementation of concurrency and parallelism in Python to enhance program efficiency.
- Develop multi-threaded Python programs to streamline code and optimize performance.
- Create multi-process Python programs designed for faster execution and improved resource utilization.
- Gain a clear understanding of the distinctions between concurrency and parallelism and their practical applications.
- Build asynchronous Python programs by incorporating concurrency techniques to manage tasks efficiently.
- Leverage all available CPU cores on a machine to distribute workloads effectively and maximize computational power.
Course Outline
The Concurrent and Parallel Programming in Python Exam covers the following topics -
Domain 1 - Threading
- Overview of Threading, Multiprocessing, and Asynchronous Programming
- Implementing Threading in Python
- Developing a Threading Class
- Building a Wikipedia Data Reader
- Creating a Yahoo Finance Data Reader
- Utilizing Queues and Designing a Master Scheduler
- Developing and Integrating a Postgres Worker
- Introduction to YAML Files
- Implementing a YAML File Reader
- Enhancing the Wiki Worker Functionality
- Optimizing All Workers and Adding a Monitoring Mechanism
- Finalizing and Cleaning Up the Program
- Understanding and Implementing Locking Mechanisms
Domain 2 - Multiprocessing
- Introduction to Python’s Multiprocessing Module
- Implementing Multiprocessing Queues
- Using Multiprocessing Pools for Task Management
- Mapping Multiple Arguments Using Multiprocessing Pools
- Handling Multiple Dynamic Arguments in Multiprocessing
- Checking List Elements Within Specified Ranges Using Multiprocessing
Domain 3 - Asynchronous Programming
- Introduction to Writing Asynchronous Programs in Python
- Managing Asynchronous Tasks
- Utilizing the Async Gather Method for Efficient Execution
- Implementing Async Timeouts
- Creating Asynchronous Loops for Repeated Operations
- Leveraging Asynchronous Libraries for Enhanced Functionality
- Understanding and Using the Async Wait Statement
- Combining Asynchronous Programming with Multiprocessing Techniques