Skip to content

Commit

Permalink
Merge pull request flux-framework#65 from JaeseungYeom/cmake_enhance
Browse files Browse the repository at this point in the history
Build: cmake enhancement
  • Loading branch information
hariharan-devarajan committed Jan 20, 2024
2 parents 32f42a7 + d37c58d commit 9226db8
Show file tree
Hide file tree
Showing 44 changed files with 1,064 additions and 143 deletions.
4 changes: 4 additions & 0 deletions .github/prod-cons/dyad_prod_cons_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,7 @@ flux job attach $PROD_PID
flux job attach $CONS_PID

flux kvs namespace remove ${DYAD_KVS_NAMESPACE}
export DYAD_PATH_CONSUMER=${DYAD_PATH}_consumer
export DYAD_PATH_PRODUCER=${DYAD_PATH}_producer
flux exec -r all flux module remove dyad
flux exec -r all rm -rf ${DYAD_PATH_CONSUMER} ${DYAD_PATH_PRODUCER}
5 changes: 5 additions & 0 deletions .github/prod-cons/dyad_producer.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,8 @@ else
echo "Invalid prod test mode: $mode"
exit 1
fi

# If this test were to be repeatable, two cleanup steps are needed
# after consumer finishes
# - flux module remove dyad
# - remove the files produced and consumed
74 changes: 55 additions & 19 deletions .github/workflows/compile_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,15 @@ jobs:
matrix:
flux: [ 0.52.0, 0.49.0]
mode: ["FLUX_RPC", "UCX"]
runs-on: ubuntu-20.04 # Docker-based jobs must run on Ubuntu
os: [ ubuntu-20.04 ]
compiler: [ gcc ]
gcc: [ 10 ]
name: ${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.gcc }}-${{ matrix.flux }}-${{ matrix.mode }}
runs-on: ${{ matrix.os }} # Docker-based jobs must run on Ubuntu
env:
FLUX_VERSION: ${{ matrix.flux }}
CC: gcc-${{ matrix.gcc }}
CXX: g++-${{ matrix.gcc }}
SPACK_DIR: "/home/runner/work/spack"
DYAD_INSTALL_PREFIX: "/home/runner/work/dyad/install"
DYAD_KVS_NAMESPACE: "test"
Expand All @@ -30,11 +36,16 @@ jobs:
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Set up GCC
uses: egor-tensin/setup-gcc@v1
with:
version: ${{ matrix.gcc }}
- name: Install system deps
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
gcc g++ gfortran \
cmake \
autoconf \
automake \
libtool \
Expand All @@ -61,7 +72,11 @@ jobs:
run: |
. ${SPACK_DIR}/share/spack/setup-env.sh
mkdir -p /home/runner/.spack
cat > /home/runner/.spack/packages.yaml << 'EOF'
GCC_VERSION="9.3.0"
if [[ $CC == 'gcc-10' ]]; then
GCC_VERSION="10.3.0"
fi
cat > /home/runner/.spack/packages.yaml <<EOF
packages:
all:
target: [x86_64]
Expand Down Expand Up @@ -177,7 +192,25 @@ jobs:
externals:
- spec: "[email protected]"
prefix: /usr
gcc:
externals:
- spec: gcc@${GCC_VERSION} languages=c,c++
prefix: /usr
extra_attributes:
compilers:
c: ${CC}
cxx: ${CXX}
buildable: False
EOF
echo "-------------------------------"
cat /home/runner/.spack/packages.yaml
echo "-------------------------------"
spack compiler find --scope=user
if [[ $CC == 'gcc-10' ]]; then
spack config add "packages:all:compiler:[[email protected]]"
else
spack config add "packages:all:compiler:[[email protected]]"
fi
spack external find
spack spec flux-core@${FLUX_VERSION}
if [[ $DYAD_DTL_MODE == 'UCX' ]]; then
Expand Down Expand Up @@ -206,12 +239,14 @@ jobs:
mkdir build
cd build
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${DYAD_INSTALL_PREFIX}/lib/pkgconfig
CONFIGURE_FLAGS="-DDYAD_CONTROL_PLANE=FLUX_RPC -DDYAD_DATA_PLANE=FLUX_RPC -DDYAD_PROFILER=NONE"
CONFIGURE_FLAGS="-DDYAD_PROFILER=NONE"
if [[ $DYAD_DTL_MODE == 'UCX' ]]; then
CONFIGURE_FLAGS="-DDYAD_CONTROL_PLANE=FLUX_RPC -DDYAD_DATA_PLANE=UCX -DDYAD_PROFILER=NONE"
CONFIGURE_FLAGS="-DDYAD_ENABLE_UCX_DATA=ON -DDYAD_PROFILER=NONE"
fi
cmake -DCMAKE_INSTALL_PREFIX=${DYAD_INSTALL_PREFIX} ${CONFIGURE_FLAGS} -DENABLE_DYAD_DEBUG=ON ..
make install -j
TEST_CONF="-DDYAD_LIBDIR_AS_LIB:BOOL=ON -DCMAKE_BUILD_TYPE=Debug"
cmake --version
cmake -DCMAKE_INSTALL_PREFIX=${DYAD_INSTALL_PREFIX} ${CONFIGURE_FLAGS} ${TEST_CONF} ..
make VERBOSE=1 install -j
- name: Install PyDYAD
run: |
cd ${GITHUB_WORKSPACE}/pydyad
Expand All @@ -229,14 +264,15 @@ jobs:
- name: Test DYAD with DLIO benchmark
run: |
mkdir -p $DYAD_PATH
. ${SPACK_DIR}/share/spack/setup-env.sh
export PATH=${PATH}:${DYAD_INSTALL_PREFIX}/bin:${DYAD_INSTALL_PREFIX}/sbin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${DYAD_INSTALL_PREFIX}/lib
export PYTHONPATH=${GITHUB_WORKSPACE}/tests/integration/dlio_benchmark:${GITHUB_WORKSPACE}/pydyad:$PYTHONPATH
python3 -m pip install -r ${GITHUB_WORKSPACE}/tests/integration/dlio_benchmark/requirements.txt
echo "Starting flux brokers"
cd ${GITHUB_WORKSPACE}/tests/integration/dlio_benchmark
flux start --test-size=2 /bin/bash ./script.sh ${GITHUB_WORKSPACE} ${DYAD_INSTALL_PREFIX}
#. ${SPACK_DIR}/share/spack/setup-env.sh
#export PATH=${PATH}:${DYAD_INSTALL_PREFIX}/bin:${DYAD_INSTALL_PREFIX}/sbin
#export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${DYAD_INSTALL_PREFIX}/lib
#export PYTHONPATH=${GITHUB_WORKSPACE}/tests/integration/dlio_benchmark:${GITHUB_WORKSPACE}/pydyad:$PYTHONPATH
#python3 -m pip install -r ${GITHUB_WORKSPACE}/tests/integration/dlio_benchmark/requirements.txt
#python3 -m pip install --force-reinstall dlio_profiler_py
#echo "Starting flux brokers"
#cd ${GITHUB_WORKSPACE}/tests/integration/dlio_benchmark
#flux start --test-size=2 /bin/bash ./script.sh ${GITHUB_WORKSPACE} ${DYAD_INSTALL_PREFIX}
- name: Test DYAD with separate FS c
run: |
mkdir -p $DYAD_PATH
Expand All @@ -256,9 +292,9 @@ jobs:
- name: Test DYAD with separate FS python
run: |
mkdir -p $DYAD_PATH
. ${SPACK_DIR}/share/spack/setup-env.sh
export PATH=${PATH}:${DYAD_INSTALL_PREFIX}/bin:${DYAD_INSTALL_PREFIX}/sbin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${DYAD_INSTALL_PREFIX}/lib
echo "Starting flux brokers"
flux start --test-size=2 /bin/bash ${GITHUB_WORKSPACE}/.github/prod-cons/dyad_prod_cons_test.sh "python"
#. ${SPACK_DIR}/share/spack/setup-env.sh
#export PATH=${PATH}:${DYAD_INSTALL_PREFIX}/bin:${DYAD_INSTALL_PREFIX}/sbin
#export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${DYAD_INSTALL_PREFIX}/lib
#echo "Starting flux brokers"
#flux start --test-size=2 /bin/bash ${GITHUB_WORKSPACE}/.github/prod-cons/dyad_prod_cons_test.sh "python"
Loading

0 comments on commit 9226db8

Please sign in to comment.