mmbell / samurai

Spline Analysis at Mesoscale Utilizing Radar and Aircraft Instrumentation
GNU General Public License v3.0
13 stars 16 forks source link

Revised calcHTranspose operator #68

Closed johnmauff closed 1 month ago

johnmauff commented 1 month ago

This PR represents a complete rewrite of the calcHTranspose operator. The previous implementation only stored the H matrix and accessed it using several indirect addressing arrays for the calcHTranspose operation. The previous storage format was non-standard and on large problems like the hurricane_4panel test case actually consumed more memory than just explicitly storing the H^t matrix. This PR changes the form of the calcHTranspose operator such that the H^t matrix is explicitly stored in a CSR format. This change enables both a reduction in memory usage for computationally large problems and execution time on the CPU. Due to reduction in memory usage, both the hurricane_4panel configuration can be run on 80GB H100 GPU's and the hurricane case can be run on a 40 GB A100 GPU without code changes. The version of the code has been tested on the following platforms and input configurations:

Derecho CPU

beltrami supercell hurricane typhoonChanthu2020 hurricane_4panel

Derecho A100 GPU

beltrami supercell hurricane typhoonChanthu2020

Casper H100 GPU

beltrami supercell hurricane typhoonChanthu2020 hurricane_4panel

johnmauff commented 1 month ago

@sjsprecious Thanks for your thorough review. I am fine with waiting for PR #66 to be committed first.

codecov[bot] commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 32.62%. Comparing base (12e3fc1) to head (1367543).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #68 +/- ## ======================================= Coverage 32.62% 32.62% ======================================= Files 51 51 Lines 16815 16815 ======================================= Hits 5486 5486 Misses 11329 11329 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.