CI: skip unaffected C++ test group on PRs and speed up slow C++ tests
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 32/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- cpp, github-actions, yaml
- Ambito
- ci-cd, testing-qa
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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?
- Lingua principale
- Cuda
- Stelle
- 1.1k
- Fork
- 249
- Merge medio
- 1g 15h
- PR unite (30g)
- 124
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NVIDIA/cuopt
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 22/100
NVIDIA/cuopt#2255 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 50/100
I maintainer di solito rispondono entro 1 giorno
-
[BUG] Out-of-bounds read when solving a DataModel with lower/upper constraint boundsForse già presa @ramakrishnap-nv l’ha presa 1 giorno fa. Apertabug
Difficoltà 3/5 Mezza giornata Idoneità per principianti 55/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di NVIDIA/cuopt
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JdeRobot/RoboticsInfrastructure#843 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
suitenumerique/find#206 ·
I maintainer di solito rispondono entro 2 giorni
-
area:ci priority:p1 type:chore
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
lucacasanova/homedeck#118 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
cython/cython#8110 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
`exec()` without `input` leaves stdin open, so a command that reads stdin blocks until the timeoutAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100