by Narendran (@dudewhocode) on Wednesday, 13 September 2017
- Technical level
Any task can be made embarassingly parallel with your code by crunching up the resources and using all CPU cores. What if your system resources are limited, say single core?, How do we achieve the similar speed in execution of tasks?. In this talk we will discuss about how we can use python3 to achieve near speed as in parallelism but without compromising system resources. At the end of the talk the audience will know that concurrency is not parallelism and how to use achieve it.
A good code is one which uses the system resources efficiently which means not over utilizing the resources as well as not under utilizing by leaving them idle. One of the main features of Python3 is its asynchronous capabilities. We will see how we can levarage the async library to concurrently run our code, efficiently use our resources and finishing the tasks blazingly fast.
Concurrency is not parallelism
a. What is parallelism?
b. What is concurrency?
c. RealWorld example (how a restaurant operates concurrently, why not parallely?)
The task : Pulling website contents using requests module
a. walk through of the code
a. Make the above code parallel
a. Make the above code concurrent
When not to use concurrency?
An optimist by nature, Naren shows up late to meetings at MadStreetDen. In his 4 years of industry experience he’s worn plenty of hats- like the one of a Trainer, Embedded Engineer and Backend/Product Engineer and sometimes even helmets- when he’s out cycling. He is currently on a mission to help startups to design and write usable software even before making it reusable.
When he’s not stirring up code, you can find him whipping up a delicious gluten-free treat or travelling/cycling. He likes being asked about his endless love for Python through the handle @DudeWhoCode