Browse Source

Document implicit data dependencies

Cédric Augonnet 15 years ago
parent
commit
39604d8186
1 changed files with 24 additions and 7 deletions
  1. 24 7
      doc/starpu.texi

+ 24 - 7
doc/starpu.texi

@@ -757,7 +757,7 @@ This variable specify in which file the debugging output should be saved to.
 * Data Library::                Methods to manipulate data
 * Codelets and Tasks::          Methods to construct tasks
 * Explicit Dependencies::       Explicit Dependencies
-* Implicit Dependencies::       Implicit Dependencies
+* Implicit Data Dependencies::  Implicit Data Dependencies
 * Profiling API::               Profiling API
 * CUDA extensions::             CUDA extensions
 * OpenCL extensions::           OpenCL extensions
@@ -997,7 +997,8 @@ function on an invalid identifier results in an unspecified behaviour.
 @subsection @code{starpu_worker_get_memory_node} -- Get the memory node of a worker
 @table @asis
 @item @emph{Description}:
-This function returns the identifier of the memory node associated to the worker identified by @code{workerid}.
+This function returns the identifier of the memory node associated to the
+worker identified by @code{workerid}.
 
 @item @emph{Prototype}:
 @code{unsigned starpu_worker_get_memory_node(unsigned workerid);}
@@ -1541,8 +1542,8 @@ DAG before actually giving StarPU the opportunity to execute the tasks.
 @code{void starpu_tag_notify_from_apps(starpu_tag_t id);}
 @end table
 
-@node Implicit Dependencies
-@section Implicit Dependencies
+@node Implicit Data Dependencies
+@section Implicit Data Dependencies
 
 @menu
 * starpu_data_set_default_sequential_consistency_flag::        starpu_data_set_default_sequential_consistency_flag
@@ -1550,11 +1551,25 @@ DAG before actually giving StarPU the opportunity to execute the tasks.
 * starpu_data_set_sequential_consistency_flag::                starpu_data_set_sequential_consistency_flag
 @end menu
 
+In this section, we describe how StarPU makes it possible to insert implicit
+task dependencies in order to enforce sequential data consistency. When this
+data consistency is enabled on a specific data handle, any data access will
+appear as sequentially consistent from the application. For instance, if the
+application submits two tasks that access the same piece of data in read-only
+mode, and then a third task that access it in write mode, dependencies will be
+added between the two first tasks and the third one. Implicit data dependencies
+are also inserted in the case of data accesses from the application.
+
 @node starpu_data_set_default_sequential_consistency_flag
 @subsection @code{starpu_data_set_default_sequential_consistency_flag} -- Set default sequential consistency flag
 @table @asis
 @item @emph{Description}:
-TODO
+Set the default sequential consistency flag. If a non-null value is passed, a
+sequential data consistency will be enforced for all handles registered after
+this function call, otherwise it is disabled. By default, StarPU enables
+sequential data consistency. It is also possible to select the data consistency
+mode of a specific data handle with the
+@code{starpu_data_set_sequential_consistency_flag} function.
 @item @emph{Prototype}:
 @code{void starpu_data_set_default_sequential_consistency_flag(unsigned flag);}
 @end table
@@ -1563,7 +1578,7 @@ TODO
 @subsection @code{starpu_data_get_default_sequential_consistency_flag} -- Get current default sequential consistency flag
 @table @asis
 @item @emph{Description}:
-TODO
+This function returns the current default sequential consistency flag.
 @item @emph{Prototype}:
 @code{unsigned starpu_data_set_default_sequential_consistency_flag(void);}
 @end table
@@ -1572,7 +1587,9 @@ TODO
 @subsection @code{starpu_data_set_sequential_consistency_flag} -- Set data sequential consistency mode
 @table @asis
 @item @emph{Description}:
-TODO
+Select the data consistency mode associated to a data handle. The consistency
+mode set using this function has the priority over the default mode which can
+be set with @code{starpu_data_set_sequential_consistency_flag}.
 @item @emph{Prototype}:
 @code{void starpu_data_set_sequential_consistency_flag(starpu_data_handle handle, unsigned flag);}
 @end table