Session Details

TaDa it's Magic: Predicting the Performance of Functions through Automated Doubling Experiments

Regular Session

When you deploy a program to a cloud-based execution environment, it is important that you understand its performance --- or you may end up with a expensive bill from your cloud provider! With that said, if you have tried to understand the performance of a function in your program you might have found yourself overwhelmed by the number of performance evaluation tools for different languages and platforms. If your experience is anything like mine, then you might have found the process confusing since, even though many tools have a significant number of configurations, they often don't share performance results in the most helpful fashion. Faced with the challenge of understanding the performance of a Python function as its inputs grow bigger, we built a tool called TaDa, available at https://github.com/Tada-Project/tada, that automatically conducts an experiment and determines the likely "order of growth" for a Python function. Although this talk introduces ways to evaluate the performance of Python functions that could run in AWS Lambda, the lessons that attendees learn can also translate to other languages and cloud computing platforms. After overviewing the idea of a doubling experiment, this presentation will explain the inputs, outputs, and behavior of TaDa. For example, TaDa can help you to pick between two different implementations of the same function. If TaDa predicts that the order-of-growth for one implementation is logarithmic and quadratic for another, then a developer should pick the function that TaDa identifies as having a logarithmic order-of-growth. TaDa can also help developers to better understand the performance of a specific function by revealing that its order-of-growth is, for instance, likely to be cubic when inputs increase in size and thus in need of significant speed improvements before deployment to AWS. Although these concepts may, at first glance, seem both confusing and to good to be true, this presentation will give viewers an eye-opening understanding of how to use TaDa to gain insights into the performance of Python functions. Ultimately, the people who attend this session will learn foundational concepts and practical skills that will help them to either use TaDa in their Python project or build and use their own TaDa-like tool for their own software. Summary of what people will learn by attending this talk: - The challenges associated with using alternative programs for evaluating a Python program's performance - The concept of order-of-growth as illustrate through examples of Python functions and their inputs - The ways in which the TaDa tool helps a programmer to automatically predict the order-of-growth for a Python function - Examples of the commands that a programmer would type to run the TaDa tool on their own Python functions - How to integrate TaDa into a realistic workflow for Python programming and the evaluation of function performance
About

A software development conference in the Louisville, KY area on August 18 - 20, 2021 designed to cover all aspects of software development regardless of development stack.

Keep in Touch