@@ -431,8 +431,25 @@ jobs:
431431 run : bash .github/workflows/${{ matrix.cluster }}/build.sh ${{ matrix.device }} ${{ matrix.interface }}
432432
433433 - name : Build
434+ if : ${{ !(matrix.cluster == 'frontier_amd' && matrix.device == 'gpu') }}
434435 run : bash .github/scripts/submit-slurm-job.sh .github/workflows/common/build.sh ${{ matrix.device }} ${{ matrix.interface }} ${{ matrix.cluster }} ${{ matrix.shard }}
435436
437+ - name : Build (concurrent variants)
438+ if : matrix.cluster == 'frontier_amd' && matrix.device == 'gpu'
439+ # The suite needs a base and a chemistry simulation binary, and on amdflang
440+ # each device LTO link is ~1 h -- building both serially overruns the 2 h
441+ # walltime. They touch disjoint staging directories, so submit one SLURM job
442+ # per variant and wait on both (mirrors the case-optimization pre-build).
443+ run : |
444+ pids=""
445+ for v in base chem; do
446+ bash .github/scripts/submit-slurm-job.sh .github/workflows/common/build.sh ${{ matrix.device }} ${{ matrix.interface }} ${{ matrix.cluster }} "${{ matrix.shard }}" "$v" &
447+ pids="$pids $!"
448+ done
449+ rc=0
450+ for p in $pids; do wait "$p" || rc=1; done
451+ exit $rc
452+
436453 - name : Test
437454 run : bash .github/scripts/submit-slurm-job.sh .github/workflows/common/test.sh ${{ matrix.device }} ${{ matrix.interface }} ${{ matrix.cluster }} ${{ matrix.shard }}
438455
@@ -460,7 +477,9 @@ jobs:
460477 - name : Print Logs
461478 if : always()
462479 run : |
463- for f in ${{ steps.log.outputs.build_slug }}.out ${{ steps.log.outputs.test_slug }}.out; do
480+ # The build slug matches the plain log and, where the build is split per
481+ # variant, the build-...-base/-chem ones.
482+ for f in ${{ steps.log.outputs.build_slug }}*.out ${{ steps.log.outputs.test_slug }}.out; do
464483 [ -f "$f" ] && echo "=== $f ===" && cat "$f"
465484 done
466485
@@ -470,7 +489,7 @@ jobs:
470489 with :
471490 name : logs-${{ strategy.job-index }}-${{ steps.log.outputs.test_slug }}
472491 path : |
473- ${{ steps.log.outputs.build_slug }}.out
492+ ${{ steps.log.outputs.build_slug }}* .out
474493 ${{ steps.log.outputs.test_slug }}.out
475494
476495 case-optimization :
0 commit comments