Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
[simgrid.git] / src / msg / msg_task.cpp
index 8c3a95f..a3b6d20 100644 (file)
@@ -102,40 +102,6 @@ msg_task_t MSG_parallel_task_create(const char *name, int host_nb, const msg_hos
   return task;
 }
 
-/*************** Begin GPU ***************/
-/** \ingroup m_task_management
- * \brief Creates a new #msg_gpu_task_t.
-
- * A constructor for #msg_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 flops_amount 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 msg_gpu_task_t
- * \return The new corresponding object.
- */
-msg_gpu_task_t MSG_gpu_task_create(const char *name, double flops_amount, double dispatch_latency,
-                                   double collect_latency)
-{
-  msg_gpu_task_t task = xbt_new(s_msg_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->flops_amount = flops_amount;
-  simdata->dispatch_latency   = dispatch_latency;
-  simdata->collect_latency    = collect_latency;
-
-  /* TRACE_msg_gpu_task_create(task); FIXME*/
-  return task;
-}
-/*************** End GPU ***************/
-
 /** \ingroup m_task_management
  * \brief Return the user data of a #msg_task_t.
  *
@@ -230,7 +196,6 @@ void MSG_task_set_name(msg_task_t task, const char *name)
  */
 msg_error_t MSG_task_destroy(msg_task_t task)
 {
-  smx_synchro_t action = NULL;
   xbt_assert((task != NULL), "Invalid parameter");
 
   if (task->simdata->isused) {
@@ -241,9 +206,8 @@ msg_error_t MSG_task_destroy(msg_task_t task)
 
   xbt_free(task->name);
 
-  action = task->simdata->compute;
-  if (action)
-    simcall_execution_destroy(action);
+  if (task->simdata->compute)
+    task->simdata->compute->unref();
 
   /* parallel tasks only */
   xbt_free(task->simdata->host_list);
@@ -286,7 +250,7 @@ msg_error_t MSG_task_cancel(msg_task_t task)
  */
 double MSG_task_get_flops_amount(msg_task_t task) {
   if (task->simdata->compute) {
-    return simcall_execution_get_remains(task->simdata->compute);
+    return task->simdata->compute->remains();
   } else {
     return task->simdata->flops_amount;
   }
@@ -321,22 +285,9 @@ void MSG_task_set_bytes_amount(msg_task_t task, double data_size)
  */
 double MSG_task_get_remaining_communication(msg_task_t task)
 {
-  xbt_assert((task != NULL) && (task->simdata != NULL), "Invalid parameter");
   XBT_DEBUG("calling simcall_communication_get_remains(%p)", task->simdata->comm);
-  return simcall_comm_get_remains(task->simdata->comm);
-}
-
-#ifdef HAVE_LATENCY_BOUND_TRACKING
-/** \ingroup m_task_management
- * \brief Return 1 if communication task is limited by latency, 0 otherwise
- */
-int MSG_task_is_latency_bounded(msg_task_t task)
-{
-  xbt_assert((task != NULL) && (task->simdata != NULL), "Invalid parameter");
-  XBT_DEBUG("calling simcall_communication_is_latency_bounded(%p)", task->simdata->comm);
-  return simcall_comm_is_latency_bounded(task->simdata->comm);
+  return task->simdata->comm->remains();
 }
-#endif
 
 /** \ingroup m_task_management
  * \brief Returns the size of the data attached to a task #msg_task_t.
@@ -436,8 +387,8 @@ void MSG_task_set_affinity(msg_task_t task, msg_host_t host, unsigned long mask)
   }
 
   {
-    smx_synchro_t compute = task->simdata->compute;
-    msg_host_t host_now = compute->execution.host;  // simix_private.h is necessary
+    simgrid::simix::Exec *compute = task->simdata->compute;
+    msg_host_t host_now = compute->host;  // simix_private.h is necessary
     if (host_now != host) {
       /* task is not yet executed on this host */
       XBT_INFO("set affinity(0x%04lx@%s) for %s (not active now)", mask, MSG_host_get_name(host),