Skip to content
Success

Changes

Summary

  1. Clubb loss driver (#1303) (details)
Commit 2a334f87922dfaceb7d3a37b1924d374f1b986d5 by noreply
Clubb loss driver (#1303)

* First set of commits for the new loss driver.

* Improvements

* Batching capabilities

* Lot's of cleanup, simplifications, and consolidation

* More testing

* Python interfaces for the loss driver

* Interface for tuner and tuner with modes.

* Nice updates

* Missed file

* Little updates to fix inconsistencies in the plots and averaging ranges

* Adding a script that converts sam and coamps netcdf files to a clubb named version, including things that need to be calculated. This fixes a bug where fields were being averaged before being calculated, see https://github.com/larson-group/clubb/issues/1284, but is currently only wired up in the new tuner and the dash app plotter

* Making some things public for nvhpc

* Organization and consistency test fix

* Adding taylor diagram to tune tab, this needs taylor metrics to be computed so the loss driver needed to output this info.

* Adding more fancy loss functions based on Taylor metrics and a way to switch how the loss is computed in the dash tuner

* Making NaN in code not an issue

* Mostly dash app improvements to plotting, also made subwindows for tuning

* Tuner tracking by case

* Removing stats time-variance code

* Simplifying loss driver output - now loss metrics are output explicitly rather than as packaged taylor_metrics and having different versions for subwindows and such

* Mainly ui updates and small simplifications

* Improving comments and cleaning things up a bit

* Removing strictness on stats window vs output interval, and adding a stats consistency test to tests for issues with batch size and output frequency and the windowing mode

* Fixing openmp bug and making incomplete stats intervals not output, as it was before

* Making jenkins test use standard stats, and fixing tiny bug that caused error running with debug+no rcp2 stats

* Adding gate around bindiff, there's an edge case where a cosmetic diff can trigger a full-diff even in a failed case, which should otherwise be considered BFB and skipped.

* Adding some README entries for the dash app and a python requirements file

* Adding comments and little bug fix to dash app

* Update to loss consistency test, making it simpler since stats consistency test covers most things. Also adding it to the stats consistency jenkins test since it is still similar

* Cleanup and code consolidation, new jenkins test for tuner

* Adding comments

* Fixing little bugs

* Slight improvement to stats_api

* Small bug fix

* Consolidating stats time setting
The file was addedtuner/clubb_loss_driver_test.py
The file was modifiedsrc/SILHS/latin_hypercube_driver_module.F90 (diff)
The file was addeddash_app/tune_tab/layout.py
The file was addedtuner/status.py
The file was modifieddash_app/plot_tab/callbacks_controls.py (diff)
The file was addedclubb_python_api/clubb_python/_runtime_loader.py
The file was addedtuner/tuning_worker.py
The file was addedtuner/paths.py
The file was modifieddash_app/plot_tab/plot_types/profile_plot.py (diff)
The file was addedclubb_python_api/clubb_python/CLUBB_core/loss_driver.py
The file was addedjenkins_tests/clubb_new_tuner_test/Jenkinsfile
The file was modifiedsrc/clubb_driver.F90 (diff)
The file was addedtuner/taylor_metrics.py
The file was addedutilities/__init__.py
The file was modifiedREADME (diff)
The file was modifieddash_app/plot_tab/plot_types/subcolumn_plot.py (diff)
The file was modifieddash_app/plot_tab/state.py (diff)
The file was addedrun_scripts/run_scm_loss.py
The file was modifiedrun_scripts/create_multi_col_params.py (diff)
The file was addeddash_app/tune_tab/callbacks_runs.py
The file was modifieddash_app/plot_tab/callbacks_case.py (diff)
The file was modifiedsrc/clubb_driver_test.F90 (diff)
The file was addedsrc/clubb_loss_driver_test.F90
The file was addedrun_scripts/run_tuner_job.py
The file was addeddash_app/tune_tab/runtime.py
The file was addedtuner/__init__.py
The file was modifieddash_app/app.py (diff)
The file was modifieddash_app/plot_tab/plot_types/shared.py (diff)
The file was modifiedclubb_python_api/clubb_python/clubb_api.py (diff)
The file was modifieddash_app/plot_tab/callbacks_params.py (diff)
The file was addedsrc/clubb_loss_driver.F90
The file was addeddash_app/tune_tab/discovery.py
The file was modifiedsrc/CLUBB_core/clubb_api_module.F90 (diff)
The file was addedtuner/request.py
The file was addedtuner/case_defaults.json
The file was addeddash_app/tune_tab/callbacks_settings.py
The file was addedrun_scripts/create_case_namelist.py
The file was addeddash_app/requirements.txt
The file was modifieddash_app/run_tab/callbacks_console.py (diff)
The file was addeddash_app/plot_tab/profile_loss.py
The file was modifiedclubb_python_driver/clubb_case_initalization.py (diff)
The file was addeddash_app/assets/37_run_console_state.js
The file was addedtuner/clubb_loss_driver.py
The file was addeddash_app/tune_tab/callbacks_display.py
The file was modifieddash_app/plot_tab/plot_types/timeheight_plot.py (diff)
The file was modifieddash_app/plot_tab/layout.py (diff)
The file was addeddash_app/assets/13_tab_tune_theme.css
The file was addeddash_app/tune_tab/tab.py
The file was modifiedrun_scripts/run_bindiff_all.py (diff)
The file was modifieddash_app/plot_tab/benchmark_overlay.py (diff)
The file was addedtuner/README.md
The file was modifiedsrc/CLUBB_core/error_code.F90 (diff)
The file was modifiedclubb_python_api/clubb_python/__init__.py (diff)
The file was modifiedrun_scripts/run_scm.py (diff)
The file was modifiedsrc/CLUBB_core/stats_netcdf.F90 (diff)
The file was addedutilities/loss_metrics.py
The file was addedsrc/clubb_standalone_loss.F90
The file was addedrun_scripts/run_benchmark_converter_test.py
The file was addeddash_app/tune_tab/state.py
The file was addedtuner/job_runtime.py
The file was modifiedsrc/CMakeLists.txt (diff)
The file was addedjenkins_tests/clubb_stats_output_consistency_gfortran_test/Jenkinsfile
The file was addedtuner/case_defaults.py
The file was addedtuner/tuning_strategy.py
The file was addedutilities/benchmark_converter.py
The file was modifiedclubb_python_driver/advance_clubb_to_end.py (diff)
The file was addedrun_scripts/run_stats_output_consistency.py
The file was addedrun_scripts/run_loss_output_consistency.py
The file was addedtuner/tuning_scheduler.py
The file was modifiedclubb_python_api/clubb_f2py.pyf (diff)
The file was modifieddash_app/plot_tab/callbacks_grid.py (diff)
The file was modifieddash_app/plot_tab/plot_types/budget_plot.py (diff)
The file was addeddash_app/assets/36_tune_ui_resize.js
The file was modifieddash_app/run_tab/layout.py (diff)
The file was addedtuner/tune_clubb.py
The file was modifiedclubb_python_api/clubb_python/CLUBB_core/stats_netcdf.py (diff)
The file was addeddash_app/tune_tab/__init__.py
The file was addedclubb_python_api/f2py_fortran_wrappers/clubb_loss_driver_wrapper.F90
The file was addedjenkins_tests/LLM_FAILURE_AUTOMATION_DESIGN.md
The file was modifieddash_app/assets/12_tab_plots_theme.css (diff)
The file was addeddash_app/README.md
The file was modifiedsrc/CLUBB_core/pdf_closure_module.F90 (diff)
The file was modifiedclubb_python_api/f2py_fortran_wrappers/stats_netcdf_wrapper.F90 (diff)
The file was addedtuner/test_tuning_strategy.py