-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into naming_cleanup
- Loading branch information
Showing
57 changed files
with
2,172 additions
and
771 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
# - name: Install Nvidia driver | ||
# if: ${{!matrix.disable_cuda}} | ||
# run: sudo apt install --no-install-recommends nvidia-driver-470 | ||
# | ||
# - name: Install Singularity | ||
# #when installed from this action, .SIF is always converted to sandbox (could be related to: https://githubmemory.com/repo/hpcng/singularity/issues/6065) | ||
# uses: eWaterCycle/setup-singularity@v6 | ||
# with: | ||
# singularity-version: 3.7.1 | ||
# #apt installation following https://sylabs.io/guides/3.0/user-guide/installation.html, but this is a too old version and uninstalls python-is-python3 | ||
## run: | | ||
## wget -O- http://neuro.debian.net/lists/focal.de-fzj.libre | sudo tee /etc/apt/sources.list.d/neurodebian.sources.list | ||
## sudo apt-key adv --recv-keys --keyserver hkps://keyserver.ubuntu.com 0xA5D32F012649A5A9 | ||
## sudo apt-get update | ||
## sudo apt-get install -y singularity-container | ||
# | ||
# - name: Cache UWLCM Singularity image | ||
# id: cache_singularity | ||
# uses: actions/cache@v2 | ||
# with: | ||
# path: '${{ github.workspace }}/singularity_images/uwlcm_ubuntu_20_04_cuda_11_4.sif' | ||
# key: 'sng_ubuntu_20_04_cuda_11_4' | ||
# | ||
# - name: Download UWLCM Singularity image | ||
# if: steps.cache_singularity.outputs.cache-hit != 'true' | ||
# run: | | ||
# mkdir '${{ github.workspace }}/singularity_images' | ||
# singularity pull --disable_cache --dir '${{ github.workspace }}/singularity_images' library://pdziekan/default/uwlcm:ubuntu_20_04_cuda_11_4 | ||
# # disable Singularity cache, we cache manually | ||
# | ||
# - name: Set friendly Singularity image name | ||
# uses: allenevans/[email protected] | ||
# with: | ||
# SI: '${{ github.workspace }}/singularity_images/uwlcm_ubuntu_20_04_cuda_11_4.sif' | ||
# | ||
# - name: Configure CMake | ||
# # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | ||
# # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | ||
# run: singularity exec $SI cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DLIBCLOUDPHXX_FORCE_MULTI_CUDA=True -DLIBCLOUDPHXX_DISABLE_CUDA=${{matrix.disable_cuda}} | ||
## | ||
# - name: Build libcloudph++ | ||
# # Build your program with the given configuration | ||
# run: VERBOSE=1 singularity exec $SI cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} -j${{matrix.threads}} | ||
|
||
|
||
# - name: Run Singularity shell | ||
# run: singularity shell '${{ github.workspace }}/singularity_images/uwlcm_ubuntu_20_04_cuda_11_1_1.0.sif' | ||
|
||
# - name: Download UWLCM Singularity container | ||
# run: wget https://github.com/igfuw/UWLCM/blob/0fc77ec68053936e36eea4b49f11b3dd2cb1a827/singularity/sng_ubuntu_20_04_cuda_11_1 | ||
|
||
# - name: Build UWLCM Singularity container | ||
# run: singularity build sng_ubuntu_20_04_cuda_11_1.sif sng_ubuntu_20_04_cuda_11_1 | ||
|
||
# TODO: cache cuda-toolki | ||
|
||
#- name: Install cuda-toolkit | ||
# id: cuda-toolkit | ||
# uses: Jimver/[email protected] | ||
# with: | ||
# linux-local-args: '["--toolkit"]' | ||
|
||
# - name: Install boost | ||
# uses: MarkusJx/[email protected] | ||
# id: install-boost | ||
# with: | ||
# # REQUIRED: Specify the required boost version | ||
# # A list of supported versions can be found here: | ||
# # https://github.com/actions/boost-versions/blob/main/versions-manifest.json | ||
# boost_version: 1.73.0 | ||
# # OPTIONAL: Specify a platform version | ||
# #platform_version: 18.04 | ||
# # OPTIONAL: Specify a custom install location | ||
# #boost_install_dir: /home/runner/some_directory | ||
|
||
# - name: Install Thrust | ||
# #run: sudo apt-get install libthrust-dev | ||
# run: | | ||
# git clone --depth=1 git://github.com/thrust/thrust.git --branch 1.9.10-1 | ||
# sudo ln -s `pwd`/thrust/thrust /usr/local/include/thrust | ||
|
||
# - name: Cache Boost | ||
# uses: actions/cache@v2 | ||
# with: | ||
# path: '${{ runner.workspace }}/boost_*.tar.gz' | ||
# key: 'boost-1.72.0' | ||
|
||
# - name: Build Boost | ||
# id: boost | ||
# # This won't re-download the archive unnecessarily: | ||
# uses: egor-tensin/build-boost@v1 | ||
# with: | ||
# version: 1.72.0 | ||
# libraries: date_time # in fact we don't need any compiled libs, only header libs, but when nothing is passed all libs are built | ||
# platform: x64 | ||
# configuration: RelWithDebInfo | ||
|
||
#- name: Install hdf5 (Linux) | ||
# run: sudo apt-get install libhdf5-dev | ||
# #if: matrix.os == 'ubuntu-latest' | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,292 @@ | ||
name: Test libcloudph++ | ||
|
||
on: | ||
push: | ||
branches: [ master ] | ||
pull_request: | ||
branches: [ master ] | ||
|
||
jobs: | ||
build_CUDA: | ||
runs-on: ubuntu-20.04 | ||
strategy: | ||
matrix: | ||
name: ["CUDA"] | ||
build_type: ["Debug", "RelWithDebInfoPortable"] | ||
include: | ||
- name: "CUDA" | ||
disable_cuda: false | ||
# not enough RAM to compile Debug CUDA on 4 threads | ||
threads: 1 | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: build libcloudph++ | ||
uses: igfuw/[email protected] | ||
with: | ||
disable_cuda: ${{matrix.disable_cuda}} | ||
build_type: ${{matrix.build_type}} | ||
threads: ${{matrix.threads}} | ||
path: ${{ github.workspace }} | ||
|
||
build: | ||
runs-on: ubuntu-20.04 | ||
strategy: | ||
matrix: | ||
name: ["no_CUDA"] | ||
build_type: ["Debug", "RelWithDebInfoPortable"] | ||
mpi: ["none", "mvapich2"] | ||
#mpi: ["none"] | ||
include: | ||
- name: "no_CUDA" | ||
disable_cuda: true | ||
threads: 4 | ||
- mpi: "none" | ||
tag: "ubuntu_20_04_cuda_11_4" | ||
cxx: "g++" | ||
- mpi: "mvapich2" | ||
tag: "ubuntu_20_04_cuda_11_4_mvapich2" | ||
cxx: "mpic++" | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: build libcloudph++ | ||
uses: igfuw/[email protected] | ||
with: | ||
disable_cuda: ${{matrix.disable_cuda}} | ||
build_type: ${{matrix.build_type}} | ||
threads: ${{matrix.threads}} | ||
path: ${{ github.workspace }} | ||
install_prefix: ${{ github.workspace }}/installed | ||
tag: ${{ matrix.tag }} | ||
cxx: ${{ matrix.cxx }} | ||
|
||
# tar build dir before upload as artifact to retain permission and case-sensitive names | ||
- name: Compress libcloudph++ build | ||
run: tar -cvf build.tar build | ||
|
||
- name: Upload libcloudph++ build | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: libcloud_build_${{matrix.build_type}}_mpi_${{matrix.mpi}}_tar | ||
path: build.tar | ||
|
||
# test jobs | ||
unit_test: | ||
needs: build | ||
runs-on: ubuntu-20.04 | ||
|
||
strategy: | ||
matrix: | ||
build_type: ["RelWithDebInfoPortable", "Debug"] | ||
mpi: ["none", "mvapich2"] | ||
include: | ||
- mpi: "none" | ||
tag: "ubuntu_20_04_cuda_11_4" | ||
- mpi: "mvapich2" | ||
tag: "ubuntu_20_04_cuda_11_4_mvapich2" | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Download libcloudph++ build | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: libcloud_build_${{matrix.build_type}}_mpi_${{matrix.mpi}}_tar | ||
|
||
- name: Decompress libcloudph++ build | ||
run: tar -xvf build.tar | ||
|
||
- name: load UWLCM Singularity image | ||
uses: igfuw/[email protected] | ||
with: | ||
path: ${{ github.workspace }}/singularity_images | ||
tag: ${{ matrix.tag }} | ||
|
||
- name: Run unit tests | ||
working-directory: ${{github.workspace}}/build | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: OMP_NUM_THREADS=4 singularity exec $SI ctest -C ${{matrix.build_type}} || cat Testing/Temporary/LastTest.log / # "/" intentional! (just to make cat exit with an error code) | ||
|
||
|
||
kinematic_2D_test: | ||
needs: build | ||
runs-on: ubuntu-20.04 | ||
|
||
strategy: | ||
matrix: | ||
build_type: ["RelWithDebInfoPortable"] | ||
mpi: ["none"] | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Download libcloudph++ build | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: libcloud_build_${{matrix.build_type}}_mpi_${{matrix.mpi}}_tar | ||
|
||
- name: Decompress libcloudph++ build | ||
run: tar -xvf build.tar | ||
|
||
# Debugging with a ssh session | ||
# - name: Setup tmate session | ||
# uses: mxschmitt/action-tmate@v3 | ||
|
||
- name: Install libcloudph++ | ||
run: sudo cmake --install build | ||
|
||
- name: checkout libmpdata++ repo | ||
uses: actions/checkout@v2 | ||
with: | ||
repository: igfuw/libmpdataxx | ||
path: libmpdataxx | ||
|
||
- name: Install libmpdata++ | ||
uses: igfuw/[email protected] | ||
with: | ||
build_type: ${{matrix.build_type}} | ||
threads: 4 | ||
path: ${{ github.workspace }}/libmpdataxx/libmpdata++ | ||
install_prefix: ${{ github.workspace }}/installed | ||
|
||
- name: Configure kinematic_2D CMake | ||
working-directory: ${{github.workspace}}/models/kinematic_2D | ||
run: singularity exec -B ${{ github.workspace }}/installed/ $SI cmake -B build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -Dlibcloudph++_DIR=${{ github.workspace }}/installed/share/libcloudph++ -Dlibmpdata++_DIR=${{ github.workspace }}/installed/share/libmpdata++ | ||
|
||
|
||
- name: Build kinematic_2D | ||
working-directory: ${{github.workspace}}/models/kinematic_2D | ||
run: VERBOSE=1 singularity exec -B ${{ github.workspace }}/installed/ $SI cmake --build build --config ${{matrix.build_type}} | ||
|
||
- name: Run kinematic_2D tests | ||
working-directory: ${{github.workspace}}/models/kinematic_2D/build | ||
run: | | ||
singularity exec -B ${{ github.workspace }}/installed/ $SI ctest -VV -R travis # compare icicle results against reference data (done for full simulation for bulk schemes and a couple of steps for lagrangian) | ||
cat Testing/Temporary/LastTest.log | ||
# Debugging with a ssh session on failure | ||
# - name: Setup tmate session | ||
# if: ${{ failure() }} | ||
# uses: mxschmitt/action-tmate@v3 | ||
|
||
|
||
parcel_test: | ||
needs: build | ||
# do after kinematic_2D_test, because otherwise we occasionally get "illegal instruction" errors, probably because libcloudphxx is installed simultaneously on the same runner at the same location by two different jobs (?) | ||
# needs: kinematic_2D_test | ||
runs-on: ubuntu-20.04 | ||
|
||
strategy: | ||
matrix: | ||
build_type: ["RelWithDebInfoPortable", "Debug"] | ||
mpi: ["none"] | ||
include: | ||
- build_type: "RelWithDebInfoPortable" | ||
long_tests: true | ||
debug_tests: false | ||
- build_type: "Debug" | ||
long_tests: false | ||
debug_tests: true | ||
|
||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Download libcloudph++ build | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: libcloud_build_${{matrix.build_type}}_mpi_${{matrix.mpi}}_tar | ||
|
||
- name: Decompress libcloudph++ build | ||
run: tar -xvf build.tar | ||
|
||
- name: load UWLCM Singularity image | ||
uses: igfuw/[email protected] | ||
with: | ||
path: ${{ github.workspace }}/singularity_images | ||
|
||
- name: Install libcloudph++ | ||
run: sudo cmake --install build | ||
|
||
- name: checkout parcel repo | ||
uses: actions/checkout@v2 | ||
with: | ||
repository: igfuw/parcel | ||
path: parcel | ||
|
||
- run: mkdir parcel/plots/outputs | ||
|
||
- name: run parcel unit_test | ||
working-directory: ${{github.workspace}}/parcel | ||
if: ${{matrix.long_tests}} | ||
run: PYTHONPATH=${{ github.workspace }}/installed/usr/lib/python3/dist-packages singularity exec -B${{ github.workspace }}/installed $SI python3 -m pytest -s -v unit_test | ||
#run: PYTHONPATH=${{ github.workspace }}/installed/usr/lib/python3/dist-packages singularity exec -B${{ github.workspace }}/installed,/usr/lib/python3/dist-packages/Gnuplot $SI python3 -m pytest -v unit_test | ||
|
||
- name: run parcel long_test | ||
working-directory: ${{github.workspace}}/parcel | ||
if: ${{matrix.long_tests}} | ||
run: PYTHONPATH=${{ github.workspace }}/installed/usr/lib/python3/dist-packages singularity exec -B${{ github.workspace }}/installed $SI python3 -m pytest -s -v long_test | ||
|
||
- name: run parcel unit_test_debug | ||
working-directory: ${{github.workspace}}/parcel | ||
if: ${{matrix.debug_tests}} | ||
run: PYTHONPATH=${{ github.workspace }}/installed/usr/lib/python3/dist-packages singularity exec -B${{ github.workspace }}/installed $SI python3 -m pytest -s -v unit_test_debug | ||
|
||
build_and_test_KiD-A: | ||
runs-on: ubuntu-20.04 | ||
strategy: | ||
matrix: | ||
name: ["no_CUDA"] | ||
build_type: ["RelWithDebInfoPortable"] | ||
mpi: ["none"] | ||
include: | ||
- name: "no_CUDA" | ||
disable_cuda: true | ||
threads: 4 | ||
|
||
steps: | ||
- name: Checkout libcloudphxx PR | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: merge with the KiD-A branch | ||
run: | | ||
git config --global user.email "[email protected]" | ||
git config --global user.name "Piotr Dziekan" | ||
git fetch origin | ||
git merge origin/kida-1d | ||
- run: grep diag_accr include/libcloudph++/lgrngn/particles.hpp | ||
|
||
- name: build libcloudph++ | ||
uses: igfuw/[email protected] | ||
with: | ||
disable_cuda: ${{matrix.disable_cuda}} | ||
build_type: ${{matrix.build_type}} | ||
threads: ${{matrix.threads}} | ||
path: ${{ github.workspace }} | ||
install_prefix: ${{ github.workspace }}/installed | ||
|
||
- name: Install libcloudph++ | ||
run: sudo cmake --install build | ||
|
||
- name: checkout KiD-libcloud repo | ||
uses: actions/checkout@v2 | ||
with: | ||
repository: igfuw/kid-libcloud | ||
path: kid-libcloud | ||
|
||
- name: run KiD LWP test | ||
working-directory: ${{github.workspace}}/kid-libcloud | ||
run: PYTHONPATH=${{ github.workspace }}/installed/usr/lib/python3/dist-packages singularity exec -B${{ github.workspace }}/installed $SI bash ./.travis_scripts/lwp_test.sh | ||
|
||
call_test_uwlcm_hlpr: | ||
uses: igfuw/UWLCM/.github/workflows/test_uwlcm_hlpr.yml@master | ||
with: | ||
UWLCM_sha: "master" | ||
libcloudphxx_sha: ${{ github.sha }} # merge PR SHA | ||
libmpdataxx_sha: "master" |
Oops, something went wrong.