Feature/improve response matrix dumping issue #96

Merged
#293 · Created  · Last updated

Merged pull request

Merged in feature/improve_response_matrix_dumping_issue_96 (pull request #293)

426ea57·Author: ·Closed by: ·2020-11-23

Description

  • Add a default for the response_file variable

  • Bug fix for dump/read response with fields implicit and non-box simulations

  • Add function to return the response file name given key information

  • Make use of function to get response file name

  • Add timestep to the response matrix dump file name

  • Bug fix for dump response, ensure timing arrays are initialised

    Also switch to scientific notation for time output

  • Update dump_response to avoid adding timestep to file name twice.

  • Allow read_response routines to exit if expected file not found.

    If any response matrix file is not found then we revert to calculating all response matrices.

Work towards addressing proposed enhancements in issue #96

Still need to <s>port changes to fields_gf_local module and</s> do some more testing. Currently no tests as a part of the test suite use this functionality.

 

For a test case I got the following data

Case | Time Total | Time Init | Time re-init | Nsteps output | Average time per output | Number of resets Local-no dumps | 525 mins | 0.6 mins | 290 mins | 251 | 2.1 mins | 538 Implicit-no dumps | 1422 mins | 3.5 mins | 1189 mins | 251 | 5.7 mins | 338 Local dumps | 249 mins | 0.6 mins | 12 mins | 251 | 0.99 mins | 538 Implicit dumps | 255 mins | 3.5 mins | 21 mins | 251 | 1.02 mins | 338

for the two main field modules with and without the dump/read response matrix functionality active. The ratio of worst to best case run time is almost 6, indicating a substantial saving. As can be seen by the last column, this is a test case that changes the time step a lot more than we would usually expect. These changes were mostly oscillating between a couple of time steps, so we were able to reuse response matrices in the majority of cases when the feature was active. In the best case we only pay 12 minutes overall for changing the time step a lot which could mean we actually reduce the compute time required to reach a particular physical time (as we’re able to increase the time step more frequently as we don’t have a large cost to pay). This test case has nx = 64 , ny = 128 and ntheta = 16. It was electrostatic and I ran on 32 cores with nwrite = 100 (i.e. 25001 total time steps).

0 attachments

0 comments

Loading commits...