diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1673251e5d379cf649a00f5bac85ac210bb02d06..1f1b4ac246c48a365c6c0cb09c5ae7aaf3169855 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,9 +14,6 @@ before_script: # - ls # - ls -l ci - mkdir -p badges/ - - apt-get update - - apt-get install -y cmake - - apt-get update -y badges: stage: init @@ -52,7 +49,7 @@ build-mpich-nofortran-gcc8: build-mpich-nofortran-gcc9: stage: build_mpich_gcc9 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc9_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc9-full tags: - public-docker when: always @@ -67,7 +64,7 @@ build-mpich-nofortran-gcc9: build-mpich-nofortran-gcc10: stage: build_mpich_gcc10 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc10_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc10-full tags: - public-docker when: always @@ -97,7 +94,7 @@ build-mpich-fortran-gcc8: build-mpich-fortran-gcc9: stage: build_mpich_gcc9 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc9_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc9-full tags: - public-docker when: always @@ -112,7 +109,7 @@ build-mpich-fortran-gcc9: build-mpich-fortran-gcc10: stage: build_mpich_gcc10 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc10_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc10-full tags: - public-docker when: always @@ -125,24 +122,24 @@ build-mpich-fortran-gcc10: - badges/ allow_failure: false -build-mpich-fortran-f08-gcc8: - stage: build_mpich_gcc8 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc8-full - tags: - - public-docker - when: always - script: - - ./ci/build_mpi_fortran_f08.sh - artifacts: - name: pages - when: always - paths: - - badges/ - allow_failure: true +#build-mpich-fortran-f08-gcc8: +# stage: build_mpich_gcc8 +# image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc8-full +# tags: +# - public-docker +# when: always +# script: +# - ./ci/build_mpi_fortran_f08.sh +# artifacts: +# name: pages +# when: always +# paths: +# - badges/ +# allow_failure: true build-mpich-fortran-f08-gcc9: stage: build_mpich_gcc9 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc9_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc9-full tags: - public-docker when: always @@ -157,7 +154,7 @@ build-mpich-fortran-f08-gcc9: build-mpich-fortran-f08-gcc10: stage: build_mpich_gcc10 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc10_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc10-full tags: - public-docker when: always @@ -187,7 +184,7 @@ build-mpich-voronoi-gcc8: build-mpich-voronoi-gcc9: stage: build_mpich_gcc9 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc9_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc9-full tags: - public-docker when: always @@ -202,7 +199,7 @@ build-mpich-voronoi-gcc9: build-mpich-voronoi-gcc10: stage: build_mpich_gcc10 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc10_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc10-full tags: - public-docker when: always @@ -217,7 +214,7 @@ build-mpich-voronoi-gcc10: build-openmpi-nofortran-gcc8: stage: build_openmpi_gcc8 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc8_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc8-full tags: - public-docker when: always @@ -232,7 +229,7 @@ build-openmpi-nofortran-gcc8: build-openmpi-nofortran-gcc9: stage: build_openmpi_gcc9 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc9_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc9-full tags: - public-docker when: always @@ -247,7 +244,7 @@ build-openmpi-nofortran-gcc9: build-openmpi-nofortran-gcc10: stage: build_openmpi_gcc10 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc10_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc10-full tags: - public-docker when: always @@ -262,7 +259,7 @@ build-openmpi-nofortran-gcc10: build-openmpi-fortran-gcc8: stage: build_openmpi_gcc8 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc8_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc8-full tags: - public-docker when: always @@ -277,7 +274,7 @@ build-openmpi-fortran-gcc8: build-openmpi-fortran-gcc9: stage: build_openmpi_gcc9 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc9_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc9-full tags: - public-docker when: always @@ -292,7 +289,7 @@ build-openmpi-fortran-gcc9: build-openmpi-fortran-gcc10: stage: build_openmpi_gcc10 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc10_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc10-full tags: - public-docker when: always @@ -307,7 +304,7 @@ build-openmpi-fortran-gcc10: build-openmpi-fortran-f08-gcc8: stage: build_openmpi_gcc8 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc8_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc8-full tags: - public-docker when: always @@ -322,7 +319,7 @@ build-openmpi-fortran-f08-gcc8: build-openmpi-fortran-f08-gcc9: stage: build_openmpi_gcc9 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc9_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc9-full tags: - public-docker when: always @@ -337,7 +334,7 @@ build-openmpi-fortran-f08-gcc9: build-openmpi-fortran-f08-gcc10: stage: build_openmpi_gcc10 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc10_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc10-full tags: - public-docker when: always @@ -352,7 +349,7 @@ build-openmpi-fortran-f08-gcc10: build-openmpi-voronoi-gcc8: stage: build_openmpi_gcc8 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc8_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc8-full tags: - public-docker when: always @@ -367,7 +364,7 @@ build-openmpi-voronoi-gcc8: build-openmpi-voronoi-gcc9: stage: build_openmpi_gcc9 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc9_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc9-full tags: - public-docker when: always @@ -382,7 +379,7 @@ build-openmpi-voronoi-gcc9: build-openmpi-voronoi-gcc10: stage: build_openmpi_gcc10 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc10_mpi + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc10-full tags: - public-docker when: always @@ -412,7 +409,7 @@ build-mpich-complete-gcc8: build-mpich-complete-gcc9: stage: build_mpich_gcc9 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc9_mpi-vtk-doxy2:latest + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc9-full:latest tags: - public-docker when: always @@ -427,7 +424,7 @@ build-mpich-complete-gcc9: build-mpich-complete-gcc10: stage: build_mpich_gcc10 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc10_mpi-vtk-doxy2:latest + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/mpich-gcc10-full:latest tags: - public-docker when: always @@ -442,7 +439,7 @@ build-mpich-complete-gcc10: build-openmpi-complete-gcc8: stage: build_openmpi_gcc8 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc8_mpi:latest + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc8-full:latest tags: - public-docker when: always @@ -457,7 +454,7 @@ build-openmpi-complete-gcc8: build-openmpi-complete-gcc9: stage: build_openmpi_gcc9 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc9_mpi:latest + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc9-full:latest tags: - public-docker when: always @@ -472,7 +469,7 @@ build-openmpi-complete-gcc9: build-openmpi-complete-gcc10: stage: build_openmpi_gcc10 - image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc10_mpi:latest + image: gitlab.version.fz-juelich.de:5555/slms/loadbalancing/openmpi-gcc10-full:latest tags: - public-docker when: always diff --git a/ci/build_mpi_complete.sh b/ci/build_mpi_complete.sh index 670a31ed711effefe7e74c9a19dc4fee337b4554..8f8bdeca616225b27e9cdb489d1df3fe5bb0ba71 100755 --- a/ci/build_mpi_complete.sh +++ b/ci/build_mpi_complete.sh @@ -16,7 +16,7 @@ if [[ $? == 0 ]]; then #CC=/usr/lib64/mpi/gcc/openmpi3/bin/mpicc CXX=/usr/lib64/mpi/gcc/openmpi3/bin/mpicxx FC=/usr/lib64/mpi/gcc/openmpi3/bin/mpif90 ${CMAKE} .. ${CMAKE} .. -DCM_ALL_FORTRAN=ON -DCM_ALL_USE_F08=ON -DCM_ALL_VORONOI=ON -DCM_ALL_VTK_OUTPUT=ON -DCM_ALL_TESTS=ON -DCM_ALL_AUTO_DOC=ON -DVTK_DIR=/usr/local/lib/cmake/vtk-7.1 make VERBOSE=1 - make test + ctest -L unit if [[ $? == 0 ]]; then create_badge "${BADGE_FILENAME}" build-mpi passed --color=green diff --git a/ci/build_mpi_complete_gcc8.sh b/ci/build_mpi_complete_gcc8.sh index a91b282085d9baf767156fe0bb5c3f6c4d81d545..9816e8ad05d1071d6a01793796897d0acb219d2f 100755 --- a/ci/build_mpi_complete_gcc8.sh +++ b/ci/build_mpi_complete_gcc8.sh @@ -16,7 +16,7 @@ if [[ $? == 0 ]]; then #CC=/usr/lib64/mpi/gcc/openmpi3/bin/mpicc CXX=/usr/lib64/mpi/gcc/openmpi3/bin/mpicxx FC=/usr/lib64/mpi/gcc/openmpi3/bin/mpif90 ${CMAKE} .. ${CMAKE} .. -DCM_ALL_FORTRAN=ON -DCM_ALL_VORONOI=ON -DCM_ALL_VTK_OUTPUT=ON -DCM_ALL_TESTS=ON -DCM_ALL_AUTO_DOC=ON -DVTK_DIR=/usr/local/lib/cmake/vtk-7.1 make VERBOSE=1 - make test + ctest -L unit if [[ $? == 0 ]]; then create_badge "${BADGE_FILENAME}" build-mpi passed --color=green diff --git a/tests/feature/CMakeLists.txt b/tests/feature/CMakeLists.txt index 7a510a560fe27da7c9a732a44006e2ac4687c3e9..acffb26bf1f526bdb0e2f1e9d4806457c2e311f9 100644 --- a/tests/feature/CMakeLists.txt +++ b/tests/feature/CMakeLists.txt @@ -9,6 +9,17 @@ target_compile_options(TestCompare PRIVATE -Wall -Wextra -g) # in CMake.. set(OUTPUTDIR .) set(KNOWNGOOD ${CMAKE_CURRENT_SOURCE_DIR}/knowngood) +# check if openmpi variable in mpi.h is set to find out, if +# MPI version is openmpi based +include(CheckCSourceCompiles) + check_c_source_compiles( + "include <mpi.h> + int main(void) { + #ifndef _OPENMPI + #error + #endif + return 0; + }" HAVE_OPENMPI) include(FindUnixCommands) foreach( FEATURE ALL_Staggered @@ -19,10 +30,17 @@ foreach( FEATURE ) set(OUTPUTFILE ${OUTPUTDIR}/out_${FEATURE}_${NP}.dat) set(GOODFILE ${KNOWNGOOD}/${FEATURE}_${NP}.dat) + if (HAVE_OPENMPI) + add_test( + NAME feature_${FEATURE}_${NP}_setup + COMMAND ${BASH} -c "mpirun --oversubscribe -np ${NP} $<TARGET_FILE:${FEATURE}> > ${OUTPUTFILE}; exit $?" + ) + else() add_test( NAME feature_${FEATURE}_${NP}_setup - COMMAND ${BASH} -c "mpirun --oversubscribe -np ${NP} $<TARGET_FILE:${FEATURE}> > ${OUTPUTFILE}; exit $?" + COMMAND ${BASH} -c "mpirun -n ${NP} $<TARGET_FILE:${FEATURE}> > ${OUTPUTFILE}; exit $?" ) + endif(HAVE_OPENMPI) # todo(s.schulz): This only works with OpenMPI, since the flags # are implementation dependant. set_tests_properties(feature_${FEATURE}_${NP}_setup PROPERTIES