buckbaskin / formak

https://buckbaskin.com/formak/generated/html/index.html
MIT License
3 stars 0 forks source link

Experiment: Superoptimization #26

Closed buckbaskin closed 9 months ago

buckbaskin commented 9 months ago

Overview

FormaK aims to combine symbolic modeling for fast, efficient system modelling with code generation to create performant code that is easy to use.

The Five Key Elements the library provides to achieve this user experience are:

  1. Python Interface to define models
  2. Python implementation of the model and supporting tooling
  3. Integration to scikit-learn to leverage the model selection and parameter tuning functions
  4. C++ and Python to C++ interoperability for performance
  5. C++ interfaces to support a variety of model uses

This design focuses on experimenting with the possible performance benefits from the straightforward (common subexpression elimination) to the magical: super-optimization.

The performance is relevant in two key ways:

  1. Evaluating the runtime of the output program vs the current system
  2. Evaluating the compile time of the super-optimizing program to see if it is sufficiently fast to be usable

This design is experimental in nature, so the end goal is only to collect this data to establish a data point from which future work can proceed. There is no goal to have this design be a full feature of the project.

buckbaskin commented 9 months ago

docs-diff is ok (documentation changes focused on design+retro for the experiment)