diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8897baaaefff4bc1ff72738f6bf0ced1cb03319e..a0a0318583a6d8bbcd2f37571c5611d402ce045e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,19 @@ starpu: - ctest -R test_shm_s - cmake .. -DCHAMELEON_USE_MPI=ON -DCMAKE_INSTALL_PREFIX=$PWD/install - make -j2 - - ctest -R mpi_s + - ctest -V -R mpi_s + +starpu-simgrid: + script: + - git submodule init + - git submodule update + - mkdir build + - cd build + - . $HOME/spack/share/spack/setup-env.sh + - spack load hwloc && spack load fxt && spack load simgrid && spack load starpu + - cmake .. -DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MAGMA=OFF -DCHAMELEON_USE_MPI=OFF + - make -j2 + - ctest -V quark: script: @@ -19,4 +31,4 @@ quark: - cd build - cmake .. -DCHAMELEON_SCHED_QUARK=ON - make -j2 - - ctest -R test_shm_s \ No newline at end of file + - ctest -V -R test_shm_s \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 574141293409522be8fc97b393f009d623c744fa..1d292a9084f0749f5f778cbbfa447ba4b957dd32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -559,7 +559,7 @@ else (NOT CHAMELEON_SIMULATION) " else set CHAMELEON_USE_CUDA=OFF. The same idea is applicable with MAGMA." "${ColourReset}") endif() - if(NOT CHAMELEON_USE_MAGMA) + if(NOT DEFINED CHAMELEON_USE_MAGMA) message(WARNING "${BoldBlue}" "In simulation mode CHAMELEON_USE_CUDA and CHAMELEON_USE_MAGMA should be set to" " ensure that the user is aware of the version to be used. If Chameleon's" @@ -1088,14 +1088,14 @@ if(_match_ifort) endif(_match_ifort) # Testing executables -if(CHAMELEON_ENABLE_EXAMPLE) +if(CHAMELEON_ENABLE_EXAMPLE AND NOT CHAMELEON_SIMULATION) add_subdirectory(example) -endif(CHAMELEON_ENABLE_EXAMPLE) +endif(CHAMELEON_ENABLE_EXAMPLE AND NOT CHAMELEON_SIMULATION) # Testing executables -if(CHAMELEON_ENABLE_TESTING) +if(CHAMELEON_ENABLE_TESTING AND NOT CHAMELEON_SIMULATION) add_subdirectory(testing) -endif(CHAMELEON_ENABLE_TESTING) +endif(CHAMELEON_ENABLE_TESTING AND NOT CHAMELEON_SIMULATION) # Timing executables if(CHAMELEON_ENABLE_TIMING) diff --git a/timing/CTestLists.cmake b/timing/CTestLists.cmake index 0a60675daed77bc25860128db9d357b8a39f26ae..9b1eaa0aa78244192fb7318c3673ab24b0ca80f2 100644 --- a/timing/CTestLists.cmake +++ b/timing/CTestLists.cmake @@ -2,60 +2,67 @@ # Check timing/ # -set(TEST_CMD_shm --n_range=500:2000:500 --nb=320 ) -set(TEST_CMD_shmgpu --n_range=500:2000:500 --nb=320 --gpus=1) -set(TEST_CMD_mpi --n_range=500:2000:500 --nb=320 --p=2) -set(TEST_CMD_mpigpu --n_range=500:2000:500 --nb=320 --p=2 --gpus=1) +set(TEST_CMD_shm --n_range=500:2000:500 --nb=320 ) +set(TEST_CMD_shmgpu --n_range=500:2000:500 --nb=320 --gpus=1) +set(TEST_CMD_mpi --n_range=500:2000:500 --nb=320 --p=2) +set(TEST_CMD_mpigpu --n_range=500:2000:500 --nb=320 --p=2 --gpus=1) set(MPI_CMD_shm ) set(MPI_CMD_shmgpu ) set(MPI_CMD_mpi mpirun -np 4) set(MPI_CMD_mpigpu mpirun -np 4) -set( TEST_CATEGORIES shm ) -if (CHAMELEON_USE_CUDA AND CUDA_FOUND) - set( TEST_CATEGORIES ${TEST_CATEGORIES} shmgpu ) +if (NOT CHAMELEON_SIMULATION) + set( TEST_CATEGORIES shm ) + if (CHAMELEON_USE_CUDA AND CUDA_FOUND) + set( TEST_CATEGORIES ${TEST_CATEGORIES} shmgpu ) + endif() +else() + set( TEST_CATEGORIES simushm ) + if (CHAMELEON_USE_CUDA AND CUDA_FOUND) + set( TEST_CATEGORIES ${TEST_CATEGORIES} simugpu ) + endif() endif() set(TESTLIST - gels - gemm - getrf_incpiv - getrf_nopiv - geqrf - gelqf - posv - potrf - potri - ) + gels + gemm + getrf_incpiv + getrf_nopiv + geqrf + gelqf + posv + potrf + potri + ) set(CHAMELEON_PRECISIONS_ZC "c;z") set(TESTLIST_ZC - sytrf - ) + sytrf + ) -foreach(cat ${TEST_CATEGORIES}) - foreach(prec ${RP_CHAMELEON_PRECISIONS}) - string(TOUPPER ${prec} PREC) +if (NOT CHAMELEON_SIMULATION) - if (CHAMELEON_PREC_${PREC}) - foreach(test ${TESTLIST}) - add_test(time_${cat}_${prec}${test} ${MPI_CMD_${cat}} ./time_${prec}${test}_tile ${TEST_CMD_${cat}} --check --warmup) - endforeach() - endif() + foreach(cat ${TEST_CATEGORIES}) + foreach(prec ${RP_CHAMELEON_PRECISIONS}) + string(TOUPPER ${prec} PREC) + if (CHAMELEON_PREC_${PREC}) + foreach(test ${TESTLIST}) + add_test(time_${cat}_${prec}${test} ${MPI_CMD_${cat}} ./time_${prec}${test}_tile ${TEST_CMD_${cat}} --check --warmup) + endforeach() + endif() endforeach() foreach(prec ${CHAMELEON_PRECISIONS_ZC}) - string(TOUPPER ${prec} PREC) - - if (CHAMELEON_PREC_${PREC}) - foreach(test ${TESTLIST_ZC}) - add_test(time_${cat}_${prec}${test} ${MPI_CMD_${cat}} ./time_${prec}${test}_tile ${TEST_CMD_${cat}} --check --warmup) - endforeach() - endif() + string(TOUPPER ${prec} PREC) + if (CHAMELEON_PREC_${PREC}) + foreach(test ${TESTLIST_ZC}) + add_test(time_${cat}_${prec}${test} ${MPI_CMD_${cat}} ./time_${prec}${test}_tile ${TEST_CMD_${cat}} --check --warmup) + endforeach() + endif() endforeach() -endforeach() + endforeach() -if (CHAMELEON_USE_MPI AND MPI_C_FOUND) + if (CHAMELEON_USE_MPI AND MPI_C_FOUND) set( TEST_CATEGORIES mpi ) set( TEST_CMD_mpi --p=2 --n_range=2000:2000:1 --nb==32) set( TEST_CMD_mpigpu --p=2 --n_range=2000:2000:1 --nb==32 --gpus=1) @@ -64,17 +71,36 @@ if (CHAMELEON_USE_MPI AND MPI_C_FOUND) # set( TEST_CATEGORIES ${TEST_CATEGORIES} mpigpu ) #endif() set(TESTLIST_MPI - potrf - ) + potrf + ) foreach(cat ${TEST_CATEGORIES}) - foreach(prec ${RP_CHAMELEON_PRECISIONS}) - string(TOUPPER ${prec} PREC) + foreach(prec ${RP_CHAMELEON_PRECISIONS}) + string(TOUPPER ${prec} PREC) - if (CHAMELEON_PREC_${PREC}) - foreach(test ${TESTLIST_MPI}) - add_test(time_${cat}_${prec}${test} ${MPI_CMD_${cat}} ./time_${prec}${test}_tile ${TEST_CMD_${cat}} --check --warmup) - endforeach() - endif() - endforeach() + if (CHAMELEON_PREC_${PREC}) + foreach(test ${TESTLIST_MPI}) + add_test(time_${cat}_${prec}${test} ${MPI_CMD_${cat}} ./time_${prec}${test}_tile ${TEST_CMD_${cat}} --check --warmup) + endforeach() + endif() + endforeach() endforeach() -endif() + endif() + +else (NOT CHAMELEON_SIMULATION) + + set(TEST_CMD_simushm --n_range=9600:9600:1 --nb=960 ) + set(TEST_CMD_simugpu --n_range=9600:9600:1 --nb=960 --gpus=1) + set(RP_CHAMELEON_PRECISIONS_SIMU "s;d") + foreach(cat ${TEST_CATEGORIES}) + foreach(prec ${RP_CHAMELEON_PRECISIONS_SIMU}) + string(TOUPPER ${prec} PREC) + if (CHAMELEON_PREC_${PREC}) + add_test(time_${cat}_${prec}potrf ${MPI_CMD_${cat}} ./time_${prec}potrf_tile ${TEST_CMD_${cat}}) + set_tests_properties(time_${cat}_${prec}potrf PROPERTIES + ENVIRONMENT "STARPU_HOME=${CMAKE_SOURCE_DIR}/simucore/perfmodels;STARPU_HOSTNAME=sirocco" + ) + endif() + endforeach() + endforeach() + +endif (NOT CHAMELEON_SIMULATION)