2026-07-16 –, Johnson Great Room
Few of us come to scientific computing with an understanding of how to write a system kernel or build a transistor. But we often downplay the benefits of going just one or two layers of abstraction below our comfort zone, strengthening our foundations and expanding our options.
This talk explores the meaning, utility, and optimization of vectorized array operations, fundamental to NumPy, from Python bytecode down to x86 assembly. We'll build a physical intuition for how array operations work, when they turn out to be less performant than we might expect, and how to find the right balance between effort and performance for your needs.
Intended Audience
Scientific Python developers who use NumPy arrays habitually, but find themselves concerned that the efficiency of their code is impacted by implementation details further down the stack of abstractions.
What We'll Cover
- How NumPy's array operations are implemented compared to lists
- Pitfalls of naive NumPy use
- Other options for numerical array operations in Python
- Writing bespoke extensions in Rust
- x86 assembly in a nutshell
- What is 'vectorization' really?
I am a data scientist and software engineer specializing in Python+Rust integration. I currently work at the Rose Center for Earth and Space optimizing astrophysical simulations and writing high-performance library code.