diff --git a/.gitlab-ci-env.sh b/.gitlab-ci-env.sh index 480da8a0939c5b45f50639a121132bc44c05e249..7ad89a4e20f49c49179e84d600b661481dd2dbae 100755 --- a/.gitlab-ci-env.sh +++ b/.gitlab-ci-env.sh @@ -12,6 +12,7 @@ export PATH=/builds/sonar/sonar-scanner-2.9.0.670/bin:$PATH export QUARK_DIR=/builds/install/quark export PARSEC_DIR=/builds/install/parsec export STARPU_DIR=/builds/install/starpu +export STARPU_SILENT=1 if [ "$1" == "simu" ]; then export STARPU_DIR=/builds/install/starpu-simgrid diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 85f2145e48718de2b32039f3d7be6d826fea4986..a6fa958b65b8d4cf5028bff528f4f7291863a139 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,109 +6,142 @@ stages: - analysis - doc +before_script: + - git submodule update --init --recursive + - source .gitlab-ci-env.sh + - mkdir -p build + build_starpu_cuda_mpi: stage: build artifacts: - name: starpu_cuda_mpi_build + name: build_starpu_cuda_mpi expire_in: 48 hours paths: - build - chameleon-build-starpu.log script: - - source .gitlab-ci-env.sh - - git submodule update --init --recursive - - mkdir -p build - - cd build - - cmake .. -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON -DCMAKE_INSTALL_PREFIX=${PWD}/install -DCMAKE_VERBOSE_MAKEFILE=ON -DMORSE_ENABLE_WARNING=ON -DMORSE_ENABLE_COVERAGE=ON - - make -j5 | tee ../chameleon-build-starpu.log - - make install | tee -a ../chameleon-build-starpu.log && rm install/ -r + - (cd build && + cmake -C ../cmake_modules/gitlab-ci-initial-cache.cmake .. + -DCHAMELEON_USE_CUDA=ON + -DCHAMELEON_USE_MPI=ON && + ctest --no-compress-output -V -j 5 + -D ExperimentalBuild + -D ExperimentalSubmit + | tee ../chameleon-build-starpu.log) + - (cd build && + make install | tee -a ../chameleon-build-starpu.log && + rm install/ -r) -build_starpu_simgrid: - stage: build +test_starpu_cuda_mpi: + stage: test + dependencies: + - build_starpu_cuda_mpi artifacts: - name: starpu_simgrid_build + name: test_starpu_cuda_mpi expire_in: 48 hours paths: - build - - chameleon-build-starpu-simgrid.log + - chameleon-build-starpu.log + - chameleon_starpu_mpi.lcov script: - - source .gitlab-ci-env.sh simu - - git submodule update --init --recursive - - mkdir -p build - - cd build - - cmake .. -DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF -DCMAKE_INSTALL_PREFIX=${PWD}/install -DCMAKE_VERBOSE_MAKEFILE=ON -DMORSE_ENABLE_WARNING=ON -DMORSE_ENABLE_COVERAGE=ON - - make -j5 | tee ../chameleon-build-starpu-simgrid.log - - make install | tee -a ../chameleon-build-starpu-simgrid.log && rm install/ -r + - (cd build && + ctest --no-compress-output -V -j 5 + -R "test_shm_s|mpi_s" + -D ExperimentalTest + -D ExperimentalCoverage + -D ExperimentalSubmit + | tee -a ../chameleon-build-starpu.log) + - lcov --directory build --capture --output-file chameleon_starpu_mpi.lcov -build_quark: +build_starpu_simgrid: stage: build artifacts: - name: quark_build + name: build_starpu_simgrid expire_in: 48 hours paths: - build - - chameleon-build-quark.log - script: - - source .gitlab-ci-env.sh - - git submodule update --init --recursive - - mkdir -p build - - cd build - - cmake .. -DCMAKE_INSTALL_PREFIX=${PWD}/install -DCMAKE_VERBOSE_MAKEFILE=ON -DMORSE_ENABLE_WARNING=ON -DMORSE_ENABLE_COVERAGE=ON -DCHAMELEON_SCHED_QUARK=ON - - make -j5 | tee ../chameleon-build-quark.log - - make install | tee -a ../chameleon-build-quark.log && rm install/ -r - -test_starpu_mpi: - stage: test - dependencies: - - build_starpu_cuda_mpi - artifacts: - name: starpu_mpi_test - expire_in: 48 hours - paths: - - chameleon_starpu_mpi.lcov + - chameleon-build-starpu-simgrid.log script: - - source .gitlab-ci-env.sh - - git submodule update --init --recursive - - (cd build && STARPU_SILENT=1 ctest --no-compress-output -R test_shm_s || /usr/bin/true && ctest --no-compress-output -R mpi_s || /usr/bin/true) - - lcov --directory build --capture --output-file chameleon_starpu_mpi.lcov + - source .gitlab-ci-env.sh simu + - (cd build && + cmake -C ../cmake_modules/gitlab-ci-initial-cache.cmake .. + -DCHAMELEON_SIMULATION=ON + -DCHAMELEON_USE_CUDA=ON + -DCHAMELEON_USE_MPI=OFF && + ctest --no-compress-output -V -j 5 + -D ExperimentalBuild + -D ExperimentalSubmit + | tee ../chameleon-build-starpu-simgrid.log) + - (cd build && + make install | tee -a ../chameleon-build-starpu-simgrid.log && + rm install/ -r) test_starpu_simgrid: stage: test dependencies: - build_starpu_simgrid artifacts: - name: starpu_simgrid_test + name: test_starpu_simgrid expire_in: 48 hours paths: + - build + - chameleon-build-starpu-simgrid.log - chameleon_starpu_simgrid.lcov script: - source .gitlab-ci-env.sh simu - - git submodule update --init --recursive - - (cd build && STARPU_SILENT=1 ctest --no-compress-output -V || /usr/bin/true) + - (cd build && + ctest --no-compress-output -V -j 5 + -D ExperimentalTest + -D ExperimentalCoverage + -D ExperimentalSubmit + | tee -a ../chameleon-build-starpu-simgrid.log) - lcov --directory build --capture --output-file chameleon_starpu_simgrid.lcov +build_quark: + stage: build + artifacts: + name: build_quark + expire_in: 48 hours + paths: + - build + - chameleon-build-quark.log + script: + - (cd build && + cmake -C ../cmake_modules/gitlab-ci-initial-cache.cmake .. + -DCHAMELEON_SCHED_QUARK=ON && + ctest --no-compress-output -V -j 5 + -D ExperimentalBuild + -D ExperimentalSubmit + | tee ../chameleon-build-quark.log) + - (cd build && + make install | tee -a ../chameleon-build-quark.log && + rm install/ -r) + test_quark: stage: test dependencies: - build_quark artifacts: - name: quark_test + name: build_quark expire_in: 48 hours paths: + - build + - chameleon-build-quark.log - chameleon_quark.lcov script: - - source .gitlab-ci-env.sh - - git submodule update --init --recursive - - (cd build && ctest --no-compress-output -R test_shm_s) + - (cd build && + ctest --no-compress-output -V -j 5 + -R "test_shm_s" + -D ExperimentalTest + -D ExperimentalCoverage + -D ExperimentalSubmit + | tee -a ../chameleon-build-quark.log) - lcov --directory build --capture --output-file chameleon_quark.lcov sonar: stage: analysis dependencies: - - build_starpu_cuda_mpi - - build_starpu_simgrid - - build_quark - - test_starpu_mpi + - test_starpu_cuda_mpi - test_starpu_simgrid - test_quark artifacts: @@ -121,8 +154,11 @@ sonar: - chameleon-rats.xml - sonar.log script: - - source .gitlab-ci-env.sh - - lcov -a $PWD/chameleon_starpu_mpi.lcov -a $PWD/chameleon_starpu_simgrid.lcov -a $PWD/chameleon_quark.lcov -o $PWD/chameleon.lcov + - cat *.log > chameleon-build.log + - lcov -a $PWD/chameleon_starpu_mpi.lcov + -a $PWD/chameleon_starpu_simgrid.lcov + -a $PWD/chameleon_quark.lcov + -o $PWD/chameleon.lcov - lcov_cobertura.py chameleon.lcov --output chameleon-coverage.xml - ./tools/analysis.sh only: @@ -137,9 +173,6 @@ doc: - build/doc/doxygen - build/doc/orgmode script: - - source .gitlab-ci-env.sh - - git submodule update --init --recursive - - mkdir -p build - cd build - cmake .. -DCHAMELEON_ENABLE_DOC=ON - make doc -j5 diff --git a/CMakeLists.txt b/CMakeLists.txt index a7c90d043ac4f6ca2686f367b2bb56d90d5437ff..60b5f42031850b240cb457e584bad91db47ea3ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -721,11 +721,11 @@ if( CHAMELEON_SCHED_STARPU ) " - starpu_mpi_comm_rank() test fails in StarPU${ColourReset}") message("-- ${Red}Check in CMakeFiles/CMakeError.log to figure out why it fails${ColourReset}") endif() - check_function_exists(starpu_mpi_cached_receive STARPU_MPI_CACHED_RECEIVE) - if ( STARPU_MPI_CACHED_RECEIVE ) - set(HAVE_STARPU_MPI_CACHED_RECEIVE 1) - message("-- ${Blue}Add definition HAVE_STARPU_MPI_CACHED_RECEIVE${ColourReset}") - endif() + check_function_exists(starpu_mpi_cached_receive STARPU_MPI_CACHED_RECEIVE) + if ( STARPU_MPI_CACHED_RECEIVE ) + set(HAVE_STARPU_MPI_CACHED_RECEIVE 1) + message("-- ${Blue}Add definition HAVE_STARPU_MPI_CACHED_RECEIVE${ColourReset}") + endif() endif() if(HWLOC_FOUND AND HWLOC_LIBRARY_DIRS) # the RPATH to be used when installing diff --git a/CTestConfig.cmake b/CTestConfig.cmake index ddb6f3e0c1e6d7050496a35081ad4958f1b9c587..2b2d786a4c240f4d62d837f26cf01f2797184e09 100644 --- a/CTestConfig.cmake +++ b/CTestConfig.cmake @@ -9,8 +9,7 @@ set(CTEST_NIGHTLY_START_TIME "00:00:00 GMT") set(CTEST_DROP_METHOD "http") set(CTEST_DROP_SITE "cdash.inria.fr") -# Shouldn't we change that to Chameleon ? -set(CTEST_DROP_LOCATION "/CDash/submit.php?project=Morse-Magma") +set(CTEST_DROP_LOCATION "/CDash/submit.php?project=chameleon") set(CTEST_DROP_SITE_CDASH TRUE) #-------------------------------------------------------------------- @@ -21,40 +20,43 @@ set(CTEST_DROP_SITE_CDASH TRUE) # Start with the short system name, e.g. "Linux", "FreeBSD" or "Windows" if(NOT BUILDNAME) - set(BUILDNAME "${CMAKE_SYSTEM_NAME}") + set(BUILDNAME "${CMAKE_SYSTEM_NAME}") - # Add i386 or amd64 - if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(BUILDNAME "${BUILDNAME}-amd64") - else() - set(BUILDNAME "${BUILDNAME}-i386") - endif() + # Add i386 or amd64 + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(BUILDNAME "${BUILDNAME}-amd64") + else() + set(BUILDNAME "${BUILDNAME}-i386") + endif() - # Add compiler name - get_filename_component(CMAKE_C_COMPILER_NAME ${CMAKE_C_COMPILER} NAME) - set(BUILDNAME "${BUILDNAME}-${CMAKE_C_COMPILER_NAME}") + # Add compiler name + get_filename_component(CMAKE_C_COMPILER_NAME ${CMAKE_C_COMPILER} NAME) + set(BUILDNAME "${BUILDNAME}-${CMAKE_C_COMPILER_NAME}") - # Add the build type, e.g. "Debug, Release..." - if(CMAKE_BUILD_TYPE) - set(BUILDNAME "${BUILDNAME}-${CMAKE_BUILD_TYPE}") - endif(CMAKE_BUILD_TYPE) + # Add the build type, e.g. "Debug, Release..." + if(CMAKE_BUILD_TYPE) + set(BUILDNAME "${BUILDNAME}-${CMAKE_BUILD_TYPE}") + endif(CMAKE_BUILD_TYPE) - # Specific options of Chameleon - if(CHAMELEON_SCHED_QUARK) - set(BUILDNAME "${BUILDNAME}-Quark") - endif(CHAMELEON_SCHED_QUARK) + # Specific options of Chameleon + if(CHAMELEON_SCHED_QUARK) + set(BUILDNAME "${BUILDNAME}-Quark") + endif(CHAMELEON_SCHED_QUARK) - if(CHAMELEON_SCHED_STARPU) - set(BUILDNAME "${BUILDNAME}-StarPU") - endif(CHAMELEON_SCHED_STARPU) + if(CHAMELEON_SCHED_STARPU) + set(BUILDNAME "${BUILDNAME}-StarPU") + endif(CHAMELEON_SCHED_STARPU) - if(CHAMELEON_USE_MPI) - set(BUILDNAME "${BUILDNAME}-mpi") - endif(CHAMELEON_USE_MPI) + if(CHAMELEON_SIMULATION) + set(BUILDNAME "${BUILDNAME}-SimGrid") + endif(CHAMELEON_SIMULATION) - if(CHAMELEON_USE_CUDA) - set(BUILDNAME "${BUILDNAME}-cuda") - endif(CHAMELEON_USE_CUDA) + if(CHAMELEON_USE_MPI) + set(BUILDNAME "${BUILDNAME}-MPI") + endif(CHAMELEON_USE_MPI) -endif() + if(CHAMELEON_USE_CUDA) + set(BUILDNAME "${BUILDNAME}-CUDA") + endif(CHAMELEON_USE_CUDA) +endif() diff --git a/cmake_modules/gitlab-ci-initial-cache.cmake b/cmake_modules/gitlab-ci-initial-cache.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1b6cef645ab841fc1c16ad30d2cc99e3500c457d --- /dev/null +++ b/cmake_modules/gitlab-ci-initial-cache.cmake @@ -0,0 +1,6 @@ +set(CMAKE_INSTALL_PREFIX "$ENV{PWD}/install" CACHE PATH "") + +set(CMAKE_VERBOSE_MAKEFILE "ON" CACHE BOOL "") + +option(MORSE_ENABLE_WARNING "Enable warning messages" ON) +option(MORSE_ENABLE_COVERAGE "Enable flags for coverage test" ON) diff --git a/tools/analysis.sh b/tools/analysis.sh index 56ce4ceaf2cb38790f0e9ed2c31a87152af0ef86..f3864affc42509dffe84dfa2f2b5e911c6a21461 100755 --- a/tools/analysis.sh +++ b/tools/analysis.sh @@ -35,7 +35,7 @@ sonar.sourceEncoding=UTF-8 sonar.cxx.compiler.charset=UTF-8 sonar.cxx.compiler.parser=GCC sonar.cxx.compiler.regex=^(.*):(\\d+):\\d+: warning: (.*)\\[(.*)\\]$ -sonar.cxx.compiler.reportPath=chameleon-build-starpu-mpi.log, chameleon-build-starpu-cuda.log, chameleon-build-starpu-simgrid.log, chameleon-build-quark.log +sonar.cxx.compiler.reportPath=chameleon-build-starpu.log, chameleon-build-starpu-simgrid.log, chameleon-build-quark.log sonar.cxx.coverage.reportPath=chameleon-coverage.xml sonar.cxx.cppcheck.reportPath=chameleon-cppcheck.xml sonar.cxx.rats.reportPath=chameleon-rats.xml