-
Notifications
You must be signed in to change notification settings - Fork 110
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
Add Everest storage (port of seba_sqlite logic) #9763
base: main
Are you sure you want to change the base?
Add Everest storage (port of seba_sqlite logic) #9763
Conversation
CodSpeed Performance ReportMerging #9763 will improve performances by 10.95%Comparing Summary
Benchmarks breakdown
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good 👍 🏅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! Most of my comments are just asking to clarify things I don't understand :). Amazing work, well done :) !!!
tests/everest/snapshots/test_api_snapshots/test_api_snapshots/config_multiobj.yml/snapshot.json
Show resolved
Hide resolved
2f0127c
to
ab585e9
Compare
e2edc85
to
3ddff7c
Compare
3ddff7c
to
f45879a
Compare
Release notes:
(Storage PR back in, for reviews, previous PR (accidentally merged): #9161)
Issue
Resolves #8811
Base idea/documentation:
Store datasets by
[batch, realization, perturbation] x [controls, objectives, constraints, objective_gradient, constraint_gradient]
:Exhaustive list of data stored PER BATCH :
batch.json
- contains info about the batch, batch_id and whether it is an improvement (aka merit flag, but the concepts are now unified for dakota and non-dakota runs)batch_constraints
constraint values (and violations) for constraints, batch-widebatch_objectives
objective values, batch-widerealization_controls
- control values for geo-realizations, also includessimulation_id
realization_objectives
- objective values per geo-realizationrealization_constraints
- constraint values per geo-realizationperturbation_objectives
- objective and control values per perturbationperturbation_constraints
- constraint and control values per perturbation (Note/discussion point: control values could be pulled into separate table to avoid redundancy)batch_objective_gradient
- Partial derivatives of objectives, given different controls. This dataset has one column per objective, and one row per control value, and the intersecting cells represent the partial derivative of the objective wrt that control value.batch_constraint_gradient
- Partial derivatives of constraints, given different controls. This dataset has one column per constraint, and one row per control value, and the intersecting cells represent the partial derivative of the constraint wrt that control value.Example data from
math_func/config_advanced.yml
(json format)Exhaustive list of data stored PER OPTIMIZATION
controls.json
- control values for this batchrealization_weights.json
- realization weightsnonlinear_constraints
- conditions for constraints to satisfy (on average over the batch)objective_functions
- objective function names, weights, and normalizationExample data from
math_func/config_advanced.yml
Potential simplifications
The
everest_data_api
is currently used for plotting, but could be used (probably expanded a bit) to avoid doing direct (polars) dataframe manipulations elsewhere in the code, but currently they are done directly in the code.