diff --git a/include/chameleon.h b/include/chameleon.h index 49e9e4d06cf945c8c636a8717d5f44db5336dcea..e34925827c218b11af541393e4912deb599e7596 100644 --- a/include/chameleon.h +++ b/include/chameleon.h @@ -188,26 +188,33 @@ int CHAMELEON_Recursive_Desc_Create( CHAM_desc_t **descptr, void *mat, cham_flt * */ #if defined(CHAMELEON_SCHED_OPENMP) -#define CHAMELEON_Init(nworkers, ncudas)\ - __chameleon_init(nworkers, ncudas);\ - _Pragma("omp parallel")\ - _Pragma("omp master")\ +#define CHAMELEON_Init( _nworkers_, _ncudas_ ) \ + __chameleon_init( (_nworkers_), (_ncudas_) ); \ + _Pragma("omp parallel") \ + _Pragma("omp master") \ { -#define CHAMELEON_InitPar(nworkers, ncudas, nthreads_per_worker)\ - __chameleon_initpar(nworkers, ncudas, nthreads_per_worker);\ + +#define CHAMELEON_InitPar( _nworkers_, _ncudas_, _nthreads_per_worker_ ) \ + __chameleon_initpar( (_nworkers_), (_ncudas_), (_nthreads_per_worker_) ); \ _Pragma("omp parallel")\ _Pragma("omp master")\ { -#define CHAMELEON_Finalize()\ - }\ + +#define CHAMELEON_Finalize() \ + } \ __chameleon_finalize(); + #else -#define CHAMELEON_Init(nworkers, ncudas)\ - __chameleon_init(nworkers, ncudas); -#define CHAMELEON_InitPar(nworkers, ncudas, nthreads_per_worker)\ - __chameleon_initpar(nworkers, ncudas, nthreads_per_worker); -#define CHAMELEON_Finalize()\ - __chameleon_finalize(); + +#define CHAMELEON_Init( _nworkers_, _ncudas_ ) \ + __chameleon_init( (_nworkers_), (_ncudas_) ); + +#define CHAMELEON_InitPar( _nworkers_, _ncudas_, _nthreads_per_worker_ ) \ + __chameleon_initpar( (_nworkers_), (_ncudas_), (_nthreads_per_worker_) ); + +#define CHAMELEON_Finalize() \ + __chameleon_finalize(); + #endif END_C_DECLS diff --git a/runtime/openmp/CMakeLists.txt b/runtime/openmp/CMakeLists.txt index 1fd0207ad19fdcbd513820cbeb2b02d8ddeb65ff..0a2242ff79a962b8941c48f826e4b8317c30a6b4 100644 --- a/runtime/openmp/CMakeLists.txt +++ b/runtime/openmp/CMakeLists.txt @@ -129,7 +129,7 @@ target_include_directories(chameleon_openmp PRIVATE $<BUILD_INTERFACE:${CHAMELEON_SOURCE_DIR}/coreblas/include> $<BUILD_INTERFACE:${CHAMELEON_BINARY_DIR}/coreblas/include>) -target_link_libraries(chameleon_openmp PRIVATE OpenMP::OpenMP_C) +target_link_libraries(chameleon_openmp PUBLIC OpenMP::OpenMP_C) target_link_libraries(chameleon_openmp PRIVATE coreblas) target_link_libraries(chameleon_openmp PRIVATE MORSE::M) diff --git a/testing/chameleon_ztesting.c b/testing/chameleon_ztesting.c index 6673656658160fd962fd4aff02295bb5fbbb4620..7a47afc1b5c062d7a45a1cbee59403d12a4814cc 100644 --- a/testing/chameleon_ztesting.c +++ b/testing/chameleon_ztesting.c @@ -629,7 +629,7 @@ int main (int argc, char **argv) { if ( rc != CHAMELEON_SUCCESS ) { fprintf( stderr, "CHAMELEON_Init failed and returned %d.\n", rc ); - return EXIT_FAILURE; + goto end; } /* Set ncores to the right value */ @@ -656,7 +656,7 @@ int main (int argc, char **argv) { fprintf( stderr, "--forcegpu can't be enable without GPU (-g 0).\n" " Please specify a larger number of GPU or disable this option\n" ); - return EXIT_FAILURE; + goto end; } RUNTIME_zlocality_allrestrict( RUNTIME_CUDA ); } @@ -712,6 +712,8 @@ int main (int argc, char **argv) { } free( runlist ); + end: + ;/* OpenMP end */ CHAMELEON_Finalize(); parameters_destroy();