Browse Source

add some contents

Olivier Aumage 6 years ago
parent
commit
d3682b48fd
1 changed files with 24 additions and 12 deletions
  1. 24 12
      doc/doxygen_dev/chapters/010_core.doxy

+ 24 - 12
doc/doxygen_dev/chapters/010_core.doxy

@@ -23,37 +23,44 @@ TODO
 \subsection CoreEntitiesOverview Overview
 
 Execution entities:
-- worker: A worker (see \ref CoreEntitiesWorkers, \ref
+- <b>worker</b>: A worker (see \ref CoreEntitiesWorkers, \ref
   CoreEntitiesWorkersAndContexts) entity is a CPU thread created by StarPU to manage
   one computing unit. The computing unit can be a local CPU core, an accelerator
   or GPU device, or --- on the master side when running in master-slave
   distributed mode --- a remote slave computing node. It is responsible for
   querying scheduling policies for tasks to execute.
 
-- sched_context: A scheduling context (see \ref CoreEntitiesContexts, \ref
+- <b>sched_context</b>: A scheduling context (see \ref CoreEntitiesContexts, \ref
   CoreEntitiesWorkersAndContexts) is a logical set of workers governed by an
   instance of a scheduling policy. It defines the computing units to which the
   scheduling policy instance may assign work entities.
 
-- driver: A driver is the set of hardware-dependent routines used by a
+- <b>driver</b>: A driver is the set of hardware-dependent routines used by a
   worker to initialize its associated computing unit, execute work entities on
   it, and finalize the computing unit usage at the end of the session.
 
 Work entities:
-- task: TODO
-- job: TODO
+- <b>task</b>: TODO
+- <b>job</b>: TODO
 
 Data entities:
-- data handle
-- data replicate: TODO
+- <b>data handle</b>: TODO
+- <b>data replicate</b>: TODO
 
 \subsection CoreEntitiesWorkers Workers
 
-TODO
+A <b>worker</b> is a CPU thread created by StarPU. Its role is to manage one computing
+unit. This computing unit can be a local CPU core, in which case, the worker
+thread manages the actual CPU core to which it is assigned; or it can be a
+computing device such as a GPU or an accelerator (or even a remote computing
+node when StarPU is running in distributed master-slave mode.) When a worker
+manages a computing device, the CPU core to which the worker's thread is
+by default exclusively assigned to the device management work and does not
+participate to computation.
 
 \subsubsection CoreEntitiesWorkersStates States
 
-Scheduling operations related state
+<b>Scheduling operations related state</b>
 
 While a worker is conducting a scheduling operations, e.g. the worker is in the
 process of selecting a new task to execute, flag state_sched_op_pending is set
@@ -79,7 +86,7 @@ conflicting operation deferred while the worker was in the
 state_sched_op_pending state is performed in an orderly manner.
 
 
-Scheduling contexts related states
+<b>Scheduling contexts related states</b>
 
 Flag state_changing_ctx_notice is set to !0 when a thread is about to
 add to a scheduling context or remove it from a scheduling context, and is
@@ -95,7 +102,7 @@ worker is currently performing a scheduling operation to tell the targeted
 worker that the initiator thread is waiting for the scheduling operation to
 complete and should be woken up upon completion.
 
-Relaxed synchronization related states
+<b>Relaxed synchronization related states</b>
 
 Any StarPU worker may participate to scheduling operations, and in this process,
 may be forced to observe state information from other workers. 
@@ -120,7 +127,7 @@ resolved after the fact. When the relaxed mode is off, the consistency model
 becomes a mutual exclusion model, where the sched_mutex of the worker must be
 held in order to access or change the worker state.
 
-Parallel tasks related states
+<b>Parallel tasks related states</b>
 
 When a worker is scheduled to participate to the execution of a parallel task,
 it must wait for the whole team of workers participating to the execution of
@@ -190,6 +197,11 @@ TODO
 
 \subsection CoreEntitiesWorkersAndContexts Workers and Scheduling Contexts
 
+A worker can be assigned to one or more <b>scheduling contexts</b>. It
+exclusively receives tasks submitted to the scheduling context(s) it is
+currently assigned at the time such tasks are scheduled. A worker may add itself
+to or remove itself from a scheduling context.
+
 TODO
 
 */