소스 검색

The starpu_data_{set,get}_default_sequential_consistency_flag functions make it
possible to select the default data consistency mode, so that it is possible to
specify that all handle will use the same policy.
NB: This is only provided for convenience and should not be used to write code
that may be integrated with other libraries written in StarPU.

Cédric Augonnet 15 년 전
부모
커밋
0f9bbf7ee1
4개의 변경된 파일21개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 0
      include/starpu_data.h
  2. 4 0
      mpi/examples/mpi_lu/plu_example.c
  3. 2 1
      src/datawizard/interfaces/data_interface.c
  4. 13 0
      src/datawizard/user_interactions.c

+ 2 - 0
include/starpu_data.h

@@ -69,6 +69,8 @@ unsigned starpu_worker_get_memory_node(unsigned workerid);
 void starpu_data_set_wb_mask(starpu_data_handle state, uint32_t wb_mask);
 
 void starpu_data_set_sequential_consistency_flag(starpu_data_handle handle, unsigned flag);
+unsigned starpu_data_get_default_sequential_consistency_flag(void);
+void starpu_data_set_default_sequential_consistency_flag(unsigned flag);
 
 unsigned starpu_data_test_if_allocated_on_node(starpu_data_handle handle, uint32_t memory_node);
 

+ 4 - 0
mpi/examples/mpi_lu/plu_example.c

@@ -419,6 +419,10 @@ int main(int argc, char **argv)
 	STARPU_ASSERT(p*q == world_size);
 
 	starpu_init(NULL);
+
+	/* We disable sequential consistency in this example */
+	starpu_data_set_default_sequential_consistency_flag(0);
+
 	starpu_mpi_initialize();
 	starpu_helper_cublas_init();
 

+ 2 - 1
src/datawizard/interfaces/data_interface.c

@@ -42,7 +42,8 @@ static void _starpu_register_new_data(starpu_data_handle handle,
 
 	handle->is_not_important = 0;
 
-	handle->sequential_consistency = 1; /* enabled by default */
+	handle->sequential_consistency =
+		starpu_data_get_default_sequential_consistency_flag();
 
 	PTHREAD_MUTEX_INIT(&handle->sequential_consistency_mutex, NULL);
 	handle->last_submitted_mode = STARPU_R;

+ 13 - 0
src/datawizard/user_interactions.c

@@ -361,3 +361,16 @@ void starpu_data_set_sequential_consistency_flag(starpu_data_handle handle, unsi
 
 	_starpu_spin_unlock(&handle->header_lock);
 }
+
+/* By default, sequential consistency is enabled */
+static unsigned default_sequential_consistency_flag = 1;
+
+unsigned starpu_data_get_default_sequential_consistency_flag(void)
+{
+	return default_sequential_consistency_flag;
+}
+
+void starpu_data_set_default_sequential_consistency_flag(unsigned flag)
+{
+	default_sequential_consistency_flag = flag;
+}