Skip to content

[LinearSolvers] Add external lib for parallel Gauss-Seidel #23385

[LinearSolvers] Add external lib for parallel Gauss-Seidel

[LinearSolvers] Add external lib for parallel Gauss-Seidel #23385

Workflow file for this run

name: CI
on:
pull_request:
branches:
- master
workflow_dispatch:
# for cancelling redundant runs
concurrency:
group: ci-${{ github.head_ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
changed-files:
runs-on: ubuntu-latest
# see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-defining-outputs-for-a-job
outputs:
files: ${{ steps.get_files.outputs.changed_files }}
steps:
- uses: actions/checkout@v4
- id: get_files
run: |
echo "changed_files=$(python3 .github/get_files_changed_in_pr.py)" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }}
ubuntu:
runs-on: ubuntu-latest
needs: changed-files
strategy:
fail-fast: false
matrix:
build-type: [Custom, FullDebug]
compiler: [gcc, clang]
env:
KRATOS_BUILD_TYPE: ${{ matrix.build-type }}
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}}
KRATOS_CI_APPLICATIONS: ".github/workflows/ci_apps_linux.json"
KRATOS_CI_CORES: 4 # Current limits are 4 CPU and 16 GB Ram
OMPI_MCA_rmaps_base_oversubscribe: 1 # Allow oversubscription for MPI (needed for OpenMPI >= 3.0)
OMPI_MCA_btl_vader_single_copy_mechanism: none # Suppressing some annoying OpenMPI messages
container:
image: kratosmultiphysics/kratos-image-ci-ubuntu-22-04:latest
options: --user 1001
steps:
- uses: actions/checkout@v4
# - name: Installing dependencies
# => must be added to the docker container to avoid reinstalling it in every CI run
- name: CI configuration
shell: bash
run: python3 kratos/python_scripts/testing/ci_utilities.py
- name: Build
shell: bash
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
export CC=/usr/bin/gcc-12
export CXX=/usr/bin/g++-12
export KRATOS_CMAKE_OPTIONS_FLAGS="-DUSE_EIGEN_MKL=ON -DUSE_EIGEN_FEAST=ON -DTRILINOS_EXCLUDE_AMESOS2_SOLVER=OFF"
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations -Wignored-qualifiers"
elif [ ${{ matrix.compiler }} = clang ]; then
export CC=/usr/bin/clang-14
export CXX=/usr/bin/clang++-14
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations"
export KRATOS_CMAKE_OPTIONS_FLAGS="-DTRILINOS_EXCLUDE_AMESOS2_SOLVER=OFF"
else
echo 'Unsupported compiler: ${{ matrix.compiler }}'
exit 1
fi
source /opt/intel/oneapi/setvars.sh
cp .github/workflows/configure_core.sh configure.sh
python3 kratos/python_scripts/testing/ci_utilities.py
bash configure.sh
rm -r ${GITHUB_WORKSPACE}/build
- name: Build Dependencies
shell: bash
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
export CC=/usr/bin/gcc-12
export CXX=/usr/bin/g++-12
export KRATOS_CMAKE_OPTIONS_FLAGS="-DMMG_ROOT=/external_libraries/mmg/mmg_5_5_1/ -DPMMG_ROOT=/external_libraries/ParMmg_5ffc6ad -DINCLUDE_PMMG=ON"
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations -Wignored-qualifiers"
elif [ ${{ matrix.compiler }} = clang ]; then
export CC=/usr/bin/clang-14
export CXX=/usr/bin/clang++-14
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations"
export KRATOS_CMAKE_OPTIONS_FLAGS="-DMMG_ROOT=/external_libraries/mmg/mmg_5_5_1/"
else
echo 'Unsupported compiler: ${{ matrix.compiler }}'
exit 1
fi
source /opt/intel/oneapi/setvars.sh
cp .github/workflows/configure_dependencies.sh configure.sh
bash configure.sh
rm -r ${GITHUB_WORKSPACE}/build
- name: Build Core Apps
shell: bash
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
export CC=/usr/bin/gcc-12
export CXX=/usr/bin/g++-12
export KRATOS_CMAKE_OPTIONS_FLAGS=""
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations -Wignored-qualifiers"
elif [ ${{ matrix.compiler }} = clang ]; then
export CC=/usr/bin/clang-14
export CXX=/usr/bin/clang++-14
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations"
export KRATOS_CMAKE_OPTIONS_FLAGS=""
else
echo 'Unsupported compiler: ${{ matrix.compiler }}'
exit 1
fi
source /opt/intel/oneapi/setvars.sh
cp .github/workflows/configure_core_applications.sh configure.sh
bash configure.sh
rm -r ${GITHUB_WORKSPACE}/build
- name: Build Research Apps
shell: bash
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
export CC=/usr/bin/gcc-12
export CXX=/usr/bin/g++-12
export KRATOS_CMAKE_OPTIONS_FLAGS=""
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations -Wignored-qualifiers"
elif [ ${{ matrix.compiler }} = clang ]; then
export CC=/usr/bin/clang-14
export CXX=/usr/bin/clang++-14
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations"
export KRATOS_CMAKE_OPTIONS_FLAGS=""
else
echo 'Unsupported compiler: ${{ matrix.compiler }}'
exit 1
fi
source /opt/intel/oneapi/setvars.sh
cp .github/workflows/configure_research_applications.sh configure.sh
bash configure.sh
rm -r ${GITHUB_WORKSPACE}/build
- name: Running C++ tests
shell: bash
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
source /opt/intel/oneapi/setvars.sh
fi
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/testing/run_cpp_tests.py
- name: Running python tests
shell: bash
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
source /opt/intel/oneapi/setvars.sh
fi
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/testing/run_python_tests.py -v 2 -l nightly -c python3
- name: Prepare Parallel Env
shell: bash
run: |
echo "localhost slots=2" >> ${GITHUB_WORKSPACE}/ci_hostfile
- name: Running MPI C++ tests (2 Cores)
shell: bash
timeout-minutes : 10
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
source /opt/intel/oneapi/setvars.sh
fi
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -n 2
- name: Running MPI C++ tests (3 Cores)
shell: bash
timeout-minutes : 10
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
source /opt/intel/oneapi/setvars.sh
fi
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -n 3
- name: Running MPI C++ tests (4 Cores)
shell: bash
timeout-minutes : 10
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
source /opt/intel/oneapi/setvars.sh
fi
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -n 4
- name: Running Python MPI tests (2 Cores)
shell: bash
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
source /opt/intel/oneapi/setvars.sh
fi
export OMP_NUM_THREADS=1
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -l mpi_nightly -n 2
- name: Running Python MPI tests (3 Cores)
shell: bash
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
source /opt/intel/oneapi/setvars.sh
fi
export OMP_NUM_THREADS=1
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -l mpi_nightly -n 3
- name: Running Python MPI tests (4 Cores)
shell: bash
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
source /opt/intel/oneapi/setvars.sh
fi
export OMP_NUM_THREADS=1
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -l mpi_nightly -n 4
windows:
runs-on: windows-2019
needs: changed-files
env:
KRATOS_BUILD_TYPE: Custom
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}}
KRATOS_CI_APPLICATIONS: ".github/workflows/ci_apps_windows.json"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.8'
- name: CI configuration
shell: bash
run: python3 kratos/python_scripts/testing/ci_utilities.py
- name: Download boost
run: |
$url = "https://archives.boost.io/release/1.74.0/source/boost_1_74_0.tar.gz"
(New-Object System.Net.WebClient).DownloadFile($url, "$env:TEMP\boost.tar.gz")
7z.exe x "$env:TEMP\boost.tar.gz" -o"$env:TEMP\boostArchive" -y | Out-Null
7z.exe x "$env:TEMP\boostArchive" -o"$env:TEMP\boost" -y | Out-Null
- name: Installing dependencies
shell: cmd
run: |
pip install numpy
pip install sympy
pip install scipy
pip install h5py
pip install parameterized
- name: Build
shell: cmd
run: |
copy .\.github\workflows\configure.cmd
python kratos/python_scripts/testing/ci_utilities.py
configure.cmd
- name: Running C++ tests
shell: cmd
run: |
set PYTHONPATH=%PYTHONPATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%
set PATH=%PATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%/libs
python kratos/python_scripts/testing/run_cpp_tests.py
- name: Running python tests
shell: cmd
run: |
set PYTHONPATH=%PYTHONPATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%
set PATH=%PATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%/libs
python kratos/python_scripts/testing/run_python_tests.py -l nightly -c python
centos:
runs-on: ubuntu-latest
needs: changed-files
env:
KRATOS_BUILD_TYPE: Custom
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}}
KRATOS_CI_APPLICATIONS: ".github/workflows/ci_apps_centos.json"
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
container:
image: kratosmultiphysics/kratos-image-ci-centos7:latest
options: --user 1001
steps:
- uses: actions/checkout@v3
# - name: Installing dependencies
# => must be added to the docker container to avoid reinstalling it in every CI run
- name: CI configuration
shell: bash
run: python3.8 kratos/python_scripts/testing/ci_utilities.py
- name: Build
run: |
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations -Wignored-qualifiers"
cp .github/workflows/centos_configure.sh centos_configure.sh
bash centos_configure.sh
- name: Running C++ tests
run: |
export PYTHONPATH=${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/bin/Custom/libs
python3.8 kratos/python_scripts/testing/run_cpp_tests.py
- name: Running python tests
run: |
export PYTHONPATH=${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/bin/Custom/libs
python3.8 kratos/python_scripts/testing/run_python_tests.py -l nightly -c python3.8
ubuntu-core-without-unity:
runs-on: ubuntu-latest
needs: changed-files
env:
KRATOS_BUILD_TYPE: Custom
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}}
KRATOS_CI_APPLICATIONS: "ONLY_CORE"
OMPI_MCA_rmaps_base_oversubscribe: 1 # Allow oversubscription for MPI (needed for OpenMPI >= 3.0)
container:
image: kratosmultiphysics/kratos-image-ci-ubuntu-22-04:latest
options: --user 1001
steps:
- uses: actions/checkout@v4
- name: CI configuration
shell: bash
run: python3 kratos/python_scripts/testing/ci_utilities.py
- name: Build
shell: bash
run: |
export CC=/usr/bin/clang-14
export CXX=/usr/bin/clang++-14
export KRATOS_SOURCE="${KRATOS_SOURCE:-${PWD}}"
export KRATOS_BUILD="${KRATOS_SOURCE}/build"
export KRATOS_APP_DIR="${KRATOS_SOURCE}/applications"
export PYTHON_EXECUTABLE="/usr/bin/python3"
export KRATOS_INSTALL_PYTHON_USING_LINKS=ON
add_app () {
export KRATOS_APPLICATIONS="${KRATOS_APPLICATIONS}$1;"
}
add_app ${KRATOS_APP_DIR}/LinearSolversApplication;
add_app ${KRATOS_APP_DIR}/MetisApplication;
add_app ${KRATOS_APP_DIR}/TrilinosApplication;
source /opt/intel/oneapi/setvars.sh
# Configure
cmake -H"${KRATOS_SOURCE}" -B"${KRATOS_BUILD}/${KRATOS_BUILD_TYPE}" \
-DUSE_MPI=ON \
-DTRILINOS_INCLUDE_DIR="/usr/include/trilinos" \
-DTRILINOS_LIBRARY_DIR="/usr/lib/x86_64-linux-gnu" \
-DTRILINOS_LIBRARY_PREFIX="trilinos_" \
-DKRATOS_USE_PCH=ON
# Build
# Please do not use more than 2 cores or it will produce an out of heap memory error
cmake --build "${KRATOS_BUILD}/${KRATOS_BUILD_TYPE}" --target install -- -j2
- name: Running C++ tests
shell: bash
run: |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_tests.py
- name: Running python tests
shell: bash
run: |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_tests.py -l nightly -c python3
- name: Running MPI C++ tests (2 Cores)
shell: bash
timeout-minutes : 10
run: |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 2
- name: Running MPI C++ tests (3 Cores)
shell: bash
timeout-minutes : 10
run: |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 3
- name: Running MPI C++ tests (4 Cores)
shell: bash
timeout-minutes : 10
run: |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 4
- name: Running Python MPI tests (2 Cores)
shell: bash
run: |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 2
- name: Running Python MPI tests (3 Cores)
shell: bash
run: |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 3
- name: Running Python MPI tests (4 Cores)
shell: bash
run: |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 4
windows-core-without-unity:
runs-on: windows-2019
needs: changed-files
env:
KRATOS_BUILD_TYPE: Custom
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}}
KRATOS_CI_APPLICATIONS: "ONLY_CORE"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.8'
- name: CI configuration
shell: bash
run: python3 kratos/python_scripts/testing/ci_utilities.py
- name: Download boost
run: |
$url = "https://archives.boost.io/release/1.74.0/source/boost_1_74_0.tar.gz"
(New-Object System.Net.WebClient).DownloadFile($url, "$env:TEMP\boost.tar.gz")
7z.exe x "$env:TEMP\boost.tar.gz" -o"$env:TEMP\boostArchive" -y | Out-Null
7z.exe x "$env:TEMP\boostArchive" -o"$env:TEMP\boost" -y | Out-Null
- name: Installing dependencies
shell: cmd
run: |
pip install numpy
pip install sympy
pip install scipy
- name: Build
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 || goto :error
set CC=cl.exe
set CXX=cl.exe
set KRATOS_SOURCE=%cd%
set KRATOS_BUILD=%cd%\build
set KRATOS_APP_DIR=applications
set KRATOS_APPLICATIONS=%KRATOS_APP_DIR%\LinearSolversApplication;
del /F /Q "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%\cmake_install.cmake"
del /F /Q "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%\CMakeCache.txt"
del /F /Q "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%\CMakeFiles"
cmake ^
-G"Visual Studio 16 2019" ^
-H"%KRATOS_SOURCE%" ^
-B"%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%" ^
-DBOOST_ROOT="%TEMP%\boost" ^
-DCMAKE_CXX_FLAGS="/Od /we4661 /we4804 /WX /wd4996" ^
-DKRATOS_USE_PCH=ON ^
-DFORCE_LOCAL_ZLIB_COMPILATION=ON || goto :error
cmake --build "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%" --target all_build -- /property:configuration=%KRATOS_BUILD_TYPE% /p:Platform=x64 || goto :error
cmake --build "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%" --target install -- /property:configuration=%KRATOS_BUILD_TYPE% /p:Platform=x64 || goto :error
goto :EOF
:error
echo Failed with error #%errorlevel%.
exit /b %errorlevel%
- name: Running C++ tests
shell: cmd
run: |
set PYTHONPATH=%PYTHONPATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%
set PATH=%PATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%/libs
python kratos/python_scripts/testing/run_cpp_tests.py
- name: Running python tests
shell: cmd
run: |
set PYTHONPATH=%PYTHONPATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%
set PATH=%PATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%/libs
python kratos/python_scripts/testing/run_python_tests.py -l nightly -c python
ubuntu-intel-legacy:
runs-on: ubuntu-latest
env:
KRATOS_BUILD_TYPE: Custom
OMPI_MCA_rmaps_base_oversubscribe: 1 # Allow oversubscription for MPI (needed for OpenMPI >= 3.0)
OMPI_MCA_btl_vader_single_copy_mechanism: none # suppressing some annoying OpenMPI messages
OMPI_ALLOW_RUN_AS_ROOT: 1 # required since for now running as root
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 # required since for now running as root
container:
image: kratosmultiphysics/kratos-image-ci-ubuntu-22-04:latest
# options: --user 1001 # must run as root to install the intel compiler
steps:
- uses: actions/checkout@v4
# - name: Installing dependencies
# => must be added to the docker container to avoid reinstalling it in every CI run
- name: Install intel compiler
shell: bash
run: sudo apt-get install -y --no-install-recommends intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
- name: Build
shell: bash
run: |
export CC=icc
export CXX=icpc
source /opt/intel/oneapi/setvars.sh
cp .github/workflows/intel_configure.sh configure.sh
bash configure.sh
- name: Running C++ tests
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_tests.py
- name: Running python tests
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_tests.py -l nightly -c python3
- name: Running MPI C++ tests (2 Cores)
shell: bash
timeout-minutes : 10
run: |
export PYTHONPATH=
export LD_LIBRARY_PATH=
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 2
- name: Running MPI C++ tests (3 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 3
- name: Running MPI C++ tests (4 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 4
- name: Running Python MPI tests (2 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 2
- name: Running Python MPI tests (3 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 3
- name: Running Python MPI tests (4 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 4
ubuntu-intel:
runs-on: ubuntu-latest
needs: changed-files
env:
KRATOS_BUILD_TYPE: Custom
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}}
KRATOS_CI_APPLICATIONS: ".github/workflows/ci_apps_intel.json"
OMPI_MCA_rmaps_base_oversubscribe: 1 # Allow oversubscription for MPI (needed for OpenMPI >= 3.0)
OMPI_MCA_btl_vader_single_copy_mechanism: none # suppressing some annoying OpenMPI messages
container:
image: kratosmultiphysics/kratos-image-ci-ubuntu-22-04:latest
options: --user 1001
steps:
- uses: actions/checkout@v4
# - name: Installing dependencies
# => must be added to the docker container to avoid reinstalling it in every CI run
- name: CI configuration
shell: bash
run: python3 kratos/python_scripts/testing/ci_utilities.py
- name: Build
shell: bash
run: |
export CC=icx
export CXX=icpx
source /opt/intel/oneapi/setvars.sh
cp .github/workflows/intel_configure.sh configure.sh
bash configure.sh
- name: Running C++ tests
shell: bash
continue-on-error: true # TODO segfaults in cpp-tests
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_tests.py
- name: Running python tests
shell: bash
continue-on-error: true # TODO segfaults in cpp-tests
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_tests.py -l nightly -c python3
- name: Running MPI C++ tests (2 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 2
- name: Running MPI C++ tests (3 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 3
- name: Running MPI C++ tests (4 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 4
- name: Running Python MPI tests (2 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export OMP_NUM_THREADS=1
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 2
- name: Running Python MPI tests (3 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export OMP_NUM_THREADS=1
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 3
- name: Running Python MPI tests (4 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export OMP_NUM_THREADS=1
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 4