Rohan Giriraj
I'm a Software Engineer with close to 6 years of experience, currently working at Autodesk where I design and implement high throughput data pipelines to ingest and process petabytes of data. I love to have engineering discussions around performance tuning, and optimization patterns for languages like Python which are often deemed as just "scripting languages". In my off-time, I go trekking, watch anime, collect watches and play videogames.
Session
Python's GIL (Global Interpreter Lock), while promising thread safety within applications, can be a limiting factor when considering the need for truly parallel CPU bound tasks without the overhead of multiprocessing
or only the I/O concurrency which is provided by asyncio
.
In this talk we will discuss more about how we can bypass the GIL to improve performance and writing custom routines with Cython and the powerful nogil
directive to identify and resolve performance bottlenecks.
As the culmination of this talk, we will explore how we can use Cython and nogil
to implement an SGD (Stochastic Gradient Descent, an algorithm crucial to Deep Learning models) and benchmark it aganist pure Python implementation and see the performance gains.