diff --git a/CMakeLists.txt b/CMakeLists.txt index 28887656aa68da782b9490913c5c042a060a7962..33bce25ca86b4902ddce2f3ec160e7c17f88e7d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,6 +191,11 @@ if (NOT CHAMELEON_ENABLE_TRACING) endif() #option(CHAMELEON_USE_EZTRACE "Enable EZTRACE to build modules" OFF) +option(CHAMELEON_RUNTIME_SYNC "Enable synchronous task submission when available to debug the code without parallelism" OFF) +if (CHAMELEON_RUNTIME_SYNC) + message("-- ${BoldGreen}CHAMELEON_RUNTIME_SYNC is set to ON, turn it OFF to avoid synchronisation in the tasks submission${ColourReset}") +endif() + # Options to enable/disable testings and timings # ---------------------------------------------- option(CHAMELEON_ENABLE_DOC "Enable documentation build" OFF) @@ -912,7 +917,6 @@ if( CHAMELEON_SCHED_OPENMP ) else ( OPENMP_FOUND ) message(FATAL_ERROR "Something went wrong when finding OpenMP") endif ( OPENMP_FOUND ) - endif( CHAMELEON_SCHED_OPENMP ) # getopt diff --git a/hqr b/hqr index c05aef8974161f46281170232fbe604f3fe2a68d..a0ec4d899c07cadc860a92808294ec3599c3cf17 160000 --- a/hqr +++ b/hqr @@ -1 +1 @@ -Subproject commit c05aef8974161f46281170232fbe604f3fe2a68d +Subproject commit a0ec4d899c07cadc860a92808294ec3599c3cf17 diff --git a/include/chameleon/config.h.in b/include/chameleon/config.h.in index b3fbb7366306c3eabfd2d4e741fa637ecc006ca4..1596315d801e31ba664aa4eb8621cc5ef660a3af 100644 --- a/include/chameleon/config.h.in +++ b/include/chameleon/config.h.in @@ -29,6 +29,9 @@ #cmakedefine CHAMELEON_SCHED_STARPU #cmakedefine CHAMELEON_SCHED_OPENMP +/* Debug scheduling engine */ +#cmakedefine CHAMELEON_RUNTIME_SYNC + /* Communication engine */ #cmakedefine CHAMELEON_USE_MPI #cmakedefine CHAMELEON_USE_MIGRATE diff --git a/runtime/quark/include/chameleon_quark.h b/runtime/quark/include/chameleon_quark.h index 4cc04939c869f35d4b74ae03e6d88c39f01fa07b..03e0f50f54d66a6f252e990bdc6a82e174b7fbdb 100644 --- a/runtime/quark/include/chameleon_quark.h +++ b/runtime/quark/include/chameleon_quark.h @@ -20,12 +20,15 @@ #ifndef _chameleon_quark_h_ #define _chameleon_quark_h_ +#include "control/common.h" + #include <quark.h> +#if defined(CHAMELEON_RUNTIME_SYNC) +#define QUARk_Insert_Task QUARK_Execute_Task +#endif #include "coreblas.h" #include "core_blas_dag.h" -#include "control/common.h" - typedef struct quark_option_s { Quark_Task_Flags flags; Quark *quark; diff --git a/runtime/starpu/include/chameleon_starpu.h.in b/runtime/starpu/include/chameleon_starpu.h.in index a36fdc613c780ca867760d2bd43deb2fcbdc5f85..6cf49261cdd3d424531c5699c90114d2667eef65 100644 --- a/runtime/starpu/include/chameleon_starpu.h.in +++ b/runtime/starpu/include/chameleon_starpu.h.in @@ -81,7 +81,7 @@ typedef struct starpu_conf starpu_conf_t; /* * MPI Redefinitions */ -#if defined(CHAMELEON_STARPU_SYNC) +#if defined(CHAMELEON_RUNTIME_SYNC) #define TASK_SYNCHRONOUS , STARPU_TASK_SYNCHRONOUS, 1 #else #define TASK_SYNCHRONOUS diff --git a/timing/CMakeLists.txt b/timing/CMakeLists.txt index eb70fd776d0bd8cc943928901b52306296530bf4..e27c58a9277f6340aa4ecfb3347d2520298efb91 100644 --- a/timing/CMakeLists.txt +++ b/timing/CMakeLists.txt @@ -67,7 +67,7 @@ if (NOT CHAMELEON_SIMULATION) # ----------------------------- add_library(chameleon_timing STATIC ${TIMING_SRCS}) set_property(TARGET chameleon_timing PROPERTY LINKER_LANGUAGE Fortran) - add_dependencies(chameleon_timing timing_include timing_aux_sources) + add_dependencies(chameleon_timing timing_include timing_aux_sources chameleon_include) endif() # Generate the chameleon testing sources for all possible precisions