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

Parallelize testing #723

Merged
merged 2 commits into from
Feb 24, 2024
Merged

Parallelize testing #723

merged 2 commits into from
Feb 24, 2024

Conversation

cottsay
Copy link
Member

@cottsay cottsay commented Sep 1, 2023

This change switches from sequential test execution to parallel test execution.

This is now possible because the colcon-ros-domain-id-coordinator has been enabled on ci.ros2.org, which assigns a different ROS_DOMAIN_ID value to each colcon task. This has historically been the main reason that we test sequentially due to ROS 2 tests stepping on each other.

Most of the remaining regressions caused by parallel testing are caused by system resource contention upsetting tests which make timing assumptions. Theoretically these tests could fail when simply run on slower systems or while another resource-intensive task is run on the host, so it is probably worth the effort to resolve those issues independent of the parallel testing effort.

To start with, I'd like to deploy this change only to the .*nightly.* jobs over the weekend and revert the change the following weekday to see what new issues shake out. After triage, I'll flip this to "ready" and we can consider merging and deploying it fully.

This change switches from sequential test execution to parallel test
execution.
@cottsay cottsay added the enhancement New feature or request label Sep 1, 2023
@cottsay cottsay self-assigned this Sep 1, 2023
@cottsay
Copy link
Member Author

cottsay commented Jan 12, 2024

Early results from this effort (a recap):

  • Regressions: minimal, mainly occurring in the *_repeated jobs.
  • Performance: Anywhere from a 30% to 50% reduction in build times depending on how lucky you get.

A recent job comparison, which shows a 37.5% reduced build time:

  • Sequential: Build Status
  • Parallel: Build Status

@cottsay cottsay marked this pull request as ready for review February 23, 2024 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants