Python, Numba, and Algorithm Design: Building Efficient Models in Financial Services

Summary

Disclaimer: This summary has been generated by AI. It is experimental, and feedback is welcomed. Please reach out to info@qconsf.com with any comments or concerns.

The presentation titled Python, Numba, and Algorithm Design: Building Efficient Models in Financial Services by Chad Schuster provides insights into leveraging Python and Numba for enhancing performance in financial models.

Key Points:

  • Context: The session discusses using Python and Numba, a JIT compiler, to build efficient models in financial services, focusing on performance optimization while leveraging existing Python capabilities.
  • Use Cases: Relevant use cases in insurance and financial services, particularly in life insurance and retirement space, where computational intensity is high due to regulatory requirements.
  • Benefits of Numba:
    • Significant speed improvements by compiling Python code to machine code.
    • Easy parallelization and GPU utilization, offering up to 750 times speed enhancement in specific models.
    • Cost reduction potential, notably in cloud computing resources.
  • Challenges:
    • Not all Python code is compatible with Numba; limitations include certain Python features and data structures.
    • Maintaining object-oriented principles can be challenging.
  • Algorithm Design: Emphasizes the importance of understanding underlying algorithms, such as put-call parity in option valuation, to optimize computational processes.

Conclusion: Numba can significantly improve the performance of Python code, making it a valuable tool despite some challenges. It is particularly beneficial for numerical code that requires high performance.

This is the end of the AI-generated content.


Abstract

The popularity of Python means insurance and financial services companies have a growing body of actuaries, quantitative developers, and software engineers capable of building innovative and customized solutions for both data management and modeling.

Many of these same organizations leverage cloud services to maintain data and execute models and may be challenged to improve efficiency to minimize cloud-related expenses and reduce carbon footprints to align with sustainability goals. Can an organization capitalize on employees’ knowledge of Python and simultaneously address performance concerns? We believe one potentially powerful tool to accelerate Python is Numba, a technology for transforming Python code to native machine code.

This session will explore:

  • A brief overview of use cases in insurance and financial services
  • Considerations in algorithm design to optimize performance
  • The background of Numba as a just-in-time (JIT) compiler
  • The key benefits and challenges of Numba
  • The underlying mechanics of Numba
  • Techniques for customizing or extending Numba to navigate challenges
  • Performance improvements from utilizing Numba

Speaker

Chad Schuster

Principal @Milliman Focusing on Risk Management, Modeling, and Technology Consulting Services

Chad is a Principal in the Financial Risk Management (FRM) practice of Milliman where he leads the Actuarial Quant Group (AQG). His group develops software for financial reporting, planning, Mergers and Acquisitions (M&A), and risk management used by the FRM practice. Chad and his team also create customized solutions to meet clients' sophisticated and diverse technology needs, including development, design, and acceleration of client-maintained models; calculation engines for financial reporting and risk management of retirement products; and data visualization tools for experience studies and reporting.
 

Read more
Find Chad Schuster at:

Date

Wednesday Nov 19 / 03:55PM PST ( 50 minutes )

Location

Pacific DEKJ

Topics

Python Numba HPC High-Performance Languages

Share

From the same track

Session Rust

The Rust High Performance Talk You Did Not Expect

Wednesday Nov 19 / 10:35AM PST

Rust runs faster, but it slows down engineers, right? This was our team’s assumption when we decided to rewrite our code from Kotlin into Rust. But we were wrong in completely unexpected ways.

Speaker image - Ruth Linehan

Ruth Linehan

Software Engineer @Momento, Previously APIs/Webhooks @GitHub and @Puppet

Session Performance

When Every Bit Counts: How Valkey Rebuilt Its Hashtable for Modern Hardware

Wednesday Nov 19 / 01:35PM PST

Ever wondered what happens when a bunch of performance-obsessed developers decide their blazing-fast database isn't quite blazing-fast enough?

Speaker image - Madelyn Olson

Madelyn Olson

Principal Engineer @AWS, Maintainer of the Open-Source Valkey Project

Session

Instrumentation at Scale: Having Your Performance Cake and Eating It Too

Wednesday Nov 19 / 11:45AM PST

In high-performance code, a single misplaced counter increment can cost more than the operation it’s measuring. That creates a paradox: instrument too much and you slow the system down; instrument too little and you miss the insights you need to continuously deliver.

Speaker image - Brian Martin

Brian Martin

Co-founder and Software Engineer @IOP Systems, Focused on High-Performance Software and Systems, Previously @Twitter

Session Performance

Accelerating Performance by Incrementally Integrating Rust Into Existing Codebase

Wednesday Nov 19 / 02:45PM PST

In order to improve the performance of existing applications and services, we can identify the most performance-critical pieces and reimplement them in Rust as opposed to completely rewriting the applications from scratch.

Speaker image - Lily Mara

Lily Mara

Staff Engineer @Discord, Author of "Refactoring to Rust", Previously Engineering Manager @OneSignal