usask-arg / sasktran2

The next generation SASKTRAN radiative transfer model
MIT License
1 stars 6 forks source link

Surface upgrades #93

Closed dannyzed closed 7 months ago

dannyzed commented 7 months ago

Work on upgrading the surface interface and internal calculation to be able to handle BRDFs

github-actions[bot] commented 7 months ago

Benchmark results from GitHub Actions

Lower numbers are good, higher numbers are bad. A ratio less than 1 means a speed up and greater than 1 means a slowdown. Green lines beginning with + are slowdowns (the PR is slower then master or master is slower than the previous release). Red lines beginning with - are speedups.

Significantly changed benchmark results (PR vs main)


All benchmarks:

| Change   | Before [ad0bd1bc]    | After [30558daf]    | Ratio   | Benchmark (Parameter)                                                    |
|----------|----------------------|---------------------|---------|--------------------------------------------------------------------------|
|          | 30.3±0.2ms           | 30.3±0.3ms          | 1.00    | do_large.DOLarge.time_do_large(100, False, 16, 1)                        |
|          | 249±2ms              | 248±2ms             | 1.00    | do_large.DOLarge.time_do_large(100, False, 16, 3)                        |
|          | 1.33±0.01ms          | 1.31±0.01ms         | 0.98    | do_large.DOLarge.time_do_large(100, False, 2, 1)                         |
|          | 1.91±0.01ms          | 1.89±0.01ms         | 0.99    | do_large.DOLarge.time_do_large(100, False, 2, 3)                         |
|          | 214±0.6ms            | 214±1ms             | 1.00    | do_large.DOLarge.time_do_large(100, False, 32, 1)                        |
|          | 2.24±0.03s           | 2.22±0.01s          | 0.99    | do_large.DOLarge.time_do_large(100, False, 32, 3)                        |
|          | 1.94±0.01ms          | 1.96±0.01ms         | 1.01    | do_large.DOLarge.time_do_large(100, False, 4, 1)                         |
|          | 5.72±0.05ms          | 5.66±0.04ms         | 0.99    | do_large.DOLarge.time_do_large(100, False, 4, 3)                         |
|          | 6.03±0.04ms          | 6.06±0.06ms         | 1.01    | do_large.DOLarge.time_do_large(100, False, 8, 1)                         |
|          | 35.3±0.2ms           | 35.3±0.3ms          | 1.00    | do_large.DOLarge.time_do_large(100, False, 8, 3)                         |
|          | 1.62±0.01ms          | 1.63±0.01ms         | 1.01    | do_large.DOLarge.time_do_large(2, False, 16, 1)                          |
|          | 5.10±0.03ms          | 5.10±0.01ms         | 1.00    | do_large.DOLarge.time_do_large(2, False, 16, 3)                          |
|          | 1.00±0.01ms          | 1.02±0.01ms         | 1.01    | do_large.DOLarge.time_do_large(2, False, 2, 1)                           |
|          | 1.02±0.01ms          | 1.04±0.01ms         | 1.01    | do_large.DOLarge.time_do_large(2, False, 2, 3)                           |
|          | 4.93±0.07ms          | 5.06±0.03ms         | 1.03    | do_large.DOLarge.time_do_large(2, False, 32, 1)                          |
|          | 34.0±0.1ms           | 34.2±0.1ms          | 1.01    | do_large.DOLarge.time_do_large(2, False, 32, 3)                          |
|          | 1.04±0.01ms          | 1.03±0.01ms         | 0.99    | do_large.DOLarge.time_do_large(2, False, 4, 1)                           |
|          | 1.14±0.01ms          | 1.15±0.01ms         | 1.01    | do_large.DOLarge.time_do_large(2, False, 4, 3)                           |
|          | 1.15±0.02ms          | 1.13±0.01ms         | 0.98    | do_large.DOLarge.time_do_large(2, False, 8, 1)                           |
|          | 1.68±0.03ms          | 1.69±0.02ms         | 1.01    | do_large.DOLarge.time_do_large(2, False, 8, 3)                           |
|          | 6.84±0.08ms          | 6.74±0.03ms         | 0.99    | do_large.DOLarge.time_do_large(20, False, 16, 1)                         |
|          | 50.0±0.3ms           | 49.7±0.3ms          | 1.00    | do_large.DOLarge.time_do_large(20, False, 16, 3)                         |
|          | 1.08±0.01ms          | 1.06±0ms            | 0.98    | do_large.DOLarge.time_do_large(20, False, 2, 1)                          |
|          | 1.18±0.01ms          | 1.17±0.01ms         | 0.99    | do_large.DOLarge.time_do_large(20, False, 2, 3)                          |
|          | 44.3±0.3ms           | 44.2±0.1ms          | 1.00    | do_large.DOLarge.time_do_large(20, False, 32, 1)                         |
|          | 415±2ms              | 410±2ms             | 0.99    | do_large.DOLarge.time_do_large(20, False, 32, 3)                         |
|          | 1.21±0.01ms          | 1.20±0.01ms         | 0.99    | do_large.DOLarge.time_do_large(20, False, 4, 1)                          |
|          | 2.01±0.01ms          | 2.00±0.01ms         | 1.00    | do_large.DOLarge.time_do_large(20, False, 4, 3)                          |
|          | 2.05±0.03ms          | 2.03±0.02ms         | 0.99    | do_large.DOLarge.time_do_large(20, False, 8, 1)                          |
|          | 7.47±0.02ms          | 7.43±0.01ms         | 1.00    | do_large.DOLarge.time_do_large(20, False, 8, 3)                          |
|          | 902±9ms              | 865±50ms            | 0.96    | limb_singlescatter.LimbSingleScatter.time_limb_single_scatter(16, False) |
|          | n/a                  | n/a                 | n/a     | limb_singlescatter.LimbSingleScatter.time_limb_single_scatter(16, True)  |
|          | 721±30ms             | 639±50ms            | ~0.89   | limb_singlescatter.LimbSingleScatter.time_limb_single_scatter(4, False)  |
|          | 4.21±0.1s            | 4.25±0.08s          | 1.01    | limb_singlescatter.LimbSingleScatter.time_limb_single_scatter(4, True)   |
| -        | 255±1ms              | 242±0.9ms           | 0.95    | twostream.TwoStreamNadirPlaneParallel.time_two_stream_nadir(100, False)  |
|          | 5.58±0.01s           | 5.64±0.01s          | 1.01    | twostream.TwoStreamNadirPlaneParallel.time_two_stream_nadir(100, True)   |
|          | 9.42±0.03ms          | 9.18±0.1ms          | 0.97    | twostream.TwoStreamNadirPlaneParallel.time_two_stream_nadir(2, False)    |
|          | 28.9±0.2ms           | 29.0±0.2ms          | 1.00    | twostream.TwoStreamNadirPlaneParallel.time_two_stream_nadir(2, True)     |
|          | 46.2±0.2ms           | 45.7±0.2ms          | 0.99    | twostream.TwoStreamNadirPlaneParallel.time_two_stream_nadir(20, False)   |
|          | 342±0.8ms            | 344±2ms             | 1.01    | twostream.TwoStreamNadirPlaneParallel.time_two_stream_nadir(20, True)    |

Full benchmark results can be found as artifacts in GitHub Actions (click on checks at the top of the PR).