DESC icon indicating copy to clipboard operation
DESC copied to clipboard

TERPSICHORE

Open ddudt opened this issue 1 year ago • 4 comments

New objective function to wrap the TERPSICHORE stability code

ddudt avatar Jun 07 '24 17:06 ddudt

put in separate experimental folder

dpanici avatar Jul 24 '24 19:07 dpanici

|             benchmark_name             |         dt(%)          |         dt(s)          |        t_new(s)        |        t_old(s)        | 
| -------------------------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- |
 test_build_transform_fft_lowres         |     -5.61 +/- 7.38     | -3.57e-02 +/- 4.69e-02 |  6.00e-01 +/- 4.1e-02  |  6.35e-01 +/- 2.2e-02  |
 test_equilibrium_init_medres            |     -1.80 +/- 8.87     | -7.87e-02 +/- 3.88e-01 |  4.29e+00 +/- 1.1e-01  |  4.37e+00 +/- 3.7e-01  |
 test_equilibrium_init_highres           |     +4.97 +/- 3.59     | +2.53e-01 +/- 1.82e-01 |  5.33e+00 +/- 1.5e-01  |  5.08e+00 +/- 1.0e-01  |
 test_objective_compile_dshape_current   |     +0.28 +/- 4.68     | +1.13e-02 +/- 1.92e-01 |  4.12e+00 +/- 1.4e-01  |  4.11e+00 +/- 1.3e-01  |
 test_objective_compute_dshape_current   |     -0.57 +/- 1.74     | -3.12e-05 +/- 9.51e-05 |  5.43e-03 +/- 6.4e-05  |  5.46e-03 +/- 7.1e-05  |
 test_objective_jac_dshape_current       |     -1.63 +/- 6.71     | -7.00e-04 +/- 2.89e-03 |  4.23e-02 +/- 2.1e-03  |  4.30e-02 +/- 2.0e-03  |
 test_perturb_2                          |     +0.46 +/- 1.35     | +9.21e-02 +/- 2.67e-01 |  1.99e+01 +/- 1.3e-01  |  1.99e+01 +/- 2.3e-01  |
 test_proximal_jac_atf_with_eq_update    |     -0.23 +/- 1.19     | -3.92e-02 +/- 2.02e-01 |  1.70e+01 +/- 5.7e-02  |  1.71e+01 +/- 1.9e-01  |
 test_proximal_freeb_jac                 |     +2.29 +/- 2.48     | +1.12e-01 +/- 1.21e-01 |  5.00e+00 +/- 1.1e-01  |  4.89e+00 +/- 4.3e-02  |
 test_solve_fixed_iter_compiled          |     +0.67 +/- 1.80     | +1.39e-01 +/- 3.73e-01 |  2.09e+01 +/- 3.5e-01  |  2.07e+01 +/- 1.3e-01  |
 test_LinearConstraintProjection_build   |     +0.78 +/- 2.57     | +8.51e-02 +/- 2.80e-01 |  1.10e+01 +/- 2.4e-01  |  1.09e+01 +/- 1.4e-01  |
 test_objective_compute_ripple_spline    |     -0.96 +/- 1.08     | -3.32e-03 +/- 3.76e-03 |  3.44e-01 +/- 2.3e-03  |  3.47e-01 +/- 3.0e-03  |
 test_objective_grad_ripple_spline       |     -0.57 +/- 2.16     | -8.20e-03 +/- 3.08e-02 |  1.42e+00 +/- 3.0e-02  |  1.43e+00 +/- 8.1e-03  |
 test_build_transform_fft_midres         |     +1.18 +/- 8.45     | +7.56e-03 +/- 5.41e-02 |  6.47e-01 +/- 5.0e-02  |  6.40e-01 +/- 2.1e-02  |
 test_build_transform_fft_highres        |     +0.61 +/- 2.66     | +5.60e-03 +/- 2.43e-02 |  9.19e-01 +/- 2.3e-02  |  9.14e-01 +/- 7.2e-03  |
 test_equilibrium_init_lowres            |     +3.06 +/- 5.59     | +1.21e-01 +/- 2.20e-01 |  4.06e+00 +/- 2.2e-01  |  3.94e+00 +/- 2.4e-02  |
 test_objective_compile_atf              |     -0.06 +/- 2.23     | -5.12e-03 +/- 1.87e-01 |  8.39e+00 +/- 1.5e-01  |  8.39e+00 +/- 1.1e-01  |
 test_objective_compute_atf              |     +2.01 +/- 2.31     | +3.24e-04 +/- 3.71e-04 |  1.64e-02 +/- 2.6e-04  |  1.61e-02 +/- 2.6e-04  |
 test_objective_jac_atf                  |     +0.64 +/- 1.85     | +1.27e-02 +/- 3.70e-02 |  2.01e+00 +/- 2.8e-02  |  1.99e+00 +/- 2.4e-02  |
 test_perturb_1                          |     -1.94 +/- 3.46     | -3.01e-01 +/- 5.37e-01 |  1.52e+01 +/- 5.1e-01  |  1.55e+01 +/- 1.5e-01  |
 test_proximal_jac_atf                   |     +0.31 +/- 1.33     | +2.48e-02 +/- 1.08e-01 |  8.11e+00 +/- 7.1e-02  |  8.09e+00 +/- 8.1e-02  |
 test_proximal_freeb_compute             |     +0.93 +/- 1.33     | +1.76e-03 +/- 2.50e-03 |  1.90e-01 +/- 2.0e-03  |  1.88e-01 +/- 1.5e-03  |
 test_solve_fixed_iter                   |     +1.85 +/- 2.51     | +6.10e-01 +/- 8.28e-01 |  3.36e+01 +/- 6.1e-01  |  3.30e+01 +/- 5.6e-01  |
 test_objective_compute_ripple           |     -0.48 +/- 1.72     | -3.34e-03 +/- 1.21e-02 |  6.97e-01 +/- 8.7e-03  |  7.01e-01 +/- 8.4e-03  |
 test_objective_grad_ripple              |     +0.13 +/- 1.17     | +3.56e-03 +/- 3.13e-02 |  2.67e+00 +/- 2.3e-02  |  2.67e+00 +/- 2.1e-02  |

github-actions[bot] avatar Nov 12 '24 18:11 github-actions[bot]

Should there be a test tto check if the interface works? Maybe have a dummy function instead of the actual TERPSICHORE solver?

rahulgaur104 avatar Jan 08 '25 19:01 rahulgaur104

Codecov Report

:x: Patch coverage is 0% with 1 line in your changes missing coverage. Please review. :white_check_mark: Project coverage is 95.76%. Comparing base (222b5e0) to head (de2fb48). :warning: Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
desc/external/__init__.py 0.00% 1 Missing :warning:
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1046      +/-   ##
==========================================
- Coverage   95.77%   95.76%   -0.01%     
==========================================
  Files         100      101       +1     
  Lines       27727    27728       +1     
==========================================
  Hits        26555    26555              
- Misses       1172     1173       +1     
Files with missing lines Coverage Δ
desc/objectives/_generic.py 99.41% <ø> (ø)
desc/external/__init__.py 0.00% <0.00%> (ø)

... and 2 files with indirect coverage changes

:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

codecov[bot] avatar Feb 17 '25 16:02 codecov[bot]

Memory benchmark result

|               Test Name                |      %Δ      |    Master (MB)     |      PR (MB)       |    Δ (MB)    |    Time PR (s)     |  Time Master (s)   |
| -------------------------------------- | ------------ | ------------------ | ------------------ | ------------ | ------------------ | ------------------ |
  test_objective_jac_w7x                 |    3.83 %    |     3.851e+03      |     3.999e+03      |    147.48    |       39.64        |       33.92        |
  test_proximal_jac_w7x_with_eq_update   |    0.12 %    |     6.610e+03      |     6.618e+03      |     8.12     |       155.74       |       156.95       |
  test_proximal_freeb_jac                |   -0.07 %    |     1.323e+04      |     1.322e+04      |    -9.36     |       79.79        |       81.10        |
  test_proximal_freeb_jac_blocked        |    0.95 %    |     7.587e+03      |     7.659e+03      |    72.24     |       71.77        |       72.97        |
  test_proximal_freeb_jac_batched        |   -0.23 %    |     7.602e+03      |     7.585e+03      |    -17.31    |       71.76        |       73.88        |
  test_proximal_jac_ripple               |   -1.29 %    |     3.434e+03      |     3.390e+03      |    -44.31    |       59.84        |       62.75        |
  test_proximal_jac_ripple_bounce1d      |    0.24 %    |     3.490e+03      |     3.498e+03      |     8.36     |       75.19        |       78.82        |
  test_eq_solve                          |    1.51 %    |     2.048e+03      |     2.079e+03      |    30.94     |       128.48       |       129.49       |

For the memory plots, go to the summary of Memory Benchmarks workflow and download the artifact.

github-actions[bot] avatar Jul 16 '25 19:07 github-actions[bot]

Should there be a test tto check if the interface works? Maybe have a dummy function instead of the actual TERPSICHORE solver?

This is basically what the ExternalObjective and its tests already do.

ddudt avatar Jul 18 '25 17:07 ddudt

Left some minor comments

dpanici avatar Sep 22 '25 19:09 dpanici