Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Experiment: Superoptimization #26

Merged
merged 18 commits into from Feb 28, 2024
Merged

Experiment: Superoptimization #26

merged 18 commits into from Feb 28, 2024

Conversation

buckbaskin
Copy link
Owner

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 buckbaskin self-assigned this Feb 15, 2024
@buckbaskin buckbaskin marked this pull request as ready for review February 28, 2024 06:46
@buckbaskin
Copy link
Owner Author

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

@buckbaskin buckbaskin merged commit 42b0e0c into main Feb 28, 2024
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant