From beadac2a0cc9295956a27154c6fdcdd9666b2833 Mon Sep 17 00:00:00 2001 From: Philippe Virouleau <philippe.44@gmail.com> Date: Wed, 21 Nov 2018 15:19:38 +0100 Subject: [PATCH] Fix CI --- .gitlab-ci.yml | 2 +- CMakeLists.txt | 12 +++-------- runtime/openmp/CMakeLists.txt | 1 + runtime/openmp/codelets/codelet_map.c | 30 +++++++++++++++++++++++++++ timing/time_zpotrf_tile.c | 1 - timing/timing.c | 1 + 6 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 runtime/openmp/codelets/codelet_map.c diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ba98290c4..ca71fb23b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -102,7 +102,7 @@ build_openmp: - build - chameleon_openmp.log variables: - BUILD_OPTIONS: "-DCHAMELEON_SCHED_OPENMP=ON" + BUILD_OPTIONS: "-DCHAMELEON_SCHED_OPENMP=ON -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++" VERSION: openmp test_starpu_branches: diff --git a/CMakeLists.txt b/CMakeLists.txt index cf5f355a5..7b0d295a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -897,20 +897,14 @@ if( CHAMELEON_SCHED_QUARK ) endif() if( CHAMELEON_SCHED_OPENMP ) - - # create list of components in order to make a single call to find_package(starpu...) - set(OPENMP_COMPONENT_LIST "HWLOC") - if(CHAMELEON_USE_CUDA) - list(APPEND OPENMP_COMPONENT_LIST "CUDA") - endif() - - find_package(OpenMP COMPONENTS ${OPENMP_COMPONENT_LIST}) + find_package(OpenMP REQUIRED) if ( OPENMP_FOUND ) message("-- ${Blue}Add definition CHAMELEON_SCHED_OPENMP" " - Activate OpenMP in Chameleon${ColourReset}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_CXX_FLAGS}") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${OpenMP_Fortran_FLAGS}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_C_FLAGS}") # TODO: check for compiler support for "_Pragma" else ( OPENMP_FOUND ) message(FATAL_ERROR "Something went wrong when finding OpenMP") diff --git a/runtime/openmp/CMakeLists.txt b/runtime/openmp/CMakeLists.txt index 6c0ea5ab5..1a6c6da84 100644 --- a/runtime/openmp/CMakeLists.txt +++ b/runtime/openmp/CMakeLists.txt @@ -85,6 +85,7 @@ precisions_rules_py(RUNTIME_SRCS_GENERATED "${ZSRC}" set(RUNTIME_SRCS ${RUNTIME_COMMON} ${RUNTIME_SRCS_GENERATED} + ${CODELETS_SRC} ) # Force generation of sources diff --git a/runtime/openmp/codelets/codelet_map.c b/runtime/openmp/codelets/codelet_map.c new file mode 100644 index 000000000..57ee20db0 --- /dev/null +++ b/runtime/openmp/codelets/codelet_map.c @@ -0,0 +1,30 @@ +/** + * + * @file quark/codelet_map.c + * + * @copyright 2018-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + *** + * + * @brief Chameleon map Quark codelet + * + * @version 1.0.0 + * @author Mathieu Faverge + * @date 2018-09-24 + * + */ +#include "chameleon_openmp.h" + +void INSERT_TASK_map( const RUNTIME_option_t *options, + cham_uplo_t uplo, const CHAM_desc_t *A, int Am, int An, + cham_unary_operator_t operator, void *op_args ) +{ + char *ptrA = RTBLKADDR( A, char, Am, An ); + +#pragma omp task depend(inout: ptrA[0]) + { + operator( A, uplo, Am, An, ptrA, op_args ); + } + +} diff --git a/timing/time_zpotrf_tile.c b/timing/time_zpotrf_tile.c index 9707f44d6..67e957389 100644 --- a/timing/time_zpotrf_tile.c +++ b/timing/time_zpotrf_tile.c @@ -37,7 +37,6 @@ RunTest( int *iparam, double *dparam, chameleon_time_t *t_ ) PASTE_CODE_ALLOCATE_MATRIX_TILE( descB, check, CHAMELEON_Complex64_t, ChamComplexDouble, LDB, N, NRHS ); PASTE_CODE_ALLOCATE_MATRIX_TILE( descAC, check, CHAMELEON_Complex64_t, ChamComplexDouble, LDA, N, N ); PASTE_CODE_ALLOCATE_MATRIX_TILE( descX, check, CHAMELEON_Complex64_t, ChamComplexDouble, LDB, N, NRHS ); - CHAMELEON_zplghe_Tile( (double)N, ChamUpperLower, descA, 51 ); /* Initialize data and save A if check */ if ( check ) { diff --git a/timing/timing.c b/timing/timing.c index 51eddd529..0b6037948 100644 --- a/timing/timing.c +++ b/timing/timing.c @@ -728,6 +728,7 @@ CHAMELEON_Main(int *iparam, char *prog_name, int start, int stop, int step) { if (status != CHAMELEON_SUCCESS) return status; success += status; } + return success; } int -- GitLab