Description
In this talk I will take you on a whirlwind tour of Numba, the
just-in-time,
type-specializing, function compiler for accelerating
numerically-focused
Python. Numba can compile the computationally intensive functions of
your
numerical programs and libraries from Python/NumPy to highly optimized
binary
code. It does this by inferring the data types used inside these
functions and
uses that information to generate code that is specific to those data
types
and specialised for your target hardware. On top of that, it does all
of this
on-the-fly---or just-in-time---as your program runs. This
significantly reduces
the potential complexity that traditionally comes with pre-compiling
and
shipping numerical code for a variety of operating systems, Python
versions and
hardware architectures. All you need in principle, is to
conda install numba
and decorate your compute intensive functions with @nuba.jit!
This talk will equip you with a mental model of how Numba is
implemented and
how it works at the algorithmic level. You will gain a deeper
understanding of
the types of use-cases where Numba excels and why. Also, you will
understand
the limitations and caveats that exist within Numba, including any
potential
ideas and strategies that might alleviate these. At the end of the
talk you
will be in a good position to decide if Numba is for you and you will
have
learnt about the concrete steps you need to take to include it as a
dependency
in your program or library.
In this talk I will take you on a whirlwind tour of Numba and you will be quipped with a mental model of how Numba works and what it is good at. At the end, you will be able to decide if Numba could be useful for you.