Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Improve MSG doc a bit
[simgrid.git] / src / msg / msg_task.c
index 6698d82..da19e1b 100644 (file)
@@ -8,10 +8,6 @@
 #include "xbt/sysdep.h"
 #include "xbt/log.h"
 
-/** \defgroup m_task_management Managing functions of Tasks
- *  \brief This section describes the task structure of MSG
- *  (#m_task_t) and the functions for managing it.
- */
 /** @addtogroup m_task_management
  *    \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Tasks" --> \endhtmlonly
  * 
@@ -78,6 +74,51 @@ m_task_t MSG_task_create(const char *name, double compute_duration,
   return task;
 }
 
+/*************** Begin GPU ***************/
+/** \ingroup m_task_management
+ * \brief Creates a new #m_gpu_task_t.
+
+ * A constructor for #m_gpu_task_t taking four arguments and returning
+   a pointer to the new created GPU task.
+
+ * \param name a name for the object. It is for user-level information
+   and can be NULL.
+
+ * \param compute_duration a value of the processing amount (in flop)
+   needed to process this new task. If 0, then it cannot be executed with
+   MSG_gpu_task_execute(). This value has to be >=0.
+
+ * \param dispatch_latency time in seconds to load this task on the GPU
+
+ * \param collect_latency time in seconds to transfer result from the GPU
+   back to the CPU (host) when done
+
+ * \see m_gpu_task_t
+ * \return The new corresponding object.
+ */
+m_gpu_task_t MSG_gpu_task_create(const char *name, double compute_duration,
+                         double dispatch_latency, double collect_latency)
+{
+  m_gpu_task_t task = xbt_new(s_m_gpu_task_t, 1);
+  simdata_gpu_task_t simdata = xbt_new(s_simdata_gpu_task_t, 1);
+  task->simdata = simdata;
+  /* Task structure */
+  task->name = xbt_strdup(name);
+
+  /* Simulator Data */
+  simdata->computation_amount = compute_duration;
+  simdata->dispatch_latency   = dispatch_latency;
+  simdata->collect_latency    = collect_latency;
+
+#ifdef HAVE_TRACING
+  //FIXME
+  /* TRACE_msg_gpu_task_create(task); */
+#endif
+
+  return task;
+}
+/*************** End GPU ***************/
+
 /** \ingroup m_task_management
  * \brief Return the user data of a #m_task_t.
  *