Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8315766: Parallelize gc/stress/TestStressIHOPMultiThread.java test #15710

Closed

Conversation

roy-soumadipta
Copy link
Contributor

@roy-soumadipta roy-soumadipta commented Sep 13, 2023

TestStressIHOPMultiThread takes about 10 minutes to run. This limits effective parallelism of tier4 testing on large machines. We can parallelize its @run configs to improve effective parallelism for tier4. With both fastdebug and release configuration runs, it has been found that the final testcase in the sequential run configuration takes the most amount of time. Because of that to parallel configurations were tried out, one with all 5 test cases parallelized and second with 3 sections of parallel runs: 1st with first 2 tests, 2nd with the next 2 tests and 3rd with the last test case. Below are the results in fast debug:

  • before : 974.87s user 108.92s system 172% cpu 10:27.46 total
  • after_full-parallelization : 796.79s user 88.73s system 343% cpu 4:17.51 total
  • after_partial-parallelization: 904.82s user 102.00s system 391% cpu 4:17.01 total

From the reults we can see that even though partial and full parallelization has similar total running time, the user and system times and considerably better with full parallelization with repeated runs.

Below are the results with release mode:

  • before : 1111.11s user 196.52s system 210% cpu 10:20.80 total
  • after_full-parallelization: 837.07s user 151.57s system 378% cpu 4:20.89 total

Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed (2 reviews required, with at least 1 Reviewer, 1 Author)

Issue

  • JDK-8315766: Parallelize gc/stress/TestStressIHOPMultiThread.java test (Enhancement - P4)

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/15710/head:pull/15710
$ git checkout pull/15710

Update a local copy of the PR:
$ git checkout pull/15710
$ git pull https://git.openjdk.org/jdk.git pull/15710/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 15710

View PR using the GUI difftool:
$ git pr show -t 15710

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/15710.diff

Webrev

Link to Webrev Comment

TestStressIHOPMultiThread takes about 10 minutes to run. This limits effective parallelism of tier4 testing on large machines. We can parallelize its `@run` configs to improve effective parallelism for tier4. With both fastdebug and release configuration runs, it has been found that the final testcase in the sequential run configuration takes the most amount of time. Because of that to parallel configurations were tried out, one with all 5 test cases parallelized and second with 3 sections of parallel runs: 1st with first 2 tests, 2nd with the next 2 tests and 3rd with the last test case. Below are the results in fast debug:
* before                       : **974.87s user 108.92s system 172% cpu 10:27.46 total**
* after_full-parallelization   : **796.79s user 88.73s system 343% cpu 4:17.51 total**
* after_partial-parallelization: **904.82s user 102.00s system 391% cpu 4:17.01 total**

From the reults we can see that even though partial and full parallelization has similar total running time, the user and system times and considerably better with full parallelization with repeated runs.

Below are the results with release mode:
* before                    : **1111.11s user 196.52s system 210% cpu 10:20.80 total**
* after_full-parallelization: **837.07s user 151.57s system 378% cpu 4:20.89 total**
@bridgekeeper
Copy link

bridgekeeper bot commented Sep 13, 2023

👋 Welcome back roy-soumadipta! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk openjdk bot added the rfr Pull request is ready for review label Sep 13, 2023
@openjdk
Copy link

openjdk bot commented Sep 13, 2023

@roy-soumadipta The following label will be automatically applied to this pull request:

  • hotspot-gc

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added the hotspot-gc hotspot-gc-dev@openjdk.org label Sep 13, 2023
@mlbridge
Copy link

mlbridge bot commented Sep 13, 2023

Webrevs

Copy link
Member

@shipilev shipilev left a comment

Choose a reason for hiding this comment

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

Looks okay to me. @tschatzl might want to take a look.

/reviewers 2

@openjdk
Copy link

openjdk bot commented Sep 13, 2023

@roy-soumadipta This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8315766: Parallelize gc/stress/TestStressIHOPMultiThread.java test

Reviewed-by: shade, tschatzl

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 110 new commits pushed to the master branch:

  • de9b971: 8315933: Serial: Remove empty Generation::ensure_parsability
  • b48dbf6: 8316181: Move the fast locking implementation out of the .ad files
  • 8f4dfc4: 8316164: Opensource JMenuBar manual test
  • 33c62e4: 8316154: Opensource JTextArea manual tests
  • 14408bc: 8315973: Remove unused fields from ThreadLocalRandom
  • 903b9e8: 8316199: Remove sun/tools/jstatd/TestJstatd* tests from problemlist for Windows.
  • 639ba13: 8316179: Use consistent naming for lightweight locking in MacroAssembler
  • 11d431b: 8316228: jcmd tests are broken by 8314828
  • eb37c7e: 8315971: ProblemList containers/docker/TestMemoryAwareness.java on linux-all
  • 23fab11: 8314828: Mark 3 jcmd command-line options test as vm.flagless
  • ... and 100 more: https://git.openjdk.org/jdk/compare/024133b089d911dcc3ea70dfdaa6b150b14a9eb4...master

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@shipilev, @tschatzl) but any other Committer may sponsor as well.

➡️ To flag this PR as ready for integration with the above commit message, type /integrate in a new comment. (Afterwards, your sponsor types /sponsor in a new comment to perform the integration).

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Sep 13, 2023
@openjdk
Copy link

openjdk bot commented Sep 13, 2023

@shipilev
The total number of required reviews for this PR (including the jcheck configuration and the last /reviewers command) is now set to 2 (with at least 1 Reviewer, 1 Author).

@openjdk openjdk bot removed the ready Pull request is ready to be integrated label Sep 13, 2023
Copy link
Contributor

@tschatzl tschatzl left a comment

Choose a reason for hiding this comment

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

Lgtm.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Sep 13, 2023
@roy-soumadipta
Copy link
Contributor Author

/integrate

@openjdk openjdk bot added the sponsor Pull request is ready to be sponsored label Sep 14, 2023
@openjdk
Copy link

openjdk bot commented Sep 14, 2023

@roy-soumadipta
Your change (at version f58243d) is now ready to be sponsored by a Committer.

@shipilev
Copy link
Member

/sponsor

@openjdk
Copy link

openjdk bot commented Sep 14, 2023

Going to push as commit edd454b.
Since your change was applied there have been 110 commits pushed to the master branch:

  • de9b971: 8315933: Serial: Remove empty Generation::ensure_parsability
  • b48dbf6: 8316181: Move the fast locking implementation out of the .ad files
  • 8f4dfc4: 8316164: Opensource JMenuBar manual test
  • 33c62e4: 8316154: Opensource JTextArea manual tests
  • 14408bc: 8315973: Remove unused fields from ThreadLocalRandom
  • 903b9e8: 8316199: Remove sun/tools/jstatd/TestJstatd* tests from problemlist for Windows.
  • 639ba13: 8316179: Use consistent naming for lightweight locking in MacroAssembler
  • 11d431b: 8316228: jcmd tests are broken by 8314828
  • eb37c7e: 8315971: ProblemList containers/docker/TestMemoryAwareness.java on linux-all
  • 23fab11: 8314828: Mark 3 jcmd command-line options test as vm.flagless
  • ... and 100 more: https://git.openjdk.org/jdk/compare/024133b089d911dcc3ea70dfdaa6b150b14a9eb4...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Sep 14, 2023
@openjdk openjdk bot closed this Sep 14, 2023
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review sponsor Pull request is ready to be sponsored labels Sep 14, 2023
@openjdk
Copy link

openjdk bot commented Sep 14, 2023

@shipilev @roy-soumadipta Pushed as commit edd454b.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

@roy-soumadipta roy-soumadipta deleted the TestStressIHOPMultiThread branch September 14, 2023 12:24
roy-soumadipta added a commit to roy-soumadipta/jdk11u-dev that referenced this pull request Sep 28, 2023
Backporting the fix for https://bugs.openjdk.org/browse/JDK-8315766 merged as part of openjdk/jdk#15710. https://github.com/openjdk/jdk/commit/edd454b502b9bacde55492820e52655bbac63b89.patch could be cleanly applied.

Below are the test results:
* before_release: **1535.51s user 72.40s system 257% cpu 10:24.79 total**
* after_release: **1655.73s user 74.16s system 1195% cpu 2:24.68 total**
* before_fastdebug: **1064.03s user 57.21s system 177% cpu 10:32.29 total**
* after_fastdebug: **1137.89s user 58.07s system 783% cpu 2:32.61 total**
roy-soumadipta added a commit to roy-soumadipta/jdk17u-dev that referenced this pull request Sep 28, 2023
Backporting the fix for https://bugs.openjdk.org/browse/JDK-8315766 merged as part of openjdk/jdk#15710. https://github.com/openjdk/jdk/commit/edd454b502b9bacde55492820e52655bbac63b89.patch could be cleanly applied.

Below are the test results:
* before_release: **1557.98s user 220.66s system 287% cpu 10:17.90 total**
* after_release: **1653.52s user 203.46s system 1340% cpu 2:18.54 total**
* before_fastdebug: **1045.98s user 114.93s system 182% cpu 10:35.68 total**
* after_fastdebug: **1082.15s user 111.88s system 795% cpu 2:30.11 total**
roy-soumadipta added a commit to roy-soumadipta/jdk21u that referenced this pull request Sep 28, 2023
Backporting the fix for https://bugs.openjdk.org/browse/JDK-8315766 merged as part of openjdk/jdk#15710. https://github.com/openjdk/jdk/commit/edd454b502b9bacde55492820e52655bbac63b89.patch could be cleanly applied.

Below are the test results:
* before_release: **1642.99s user 146.56s system 291% cpu 10:14.77 total**
* after_release: **1613.99s user 125.32s system 1323% cpu 2:11.44 total**
* before_fastdebug: **1214.26s user 54.36s system 200% cpu 10:34.09 total**
* after_fastdebug: **1246.25s user 57.25s system 889% cpu 2:26.55 total**
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hotspot-gc hotspot-gc-dev@openjdk.org integrated Pull request has been integrated
Development

Successfully merging this pull request may close these issues.

3 participants