doxygen/tracing.doc \
doxygen/FAQ.doc \
doxygen/module-msg.doc \
+ doxygen/module-sd.doc \
doxygen/module-index.doc \
doxygen/module-xbt.doc \
- doxygen/module-sd.doc \
doxygen/module-surf.doc \
doxygen/module-simix.doc \
doxygen/module-smpi.doc \
<!-- Layout definition for a group page -->
<group>
<detaileddescription title=""/>
- <briefdescription visible="yes"/>
+ <briefdescription visible="no"/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
<classes visible="yes" title=""/>
-/** \defgroup SD_API SimDag
- \brief Programming environment for DAG applications
-
- SimDag provides some functionnalities to simulate parallel task scheduling
- with DAGs models (Direct Acyclic Graphs).
- The old versions of SimGrid were based on DAGs. But the DAG part (named SG)
- was removed in SimGrid 3 because the new kernel (\ref SURF_API) was implemented. \ref SURF_API
- was much faster and more flexible than SG and did not use DAGs.
- SimDag is a new implementation of DAGs handling and it is built on top of \ref SURF_API.
-
- \section SD_who Who should use this (and who shouldn't)
-
- You should use this programming environment of the SimGrid suite if you want
- to study algorithms and heuristics with DAGs of parallel tasks.
- If you don't need to use DAGs for your simulation, have a look at the
- \ref MSG_API programming environment.
- If you want to study an existing MPI program, have a look at the
- \ref SMPI_API one.
- If none of those programming environments fits your needs, you may
- consider implementing your own directly on top of \ref SURF_API (but you
- probably want to contact us before).
-*/
-
/** \defgroup SMPI_API SMPI
\brief Programming environment for the simulation of MPI applications
*/
-
/**
@defgroup XBT_API XBT
-@brief The core toolbox of SimGrid, containing usefull datatypes and friends
+@brief The core toolbox of SimGrid, containing useful datatypes and friends
*/
/**
/**
@defgroup msg_simulation Main MSG simulation Functions
@ingroup MSG_API
-@brief Describes how to setup and control your simulation.
+@brief How to setup and control your simulation.
The basic workflow is the following (check the \ref MSG_examples for
details).
/** @defgroup m_host_management Host Management Functions
* @ingroup MSG_API
- * @brief This section describes the host structure of MSG
+ * @brief Host structure of MSG
*/
/** @defgroup m_task_management Task Management Functions
* @ingroup MSG_API
- * @brief This section describes the task structure of MSG
- * (#msg_task_t) and the functions for managing it. See
+ * @brief Task structure of MSG (#msg_task_t) and associated functions. See
* \ref msg_task_usage to see how to put the tasks in action.
*/
/** @defgroup msg_mailbox_management Mailbox Management Functions
* @ingroup MSG_API
- * @brief This section describes the mailbox structure of MSG
- * (#msg_mailbox_t) and the functions for managing it.
+ * @brief Mailbox structure of MSG (#msg_mailbox_t) and associated functions.
*/
/** @defgroup msg_task_usage Task Actions
/** @defgroup msg_synchro Explicit Synchronization Functions
* @ingroup MSG_API
- * @brief This section describes several explicit synchronization
- * mechanisms existing in MSG: semaphores (#msg_sem_t) and friends.
+ * @brief Explicit synchronization mechanisms: semaphores (#msg_sem_t) and friends.
*
* In some situations, these things are very helpful to synchronize processes without message exchanges.
*/
/** @defgroup msg_VMs VMs
* @ingroup MSG_API
- * @brief This section describes the interface created to mimic IaaS clouds.
+ * @brief Interface created to mimic IaaS clouds.
*
* With it, you can create virtual machines to put your processes
* into, and interact directly with the VMs to manage groups of
/** @defgroup msg_storage_management Storage Management Functions
* @ingroup MSG_API
- * @brief This section describes the storage structure of MSG
- * (#msg_storage_t) and the functions for managing it. It
- * is based on POSIX functions.
+ * @brief Storage structure of MSG (#msg_storage_t) and associated functions, inspired from POSIX.
*/
/** @defgroup msg_file File Management Functions
@ingroup MSG_API
- @brief MSG files (#msg_file_t) and associated functions, inspired from POSIX file handling.
+ @brief MSG files (#msg_file_t) and associated functions, inspired from POSIX.
*/
/**
-/** @addtogroup SD_API
+/** @defgroup SD_API SimDag for DAG applications
+ @brief Programming environment for DAG applications
- \section SD_func Offered functionnalities
- - \ref SD_datatypes_management
- - \ref SD_workstation_management
- - \ref SD_link_management
- - \ref SD_task_management
- - \ref SD_task_dependency_management
- - \ref SD_simulation
+SimDag provides functionnalities to simulate parallel task scheduling
+arranged in DAGs (Direct Acyclic Graphs). Only centralized algorithms
+can be expressed with SimDag; consider using @ref MSG_API "MSG" for
+distributed algorithms).
+SimDag is the oldest interface in SimGrid, even if it was temporarly
+removed when the new superfast kernel was added in SimGrid v3.0.
+
+ @{
+
+ @defgroup SD_host_api Hosts
+ @brief Host management
+
+ @defgroup SD_link_api Links
+ @brief Link management
+
+ @defgroup SD_task_api Tasks
+ @brief Task management
+
+ @defgroup SD_task_dependency_api Tasks dependencies
+ @brief Functions to specify the dependencies between tasks
+
+ @defgroup SD_storage_api Storages
+ @brief Storage management
+
+ @defgroup SD_simulation Simulation
+ @brief Functions to create the environment and launch the simulation
+ @}
*/
-/** @defgroup SD_datatypes_management SD Data Types
- @ingroup SD_API
- @brief This section describes the different datatypes provided by SD.
- */
-/** @addtogroup SD_datatypes_management */
-/** \addtogroup SD_workstation_management
- \ingroup SD_API */
-/** \addtogroup SD_link_management
- \ingroup SD_API */
-/** \addtogroup SD_task_management
- \ingroup SD_API */
-/** \addtogroup SD_task_dependency_management
- \ingroup SD_API */
-/** \addtogroup SD_simulation
- \ingroup SD_API */
@{ */
/** @defgroup XBT_grounding Grounding features */
/** @defgroup XBT_adt Usual data structures */
- /** @defgroup XBT_misc Misc general purposes library components */
+ /** @defgroup XBT_misc Miscellaneous */
/** @} */
/**
-@defgroup MSG_ex_examples ignored
@example examples/msg/app-pingpong/app-pingpong.c
@example examples/msg/app-token-ring/app-token-ring.c
@example examples/msg/app-masterworker/app-masterworker.c
SG_BEGIN_DECL()
-/** @brief Link datatype
- @ingroup SD_datatypes_management
+/** @brief Link opaque datatype
+ @ingroup SD_link_api
A link is a network node represented as a <em>name</em>, a <em>bandwidth</em> and a <em>latency</em>.
- A route is a list of links between two workstations.
-
- @see SD_link_management */
+ A route is a list of links between two hosts.
+ */
typedef Link *SD_link_t;
-/** @brief Task datatype
- @ingroup SD_datatypes_management
+/** @brief Task opaque datatype
+ @ingroup SD_task_api
A task is some <em>computing amount</em> that can be executed in parallel on several hosts.
A task may depend on other tasks, which means that the task cannot start until the other tasks are done.
Each task has a <em>\ref e_SD_task_state_t "state"</em> indicating whether the task is scheduled, running, done, ...
- @see SD_task_management */
+ */
typedef struct SD_task *SD_task_t;
/** @brief Task states
- @ingroup SD_datatypes_management
-
- @see SD_task_management */
+ @ingroup SD_task_api */
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 */
} e_SD_task_state_t;
/** @brief Task kinds
- @ingroup SD_datatypes_management
-
- @see SD_task_management */
+ @ingroup SD_task_api */
typedef enum {
SD_TASK_NOT_TYPED = 0, /**< @brief no specified type */
SD_TASK_COMM_E2E = 1, /**< @brief end to end communication */
} e_SD_task_kind_t;
/** @brief Storage datatype
- @ingroup SD_datatypes_management
-
- @see SD_storage_management */
+ @ingroup SD_storage_api */
typedef xbt_dictelm_t SD_storage_t;
/************************** Workstation handling ****************************/
-/** @defgroup sg_host_management Hosts
- * @brief Functions for managing the Hosts
- *
- * This section describes the functions for managing the hosts.
+/** @addtogroup SD_host_api
*
* A host is a place where a task can be executed.
* A host is represented as a <em>physical resource with computing capabilities</em> and has a <em>name</em>.
*
- * The hosts are created when you call the function SD_create_environment.
+ * The hosts are created from the description file when you call the function SD_create_environment.
*
* @see sg_host_t
* @{
/** @} */
/************************** Task handling ************************************/
-/** @defgroup SD_task_management Tasks
+/** @defgroup SD_task_api Tasks
* @brief Functions for managing the tasks
*
* This section describes the functions for managing the tasks.
* A task may depend on other tasks, which means that the task cannot start until the other tasks are done.
* Each task has a <em>\ref e_SD_task_state_t "state"</em> indicating whether the task is scheduled, running, done, ...
*
- * @see SD_task_t, SD_task_dependency_management
+ * @see SD_task_t, @see SD_task_dependency_api
* @{
*/
XBT_PUBLIC(SD_task_t) SD_task_create(const char *name, void *data, double amount);
/** @} */
-/** @defgroup SD_task_dependency_management Tasks dependencies
- * @brief Functions for managing the task dependencies
- *
+/** @addtogroup SD_task_dependency_api
+ *
* This section describes the functions for managing the dependencies between the tasks.
*
- * @see SD_task_management
+ * @see SD_task_api
* @{
*/
XBT_PUBLIC(void) SD_task_dependency_add(const char *name, void *data, SD_task_t src, SD_task_t dst);
/** @} */
/************************** Global *******************************************/
-/** @defgroup SD_simulation Simulation
- * @brief Functions for creating the environment and launching the simulation
+/** @addtogroup SD_simulation Simulation
*
* This section describes the functions for initializing SimDag, launching the simulation and exiting SimDag.
*
SG_BEGIN_DECL()
/** @defgroup XBT_file File manipulation functions
- * @ingroup XBT
+ * @ingroup XBT_misc
*
* This module redefine some quite classical functions such as xbt_getline() or xbt_dirname() for the platforms
* lacking them.
/**
* \brief Creates the environment
*
- * The environment (i.e. the \ref sg_host_management "hosts" and the \ref SD_link_management "links") is created with
+ * The environment (i.e. the \ref SD_host_api "hosts" and the \ref SD_link_api "links") is created with
* the data stored in the given XML platform file.
*
* \param platform_file name of an XML file describing the environment to create
- * \see sg_host_management, SD_link_management
+ * \see SD_host_api, SD_link_api
*
* The XML file follows this DTD:
*