Leveraging the power of your GPU/CPU for math intensive computations with python
Shubham Bhardwaj (~shubham0704) |
Description:
Thinking parallel is an art, applying it is another. While applying it, the first hurdle for us is to move to another language like C or C++ to get performance gains. What if we write simple python code and someone magically helps us gain C like performance? Sounds like a dream, it ain't ! . Enter Numba :)
In this workshop you will -
- Witness how Numba help you get insane performance gains to your code without changing a line of it.
- Learn to harness the power of your GPU/CPU for performing math intensive computations.
- See how it compares to other libraries like Numpy , etc. and how they can complement it.
- Use Numba to parallelize the very famous Particle Swarm Optimization Algorithm
Flow of the workshop -
- Where to use Numba in your code - (time profiling, small examples)
- The wow of Numba in my life, a small example of how it helped in my research
- Introduction to jit complier, internals of Numba
- Introduction to the Particle Swarm Optimization (this is where the fun starts :) )
- Code up basic PSO
- Profile PSO to find pain areas
- Try to speed up the pain areas using Numba
- Kick up a hierarchical swarm (just for fun, if time permits)
- QA Session
Prerequisites:
numpy, matplotlib, jupyter, ipython, numba, line_profiler , llvmlite. A more specific description is available here
Content URLs:
To get a feel of Numba see - first steps
Speaker Info:
Hi, I am Shubham Bhardwaj. I am currently a Research Intern at Jio CoE for AI/ML and a final year undergrad at VIT University, Vellore. I am a die-hard pythonista. My daily work involves developing and implementing algorithms for interesting problems in AI.
Apart from this I am also an organizer at GDGVIT, I love dev :) and contribute to various open source organisations, organise workshops, promote python whenever I can.