Skip to content

Commit 32eab85

Browse files
committed
build: Optimize CI with test splitting and 32-core runner
Split 5 monolithic test targets into 139 individual test binaries for better ctest parallelism, and upgrade ubuntu-debug to 32-core runner with tuned build settings. Test target splits (CMakeLists.txt changes only): - velox_exec_test -> 76 individual tests - velox_exec_util_test -> 9 individual tests - velox_aggregates_test -> 43 individual tests - velox_cache_test -> 5 individual tests - velox_serializer_test -> 5 individual tests CI workflow changes (ubuntu-debug): - Runner: 16-core -> 32-core (128 GB RAM) - NUM_THREADS: 16 -> 32 - MAX_HIGH_MEM_JOBS: 4 -> 12 (128 GB / 6.8 GB per heavy TU) - MAX_LINK_JOBS: 2 -> 12 (shared links use ~1 GB each) - ctest: -j 8 -> -j 24 --timeout 900 - ulimit -n 65536 to prevent "Too many open files" Adapters job: add -DVELOX_BUILD_SHARED=ON for faster linking. Validated on 48-core test machine (throttled to 32 threads): - Build: 26m 34s (cold, no ccache) - Test: 17m 45s (631 tests, 625 passed) - Total: 44m 28s vs estimated ~70 min current CI BUILD_PLAN.md contains the full analysis and profiling data.
1 parent 24ac0df commit 32eab85

File tree

6 files changed

+818
-81
lines changed

6 files changed

+818
-81
lines changed

.github/workflows/linux-build-base.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ jobs:
156156
"-DVELOX_ENABLE_ABFS=ON"
157157
"-DVELOX_ENABLE_WAVE=ON"
158158
"-DVELOX_MONO_LIBRARY=ON"
159+
"-DVELOX_BUILD_SHARED=ON"
159160
)
160161
if [[ "${USE_CLANG}" = "true" ]]; then
161162
scripts/setup-centos9.sh install_clang15; export CC=/usr/bin/clang-15; export CXX=/usr/bin/clang++-15; CUDA_FLAGS="-ccbin /usr/lib64/llvm15/bin/clang++-15";
@@ -222,7 +223,7 @@ jobs:
222223
python ./scripts/checks/run-clang-tidy.py -p $BUILD_PATH --commit $RANGE $FILES
223224
224225
ubuntu-debug:
225-
runs-on: 16-core-ubuntu
226+
runs-on: 32-core-ubuntu
226227
# prevent errors when forks ff their main branch
227228
if: ${{ github.repository == 'facebookincubator/velox' }}
228229
name: Ubuntu debug with resolve_dependency
@@ -263,7 +264,7 @@ jobs:
263264
env:
264265
VELOX_DEPENDENCY_SOURCE: BUNDLED
265266
ICU_SOURCE: SYSTEM
266-
MAKEFLAGS: NUM_THREADS=16 MAX_HIGH_MEM_JOBS=4 MAX_LINK_JOBS=2
267+
MAKEFLAGS: NUM_THREADS=32 MAX_HIGH_MEM_JOBS=12 MAX_LINK_JOBS=12
267268
run: |
268269
EXTRA_CMAKE_FLAGS=(
269270
"-DCMAKE_LINK_LIBRARIES_STRATEGY=REORDER_FREELY"
@@ -297,7 +298,8 @@ jobs:
297298

298299
- name: Run Tests
299300
run: |
300-
cd _build/debug && ctest -j 8 --output-on-failure --no-tests=error
301+
ulimit -n 65536
302+
cd _build/debug && ctest -j 24 --timeout 900 --output-on-failure --no-tests=error
301303
302304
fedora-debug:
303305
runs-on: 16-core-ubuntu

0 commit comments

Comments
 (0)