SciTools / iris-esmf-regrid

A collection of structured and unstructured ESMF regridding schemes for Iris.
https://iris-esmf-regrid.readthedocs.io/en/latest
BSD 3-Clause "New" or "Revised" License
19 stars 17 forks source link

Add load/save benchmarks #132

Closed stephenworsley closed 2 years ago

stephenworsley commented 2 years ago

Add benchmarks for the functions esmf_regrid.experimental.io.save_redridder and esmf_regrid.experimental.io.l_roadedridder.

codecov[bot] commented 2 years ago

Codecov Report

Merging #132 (b4763b8) into unstructured_scheme (0484f41) will decrease coverage by 0.00%. The diff coverage is 100.00%.

Impacted file tree graph

@@                   Coverage Diff                   @@
##           unstructured_scheme     #132      +/-   ##
=======================================================
- Coverage                99.53%   99.53%   -0.01%     
=======================================================
  Files                       27       27              
  Lines                     1717     1715       -2     
=======================================================
- Hits                      1709     1707       -2     
  Misses                       8        8              
Impacted Files Coverage Δ
.../tests/unit/experimental/io/test_round_tripping.py 100.00% <100.00%> (ø)
...ntal/unstructured_scheme/test__mesh_to_MeshInfo.py 100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 0484f41...b4763b8. Read the comment docs.

stephenworsley commented 2 years ago

For the record, when the scalability benchmarks are run locally I get the following results:

[ 85.29%] ··· long.esmf_regridder.PrepareScalabilityGridToMesh.time_load                                                                        ok
[ 85.29%] ··· ============ ==========
               grid width            
              ------------ ----------
                   50       89.7±4ms 
                  100       98.3±7ms 
                  200       101±5ms  
                  400       119±5ms  
                  600       158±7ms  
                  800       192±10ms 
              ============ ==========

[ 88.24%] ··· long.esmf_regridder.PrepareScalabilityGridToMesh.time_prepare                                                                     ok
[ 88.24%] ··· ============ ============
               grid width              
              ------------ ------------
                   50        166±5ms   
                  100        593±30ms  
                  200       2.69±0.07s 
                  400       11.8±0.09s 
                  600       28.1±0.6s  
                  800       50.2±0.2s  
              ============ ============

[ 91.18%] ··· long.esmf_regridder.PrepareScalabilityGridToMesh.time_save                                                                        ok
[ 91.18%] ··· ============ ==========
               grid width            
              ------------ ----------
                   50       40.3±5ms 
                  100       45.1±5ms 
                  200       71.6±4ms 
                  400       140±4ms  
                  600       250±7ms  
                  800       447±10ms 
              ============ ==========

[ 94.12%] ··· long.esmf_regridder.PrepareScalabilityMeshToGrid.time_load                                                                        ok
[ 94.12%] ··· ============ ==========
               grid width            
              ------------ ----------
                   50       103±10ms 
                  100       102±10ms 
                  200       102±4ms  
                  400       122±8ms  
                  600       152±6ms  
                  800       212±10ms 
              ============ ==========

[ 97.06%] ··· long.esmf_regridder.PrepareScalabilityMeshToGrid.time_prepare                                                                     ok
[ 97.06%] ··· ============ ============
               grid width              
              ------------ ------------
                   50        217±10ms  
                  100        725±50ms  
                  200       3.14±0.2s  
                  400        14.4±1s   
                  600        30.7±1s   
                  800       1.06±0.01m 
              ============ ============

[100.00%] ··· long.esmf_regridder.PrepareScalabilityMeshToGrid.time_save                                                                        ok
[100.00%] ··· ============ ==========
               grid width            
              ------------ ----------
                   50       44.8±3ms 
                  100       56.9±4ms 
                  200       78.8±5ms 
                  400       160±10ms 
                  600       278±10ms 
                  800       484±30ms 
              ============ ==========

In the process, about 195MB of files are generated.