CI: skip unaffected C++ test group on PRs and speed up slow C++ tests
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 32/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- cpp, github-actions, yaml
- Lĩnh vực
- ci-cd, testing-qa
Hướng nghiên cứu
Start with the changed-files job and the conda-cpp-tests-* jobs in pr.yaml, then the pr-builder and pr-test-summary jobs that must accept a skipped job. For the speed-up, the timings name C_API_TEST and DeterministicBBTestFixture.deterministic_reproducibility/1, plus NUMOPT_INTERNAL_TEST and ROUTING_INTERNAL_TEST. Done means the path-filtered skip works for both sides, shared code still runs both groups, and the heavy tests run faster on v100. The open questions on which tests belong on PRs need maintainer input first.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Follow-up to #2247 (split C++ tests into routing and mathopt jobs), raised by @bdice and @KyleFromNVIDIA in review.
1. Skip the unaffected group based on changed files (@bdice)
Run only the routing or only the mathopt C++ test job when a PR touches just that side.
- Add routing and mathopt path filters to the
changed-filesjob inpr.yaml, and gate eachconda-cpp-tests-*job with them. - Shared code (utilities, C API, common
cpp/srcandcpp/include) must still run both groups. pr-builder/pr-test-summarymust tolerate a skipped job.
2. Make the tests faster before relying on sharding (@KyleFromNVIDIA)
Per-binary timings from PR #2247 CI run 41485888506 (commit 5722b9a4). Four binaries make up about 90% of test time in each group.
| Binary | Group | h100 | v100 |
|---|---|---|---|
NUMOPT_INTERNAL_TEST |
mathopt | 542s | 1122s |
INCUMBENT_CALLBACK_TEST |
mathopt | 152s | 202s |
GRPC_INTEGRATION_TEST |
mathopt | 102s | 117s |
C_API_TEST |
mathopt | 64s | 232s |
ROUTING_INTERNAL_TEST |
routing | 659s | 717s |
ROUTING_UNIT_TEST |
routing | 155s | 155s |
Candidates to investigate:
C_API_TESTon v100:DeterministicBBTestFixture.deterministic_reproducibility/1takes 181s on v100 vs about 25s on h100, and is why v100 mathopt takes 36 min against 16-19 min elsewhere. Use a smaller instance or a lower work limit.- Duplicate coverage: deterministic B&B reproducibility runs in both
NUMOPT_INTERNAL_TEST(about 100s) andC_API_TEST. - Routing time limits:
OBJECTIVE_FUNCTION/0and/1take about 75s each, and the 14CVRPTW_Retailcases about 20s each. Check whether a lower search time limit keeps results stable. - Large LP/MIP sweeps:
mip_solve.run_small_tests(133s) andpdlp_class.run_sub_mittleman(106s). Consider a fast subset for PRs and the full set for nightly. GRPC_INTEGRATION_TEST:PathSelectionTests(42s) andErrorRecoveryTests(24s). Check for fixed sleeps or restarts.- Per-job setup: about 4.5 min of setup and dataset download per job, paid twice after the split.
Open questions
- Which of the heavy tests are required for PR coverage and which can move to nightly?
- Are the v100 slowdowns from the GPU, CPU count, or time-limit behaviour?
- Ngôn ngữ chính
- Cuda
- Star
- 1.1k
- Fork
- 249
- Merge trung bình
- 1 ngày 15 giờ
- Pull request đã merge (30 ngày)
- 124
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của NVIDIA/cuopt
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 22/100
NVIDIA/cuopt#2255 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 50/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG] Out-of-bounds read when solving a DataModel with lower/upper constraint boundsCó thể đã có người làm @ramakrishnap-nv đã nhận hôm nay. Đang mởbug
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 55/100
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
ci-cd desktop size:low telemetry-improvement telemetry-round-1
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
vfarcic/dot-agent-deck#2079 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
leanprover-community/lean4game#589 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Bug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
RazorConsole/RazorConsole#447 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
kyma-project/api-gateway#2933 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Dependabot compat-checks fails on every PRCó thể đã có người làm @dogancanbakir đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
HappyHackingSpace/witness#120 ·
Maintainer thường phản hồi trong vòng 1 ngày