Mentions légales du service

Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • solverstack/chameleon
  • lvilleve/chameleon-toto
  • jcletort/chameleon
  • thibault/chameleon
  • tcojean/chameleon
  • sylvand/chameleon
  • viroulea/chameleon
  • x-ltac/chameleon
  • agullo/chameleon
  • glucas/chameleon
  • pswartva/chameleon
  • aguermou1/chameleon
  • eyrauddu/chameleon
  • mverite/chameleon
  • alisito/chameleon
  • furmento/chameleon
  • fpruvost/chameleon
  • ahourcau/chameleon
  • bnicolas/chameleon
  • pesterie/chameleon
  • mmarcos/chameleon
21 results
Show changes
Commits on Source (6)
......@@ -771,6 +771,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()
endif()
if(HWLOC_FOUND AND HWLOC_LIBRARY_DIRS)
# the RPATH to be used when installing
......
......@@ -40,6 +40,7 @@
#cmakedefine HAVE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS
#cmakedefine HAVE_STARPU_MPI_DATA_REGISTER
#cmakedefine HAVE_STARPU_MPI_COMM_RANK
#cmakedefine HAVE_STARPU_MPI_CACHED_RECEIVE
/* MAGMA functions */
#cmakedefine HAVE_MAGMA_GETRF_INCPIV_GPU
......
......@@ -210,26 +210,26 @@ inline static int morse_desc_islocal( const MORSE_desc_t *A, int m, int n )
#define MORSE_ACCESS_R(A, Am, An) do { \
if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
RUNTIME_ACCESS_R(A, Am, An) \
RUNTIME_ACCESS_R(A, Am, An); \
} while(0)
#define MORSE_ACCESS_W(A, Am, An) do { \
if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
RUNTIME_ACCESS_W(A, Am, An) \
RUNTIME_ACCESS_W(A, Am, An); \
} while(0)
#define MORSE_ACCESS_RW(A, Am, An) do { \
if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
RUNTIME_ACCESS_RW(A, Am, An) \
RUNTIME_ACCESS_RW(A, Am, An); \
} while(0)
#define MORSE_RANK_CHANGED(rank) do {\
__morse_need_submit = 1; \
RUNTIME_RANK_CHANGED(rank) \
RUNTIME_RANK_CHANGED(rank); \
} while (0)
#define MORSE_END_ACCESS_DECLARATION \
RUNTIME_END_ACCESS_DECLARATION \
RUNTIME_END_ACCESS_DECLARATION; \
if (!__morse_need_submit) return; \
}
......
......@@ -40,6 +40,18 @@ static void data_release(void *handle)
}
#endif
#ifdef CHAMELEON_USE_MPI
#ifdef HAVE_STARPU_MPI_CACHED_RECEIVE
int RUNTIME_desc_iscached(const MORSE_desc_t *A, int Am, int An)
{
starpu_data_handle_t *ptrtile = (starpu_data_handle_t*)(A->schedopt);
ptrtile += ((int64_t)(A->lmt) * (int64_t)An + (int64_t)Am);
return starpu_mpi_cached_receive(*ptrtile);
}
#endif
#endif
void MORSE_TASK_dataflush(const MORSE_option_t *options,
const MORSE_desc_t *A, int Am, int An)
{
......
......@@ -85,6 +85,22 @@ typedef struct starpu_conf starpu_conf_t;
#define RTBLKADDR( desc, type, m, n ) ( (starpu_data_handle_t)RUNTIME_desc_getaddr( desc, m, n ) )
void RUNTIME_set_reduction_methods(starpu_data_handle_t handle, MORSE_enum dtyp);
#ifdef CHAMELEON_USE_MPI
#ifdef HAVE_STARPU_MPI_CACHED_RECEIVE
int RUNTIME_desc_iscached(const MORSE_desc_t *A, int Am, int An);
#endif
#endif
#if defined(CHAMELEON_USE_MPI)
# if defined(HAVE_STARPU_MPI_CACHED_RECEIVE)
# define RUNTIME_ACCESS_WRITE_CACHED(A, Am, An) do { if (RUNTIME_desc_iscached(A, Am, An)) __morse_need_submit = 1; } while(0)
# else
# warning "WAR dependencies need starpu_mpi_cached_receive support from StarPU 1.2.1 or greater"
# define RUNTIME_ACCESS_WRITE_CACHED(A, Am, An)
# endif
#else
#define RUNTIME_ACCESS_WRITE_CACHED(A, Am, An)
#endif
#ifdef CHAMELEON_ENABLE_PRUNING_STATS
......@@ -118,21 +134,23 @@ void RUNTIME_set_reduction_methods(starpu_data_handle_t handle, MORSE_enum dtyp)
#define RUNTIME_PRUNING_STATS_RANK_CHANGED(rank)
#endif
#define RUNTIME_BEGIN_ACCESS_DECLARATION \
#define RUNTIME_BEGIN_ACCESS_DECLARATION \
RUNTIME_PRUNING_STATS_BEGIN_ACCESS_DECLARATION
#define RUNTIME_ACCESS_R(A, Am, An) \
#define RUNTIME_ACCESS_R(A, Am, An)
#define RUNTIME_ACCESS_W(A, Am, An) \
RUNTIME_PRUNING_STATS_ACCESS_W(A, Am, An)
#define RUNTIME_ACCESS_W(A, Am, An) \
RUNTIME_PRUNING_STATS_ACCESS_W(A, Am, An); \
RUNTIME_ACCESS_WRITE_CACHED(A, Am, An)
#define RUNTIME_ACCESS_RW(A, Am, An) \
RUNTIME_PRUNING_STATS_ACCESS_W(A, Am, An)
#define RUNTIME_ACCESS_RW(A, Am, An) \
RUNTIME_PRUNING_STATS_ACCESS_W(A, Am, An); \
RUNTIME_ACCESS_WRITE_CACHED(A, Am, An)
#define RUNTIME_RANK_CHANGED(rank) \
#define RUNTIME_RANK_CHANGED(rank) \
RUNTIME_PRUNING_STATS_RANK_CHANGED(rank)
#define RUNTIME_END_ACCESS_DECLARATION \
#define RUNTIME_END_ACCESS_DECLARATION \
RUNTIME_PRUNING_STATS_END_ACCESS_DECLARATION;
#endif /* _MORSE_STARPU_H_ */