Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
get rid of simdag tracing. was superficial anyway
[simgrid.git] / include / simgrid / simdag.h
index adcc3a0..dbd011f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010, 2012-2014. The SimGrid Team.
+/* Copyright (c) 2006-2010, 2012-2015. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -11,6 +11,7 @@
 #include "xbt/dynar.h"
 #include "xbt/dict.h"
 
+#include "simgrid/link.h"
 
 SG_BEGIN_DECL()
 /** @brief Workstation datatype
@@ -21,27 +22,7 @@ SG_BEGIN_DECL()
     resource with computing capabilities</em> and has a <em>name</em>.
 
     @see SD_workstation_management */
-typedef xbt_dictelm_t SD_workstation_t;
-
-/** @brief Workstation access mode
-    @ingroup SD_datatypes_management
-
-    By default, a workstation resource is shared, i.e. several tasks
-    can be executed at the same time on a workstation. The CPU power of
-    the workstation is shared between the running tasks on the workstation.
-    In sequential mode, only one task can use the workstation, and the other
-    tasks wait in a FIFO.
-
-    @see SD_workstation_get_access_mode(), SD_workstation_set_access_mode() */
-typedef enum {
-  SD_WORKSTATION_SHARED_ACCESS,     /**< @brief Several tasks can be executed at the same time */
-  SD_WORKSTATION_SEQUENTIAL_ACCESS  /**< @brief Only one task can be executed, the others wait in a FIFO. */
-} e_SD_workstation_access_mode_t;
-
-typedef enum {
-  SD_LINK_SHARED,
-  SD_LINK_FATPIPE
-} e_SD_link_sharing_policy_t;
+typedef sg_host_t SD_workstation_t;
 
 /** @brief Link datatype
     @ingroup SD_datatypes_management
@@ -51,7 +32,7 @@ typedef enum {
     links between two workstations.
 
     @see SD_link_management */
-typedef struct SD_link *SD_link_t;
+typedef Link *SD_link_t;
 
 /** @brief Task datatype
     @ingroup SD_datatypes_management
@@ -71,14 +52,13 @@ typedef struct SD_task *SD_task_t;
     @see SD_task_management */
 typedef enum {
   SD_NOT_SCHEDULED = 0,      /**< @brief Initial state (not valid for SD_watch and SD_unwatch). */
-  SD_SCHEDULABLE = 0x0001,               /**< @brief A task becomes SD_SCHEDULABLE as soon as its dependencies are satisfied */
+  SD_SCHEDULABLE = 0x0001,   /**< @brief A task becomes SD_SCHEDULABLE as soon as its dependencies are satisfied */
   SD_SCHEDULED = 0x0002,     /**< @brief A task becomes SD_SCHEDULED when you call function
                                   SD_task_schedule. SD_simulate will execute it when it becomes SD_RUNNABLE. */
   SD_RUNNABLE = 0x0004,      /**< @brief A scheduled task becomes runnable is SD_simulate as soon as its dependencies are satisfied. */
-  SD_IN_FIFO = 0x0008,       /**< @brief A runnable task can have to wait in a workstation fifo if the workstation is sequential */
-  SD_RUNNING = 0x0010,       /**< @brief An SD_RUNNABLE or SD_IN_FIFO becomes SD_RUNNING when it is launched. */
-  SD_DONE = 0x0020,          /**< @brief The task is successfully finished. */
-  SD_FAILED = 0x0040         /**< @brief A problem occurred during the execution of the task. */
+  SD_RUNNING = 0x0008,       /**< @brief An SD_RUNNABLE task becomes SD_RUNNING when it is launched. */
+  SD_DONE = 0x0010,          /**< @brief The task is successfully finished. */
+  SD_FAILED = 0x0020         /**< @brief A problem occurred during the execution of the task. */
 } e_SD_task_state_t;
 
 /** @brief Task kinds
@@ -102,35 +82,6 @@ typedef enum {
     @see SD_storage_management */
 typedef xbt_dictelm_t SD_storage_t;
 
-/************************** AS handling *************************************/
-XBT_PUBLIC(xbt_dict_t) SD_as_router_get_properties(const char *as);
-XBT_PUBLIC(const char*) SD_as_router_get_property_value(const char * as,
-                                                  const char *name);
-
-/************************** Link handling ***********************************/
-/** @defgroup SD_link_management Links
- *  @brief Functions for managing the network links
- *
- *  This section describes the functions for managing the network links.
- *
- *  A link is a network node represented as a <em>name</em>, a <em>current
- *  bandwidth</em> and a <em>current latency</em>. The links are created
- *  when you call the function SD_create_environment.
- *
- *  @see SD_link_t
- *  @{
- */
-XBT_PUBLIC(const SD_link_t *) SD_link_get_list(void);
-XBT_PUBLIC(int) SD_link_get_number(void);
-XBT_PUBLIC(void *) SD_link_get_data(SD_link_t link);
-XBT_PUBLIC(void) SD_link_set_data(SD_link_t link, void *data);
-XBT_PUBLIC(const char *) SD_link_get_name(SD_link_t link);
-XBT_PUBLIC(double) SD_link_get_current_bandwidth(SD_link_t link);
-XBT_PUBLIC(double) SD_link_get_current_latency(SD_link_t link);
-XBT_PUBLIC(e_SD_link_sharing_policy_t) SD_link_get_sharing_policy(SD_link_t
-                                                                  link);
-/** @} */
-
 /************************** Workstation handling ****************************/
 
 /** @defgroup SD_workstation_management Workstations
@@ -149,7 +100,7 @@ XBT_PUBLIC(e_SD_link_sharing_policy_t) SD_link_get_sharing_policy(SD_link_t
  */
 XBT_PUBLIC(SD_workstation_t) SD_workstation_get_by_name(const char *name);
 XBT_PUBLIC(const SD_workstation_t *) SD_workstation_get_list(void);
-XBT_PUBLIC(int) SD_workstation_get_number(void);
+XBT_PUBLIC(int) SD_workstation_get_count(void);
 XBT_PUBLIC(void) SD_workstation_set_data(SD_workstation_t workstation,
                                          void *data);
 XBT_PUBLIC(void *) SD_workstation_get_data(SD_workstation_t workstation);
@@ -167,28 +118,21 @@ XBT_PUBLIC(const SD_link_t *) SD_route_get_list(SD_workstation_t src,
                                                 SD_workstation_t dst);
 XBT_PUBLIC(int) SD_route_get_size(SD_workstation_t src,
                                   SD_workstation_t dst);
-XBT_PUBLIC(double) SD_workstation_get_power(SD_workstation_t workstation);
-XBT_PUBLIC(double) SD_workstation_get_available_power(SD_workstation_t
+XBT_PUBLIC(double) SD_workstation_get_speed(SD_workstation_t workstation);
+XBT_PUBLIC(double) SD_workstation_get_available_speed(SD_workstation_t
                                                       workstation);
 XBT_PUBLIC(int) SD_workstation_get_cores(SD_workstation_t workstation);
-XBT_PUBLIC(e_SD_workstation_access_mode_t)
-    SD_workstation_get_access_mode(SD_workstation_t workstation);
-XBT_PUBLIC(void) SD_workstation_set_access_mode(SD_workstation_t
-                                                workstation,
-                                                e_SD_workstation_access_mode_t
-                                                access_mode);
 
 XBT_PUBLIC(double) SD_workstation_get_computation_time(SD_workstation_t workstation,
                                                        double flops_amount);
-XBT_PUBLIC(double) SD_route_get_current_latency(SD_workstation_t src,
+XBT_PUBLIC(double) SD_route_get_latency(SD_workstation_t src,
                                                 SD_workstation_t dst);
-XBT_PUBLIC(double) SD_route_get_current_bandwidth(SD_workstation_t src,
+XBT_PUBLIC(double) SD_route_get_bandwidth(SD_workstation_t src,
                                                   SD_workstation_t dst);
 XBT_PUBLIC(double) SD_route_get_communication_time(SD_workstation_t src,
                                                    SD_workstation_t dst,
                                                    double bytes_amount);
 
-XBT_PUBLIC(SD_task_t) SD_workstation_get_current_task(SD_workstation_t workstation);
 XBT_PUBLIC(xbt_dict_t)
     SD_workstation_get_mounted_storage_list(SD_workstation_t workstation);
 XBT_PUBLIC(xbt_dynar_t)
@@ -232,8 +176,8 @@ XBT_PUBLIC(double) SD_task_get_execution_time(SD_task_t task,
                                               const SD_workstation_t *
                                               workstation_list,
                                               const double *flops_amount,
-                                                                                         const double *bytes_amount);
-XBT_PUBLIC(int) SD_task_get_kind(SD_task_t task);
+                                              const double *bytes_amount);
+XBT_PUBLIC(e_SD_task_kind_t) SD_task_get_kind(SD_task_t task);
 XBT_PUBLIC(void) SD_task_schedule(SD_task_t task, int workstation_nb,
                                   const SD_workstation_t *
                                   workstation_list,
@@ -308,7 +252,7 @@ XBT_PUBLIC(int) SD_task_dependency_exists(SD_task_t src, SD_task_t dst);
 /** @defgroup SD_simulation Simulation
  *  @brief Functions for creating the environment and launching the simulation
  *
- *  This section describes the functions for initialising SimDag, launching
+ *  This section describes the functions for initializing SimDag, launching
  *  the simulation and exiting SimDag.
  *
  *  @{
@@ -324,11 +268,11 @@ XBT_PUBLIC(xbt_dynar_t) SD_daxload(const char *filename);
 XBT_PUBLIC(xbt_dynar_t) SD_dotload(const char *filename);
 XBT_PUBLIC(xbt_dynar_t) SD_PTG_dotload(const char *filename);
 XBT_PUBLIC(xbt_dynar_t) SD_dotload_with_sched(const char *filename);
-XBT_PUBLIC(void) uniq_transfer_task_name(SD_task_t task);
 
 /** @} */
 
+SG_END_DECL()
+
 #include "simgrid/instr.h"
 
-SG_END_DECL()
 #endif