Python has a terrible reputation when it comes to its parallel processing capabilities.
Ignoring the standard arguments about its threads and the GIL (which are mostly valid), the real problem with parallelism in Python isn't a technical one, but a pedagogical one. The common tutorials surrounding Threading and Multiprocessing in Python, while generally excellent, are pretty “heavy.” They start in the intense stuff and stop before they get to the really good, day-to-day useful parts.
The talk will highlight the impact of Global Interpreter Lock on multithreaded programs and include code snippets to compare single and multithreaded programs using a real-life example.
Then, we move on to the concept of multiprocessing and the address its benefits over multithreading and mention some examples for it.
The talk will end with an application of multiprocessing in the area of Computer Vision and how it speeds up the completion of a task by 82%.
Moreover, this talk aims to inspire both novices and experts to look more into this subject and create something that could possibly be of benefit to the entire Python community around the world.