Skip to content

Commit a3eae78

Browse files
committed
jenkins: request 16 HT cores and run ctest -j8
The new Jenkins system lets runPod request cores via cpus: (HT cores; default 4 = the old 2-physical-core pod). Request cpus:16 = 8 physical cores and run ctest -j8: 2 concurrent 4-rank tests = 8 ranks, one per physical core, no HT oversubscription. Should roughly halve test wall-time (~800s -> ~400s).
1 parent 5c41c4f commit a3eae78

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

jenkins/Jenkinsfile

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,11 @@ def runBuild = { String platform, String prefix, List<String> envs ->
9898
try {
9999
/* Tests run 4 MPI ranks each (PROCESSORS property) with binding
100100
disabled (see envs), so ctest -j is a core budget. The Linux build
101-
pod's cpuset (3-4,99-100) is only 2 physical cores + their HT
102-
siblings, so -j2 matches the 2 real cores: integration tests
103-
(PROCESSORS=4 > 2) run one at a time across all 4 logical CPUs,
104-
and unit tests pack 2-up without oversubscribing. Total wall-time
105-
is bounded by the 2 physical cores regardless. macOS m1 nodes have
106-
~10 cores, so -j8 = 2 concurrent 4-rank tests. */
107-
def ctestJobs = macos ? 8 : 2
101+
pod requests cpus:16 (HT cores) = 8 physical cores, so -j8 runs 2
102+
concurrent 4-rank tests = 8 ranks, one per physical core, with no
103+
HT oversubscription. macOS m1 nodes have ~10 cores, so -j8 = 2
104+
concurrent 4-rank tests too. */
105+
def ctestJobs = 8
108106
sh "ctest --output-on-failure -j${ctestJobs}"
109107
} catch (exc) {
110108
archiveArtifacts(artifacts: 'Testing/Temporary/LastTest.log')
@@ -139,8 +137,10 @@ for (int i = 0; i < dockerPlatforms.size(); i++) {
139137
platforms[platform] = { ->
140138
stage(platform) {
141139
timeout(time: 2, unit: 'HOURS') {
140+
/* cpus: 16 HT cores = 8 physical; tests run at ctest -j8 (see runBuild). */
142141
runPod(tag: platform,
143142
devShm: true,
143+
cpus: 16,
144144
mounts: mounts) {
145145
runBuild(platform, installBase, [])
146146
}

0 commit comments

Comments
 (0)