Skip to content

test: shorten the slowest tests unless MPITEST_STRESS is set - #8047

Merged
hzhou merged 4 commits into
pmodels:mainfrom
hzhou-muse:pingping-stress
Oct 22, 2026
Merged

hzhou merged 4 commits into
pmodels:mainfrom
hzhou-muse:pingping-stress

Conversation

@hzhou-muse

@hzhou-muse hzhou-muse commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Pull Request Description

A few tests take a large share of a CI run's test time: in the ch4-ofi default cell, part/pingping and pt2pt/pingping take 224 s and 164 s of the 1916 s total, and connect_timeout and the taskmanager tests spend another ~160 s, mostly waiting on fixed timeouts or repeating the same work. part/pingping was also the only DTP test still built as a standalone program.

This PR makes the default runs of these tests short and keeps the previous load behind MPITEST_STRESS:

  • pingping caps the messages per datatype at 16 (part) and 256 (pt2pt), instead of 4096.
  • connect_timeout uses a 3 s default timeout and a 1 s info timeout, instead of 20 s and 5 s.
  • taskmanager and th_taskmanager spawn 16 tasks, instead of 128.

Additional changes:

  • Converts part/pingping to a test function that takes the DTP arguments through dtp_args, the same way as pt2pt/pingping.
  • Unifies MPIR_CVAR_CH3_COMM_CONNECT_TIMEOUT and MPIR_CVAR_CH4_COMM_CONNECT_TIMEOUT as MPIR_CVAR_COMM_CONNECT_TIMEOUT, with the old names kept as aliases, so connect_timeout can set it through MPI_T.

Local runs:

before after
part/pingping (24 instances) 140 s 35 s
pt2pt/pingping (24 instances) 127 s 85 s
connect_timeout_no_accept / _mismatch 25 s / 20 s 4 s / 3 s

Author Checklist

  • Provide Description
  • Commits Follow Good Practice
  • Passes All Tests
  • Contribution Agreement

🤖 Generated with Claude Code

@hzhou-muse hzhou-muse changed the title test: convert part/pingping and cap pingping messages unless MPITEST_STRESS is set test: shorten the slowest tests unless MPITEST_STRESS is set Oct 22, 2026
@hzhou-muse

Copy link
Copy Markdown
Contributor Author

test:mpich/ch3/most
test:mpich/ch4/most

@hzhou-muse

Copy link
Copy Markdown
Contributor Author

Test-time results on 30ad57d. These are summed per-test times from summary.junit.xml, default cell of mpich-review-ch4-ofi#5661. The baseline is mpich-review-ch4-ofi#5659 (PR 8042).

Tests Before After Change
part/pingping 224 s 49 s −78%
pt2pt/pingping 164 s 111 s −32%
errors/spawn/connect_timeout_* 91 s 15 s −83%
spawn/taskmanager 41 s 5 s −87%
threads/spawn/th_taskmanager 24 s 3 s −87%
All tests 1916 s 1556 s −19%

The default cell's wall time went from 47m to 42m. The one failure, coll/reduce with circ_graph in the asan cell of mpich-review-ch4-ucx#3968, is a segfault in code this PR doesn't touch.

part/pingping now runs in run_mpitests and takes the DTP arguments
through dtp_args, the same way as pt2pt/pingping. Previously it was the
only DTP test still built as a standalone program.

model: Opus 5.5
part/pingping sends at most 16 and pt2pt/pingping at most 256 messages
per datatype, and both go back to 4096 when MPITEST_STRESS is set.
Previously both always sent up to 4096 messages, which made them the two
most expensive tests in a CI run.

model: Opus 5.5
MPI_Comm_connect in both CH3 and CH4 now reads the default timeout from
MPIR_CVAR_COMM_CONNECT_TIMEOUT, declared once in the device-neutral spawn
code. The old MPIR_CVAR_CH3_COMM_CONNECT_TIMEOUT and
MPIR_CVAR_CH4_COMM_CONNECT_TIMEOUT stay as alternate environment names.
Previously each device declared its own copy of the same CVAR.

model: Opus 5.5
…s set

connect_timeout sets the default connect timeout to 3 seconds through
MPI_T and uses 1 second in the info argument, and taskmanager and
th_taskmanager spawn 16 tasks by default. With MPITEST_STRESS set they
use the previous 20 and 5 second timeouts and 128 tasks. Previously the
timeouts came from env= entries in the testlist, and these tests spent
about 160 seconds of a CI run waiting.

model: Opus 5.5
@hzhou
hzhou merged commit 0a8d424 into pmodels:main Oct 22, 2026
7 checks passed
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.

2 participants