\ingroup SURF_API
\brief Functions for creating the environment and launching the simulation
- This section describes the functions for initialising SURF, performing
+ This section describes the functions for initializing SURF, performing
the simulation and exiting SURF.
*/
\ingroup SURF_API
\brief How to build a new API on top of SURF
- SURF provides the functionnalities to simulate the platform. There are two main datatypes in SURF:
+ SURF provides the functionalities to simulate the platform. There are two main data types in SURF:
the actions and the resources. Several types of resources exist:
- the workstation resource,
- the network resource,
- the CPU resource,
- the timer resource.
- The implentation of these resources depends on the platform model you choose. There are several
+ The implementation of these resources depends on the platform model you choose. There are several
platform models. You can select your model by calling surf_workstation_resource_init_CLM03()
or surf_workstation_resource_init_KCCFLN05(). See the documentation of these functions to have
more details about the models. Remember that the model KCCFLN05 is an implementation of both the
Have a look at the implementation of \ref MSG_API "MSG" and \ref SD_API "Simdag" to see how these module
interact with SURF. But if you want to create a new API on top of SURF,
- we strongly recommand you to contact us before anyway.
+ we strongly recommend you to contact us before anyway.
*/
*
* @param name The name of the NetworkLink
* @param bw_initial The initial bandwidth of the NetworkLink in bytes per second
- * @param bw_trace The trace associated to the NetworkLink bandwidth [TODO]
+ * @param bw_trace The trace associated to the NetworkLink bandwidth
* @param lat_initial The initial latency of the NetworkLink in seconds
- * @param lat_trace The trace associated to the NetworkLink latency [TODO]
+ * @param lat_trace The trace associated to the NetworkLink latency
* @param state_initial The initial NetworkLink (state)[e_surf_resource_state_t]
- * @param state_trace The trace associated to the NetworkLink (state)[e_surf_resource_state_t] [TODO]
+ * @param state_trace The trace associated to the NetworkLink (state)[e_surf_resource_state_t]
* @param policy The sharing policy of the NetworkLink
* @param properties Dictionary of properties associated to this Resource
* @return The created NetworkLink
virtual void gapAppend(double /*size*/, const NetworkLinkPtr /*link*/, NetworkActionPtr /*action*/) {};
/**
- * @brief Create a communication between two [TODO]
- * @details [TODO]
+ * @brief Create a communication between two workstations.
+ * @details It makes calls to the routing part, and execute the communication
+ * between the two end points.
*
- * @param src The source [TODO]
- * @param dst The destination [TODO]
+ * @param src The source of the communication
+ * @param dst The destination of the communication
* @param size The size of the communication in bytes
- * @param rate The
+ * @param rate Allows to limit the transfer rate. Negative value means
+ * unlimited.
* @return The action representing the communication
*/
virtual ActionPtr communicate(RoutingEdgePtr src, RoutingEdgePtr dst,
void (*f_networkSolve)(lmm_system_t);
/**
- * @brief [brief description]
- * @details [long description]
+ * @brief Gets the right multiplicative factor for the latency.
+ * @details According to the model, the effective latency when sending
+ * a message might be different from the theoretical latency in function
+ * of its size. In order to account for this, this function get this factor.
*
- * @param size [description]
- * @return [description]
+ * @param size The size of the message.
+ * @return The latency factor.
*/
virtual double latencyFactor(double size);
/**
- * @brief [brief description]
- * @details [long description]
+ * @brief Gets the right multiplicative factor for the bandwidth.
+ * @details According to the model, the effective bandwidth when sending
+ * a message might be different from the theoretical bandwidth in function
+ * of its size. In order to account for this, this function get this factor.
*
- * @param size [description]
- * @return [description]
+ * @param size The size of the message.
+ * @return The bandwidth factor.
*/
virtual double bandwidthFactor(double size);
/**
- * @brief [brief description]
- * @details [long description]
- *
- * @param rate [description]
- * @param bound [description]
- * @param size [description]
- * @return [description]
+ * @brief Gets definitive bandwidth.
+ * @details It gives the minimum bandwidth between the one that would
+ * occur if no limitation was enforced, and the maximum wanted bandwidth
+ * @param rate The desired maximum bandwidth.
+ * @param bound The bandwidth with only the network taken into account.
+ * @param size The size of the message.
+ * @return The new bandwidth.
*/
virtual double bandwidthConstraint(double rate, double bound, double size);
bool m_haveGap;