Skip to content

Conversation

sethlinden
Copy link
Contributor

Pull Request Testing

  • Describe testing already performed for these changes:

Extensive stress testing was done to gauge memory reduction and runtime implications for this change. Most of the testing is described in the issue:

#1899

  • Recommend testing for the reviewer(s) to perform, including the location of input datasets, and any additional instructions:

Run single or large stress tests as described here (the input data for the stress test is provided in the issue tracker):

#1899

  • Do these changes include sufficient documentation updates, ensuring that no errors or warnings exist in the build of the documentation? [Yes or No]

Yes. No functionality was changed so no documentation needs to be updated.

  • Do these changes include sufficient testing updates? [Yes or No]

See:

#1899

  • Will this PR result in changes to the test suite? [Yes or No]

    If yes, describe the new output and/or changes to the existing output:

No

  • Please complete this pull request review by [Fill in date].

Pull Request Checklist

See the METplus Workflow for details.

  • Complete the PR definition above.
  • Ensure the PR title matches the feature or bugfix branch name.
  • Define the PR metadata, as permissions allow.
    Select: Reviewer(s)
    Select: Organization level software support Project or Repository level development cycle Project
    Select: Milestone as the version that will include these changes
  • After submitting the PR, select Linked issues with the original issue number.
  • After the PR is approved, merge your changes. If permissions do not allow this, request that the reviewer do the merge.
  • Close the linked issue and delete your feature or bugfix branch from GitHub.

Seth Linden and others added 22 commits September 22, 2021 16:08
…r<double> e. Modifying functions accordingly. SL
…tions instead of arrays. In progress. SL
…Array::clear() instead of vector::clear().
…vector for storage (instead of array). In progress. SL
…tc_poly_array_alloc_inc instead of num_array_alloc_inc in tc_poly.cc.
…fter switching to STL::vector, it'll ALWAYS be an exact allocation. Previously, we always rounded up to the next allocation increment, but there's no allocation increment anymore. Updating the other code to removes calls to exact.
@sethlinden sethlinden added this to the MET 10.1.0 milestone Oct 14, 2021
@sethlinden sethlinden linked an issue Oct 14, 2021 that may be closed by this pull request
20 tasks
Copy link
Collaborator

@JohnHalleyGotway JohnHalleyGotway left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve of these changes.

Seth and I discussed them extensively and I reviewed the final code changes. I also ran a full regression test vs the develop branch and it flagged no diffs in:
kiowa:/d1/projects/MET/MET_pull_requests/met-10.1.0/met-10.1.0_beta4/pr1944_feature_1899/test_regression.log

Running an adapted version of regression_runtimes.ksh, I see that most runtimes are very similar, a couple have sped up, and a few have increased.

./regression_runtimes.ksh test_unit_develop.log test_unit_feature_1899_num_array.log | sort -n +8 > runtime_diffs.txt

runtime_diffs.txt

I manually re-ran the test for the largest increase, and do confirm a similar increase in runtime:

develop = 66.427  	feature_1899_num_array = 82.721  	DIFF =	16.294  	TEST = climatology_POINT_STAT_GFS_CLIMO_PREV_MONTH

Here's the output of "/usr/bin/time -v" for:
develop:
User time (seconds): 67.01
Maximum resident set size (kbytes): 220208
feature_1899_num_array:
User time (seconds): 81.96
Maximum resident set size (kbytes): 220228

I certainly wish we were NOT increasing the runtime. I did do some testing but could not find a simple solution.

@sethlinden sethlinden merged commit 2afeb79 into develop Oct 15, 2021
@sethlinden sethlinden deleted the feature_1899_num_array branch October 15, 2021 16:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Reimplement the NumArray class based on an STL template.
2 participants