option(enable_coverage "Enable coverage." off)
option(enable_memcheck "Enable memcheck." off)
option(enable_print_message "Enable print message during config." off)
-option(enable_model-checking "" off)
+option(enable_model-checking "Turn this on to experiment with our prototype of model-checker (may hinder the performance of simulation)" off)
option(enable_lib_static "" off)
option(enable_jedule "Jedule output of SimDAG." off)
-option(enable_debug "Set NDEBUG flag" on)
+option(enable_debug "Turn this off to remove all debug messages at compile time (faster, but no debug activable)" on)
option(enable_supernovae "Whether Supernovae mode (helping compiler optimization) is activated." on)
#if(enable_supernovae AND enable_model-checking)
# for a project that appears at the top of each page and should give viewer
# a quick idea about the purpose of the project. Keep the description short.
-PROJECT_BRIEF = "<i>Scalable simulation of distributed systems</i>"
+PROJECT_BRIEF = "Scalable simulation of distributed systems"
# With the PROJECT_LOGO tag one can specify an logo or icon that is
# included in the documentation. The maximum height of the logo should not
@top_srcdir@/include/simdag \
@top_srcdir@/src/include/surf \
@top_srcdir@/src/xbt/ \
+ @top_srcdir@/src/xbt/datadesc \
@top_srcdir@/src/surf/ \
@top_srcdir@/src/msg/ \
@top_srcdir@/src/gras \
- @top_srcdir@/src/gras/DataDesc \
@top_srcdir@/src/gras/Msg \
@top_srcdir@/src/gras/Transport \
@top_srcdir@/src/gras/Virtu \
Back to the main Simgrid Documentation page</b></a>
</td>
<td align=middle>
-<small>The version of Simgrid documented here is v@release_version@.<br/>
+<small>The version of <a href="http://simgrid.gforge.inria.fr">SimGrid</a> documented here is v@release_version@.<br/>
Documentation of other versions can be found in their respective
archive files (directory doc/html).
</td>
<td align=right>
-<small>Generated for SimGridAPI by
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border=0
-width=110 height=53></a> </small>
+<small>Generated by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a> </small>
</td>
</tr>
</table>
\section GRAS_tut_tour_simpleexchange_recaping Recaping everything together
Here is the complete code of this example. Note the use of the functions
-\ref gras_socket_my_port, \ref gras_socket_peer_name and \ref
-gras_socket_peer_port to retrieve information about who you are connected to.
+\ref xbt_socket_my_port, \ref xbt_socket_peer_name and \ref
+xbt_socket_peer_port to retrieve information about who you are connected to.
\include 02-simple.c
-Here is the output of the simulator. Note that \ref gras_socket_peer_port
+Here is the output of the simulator. Note that \ref xbt_socket_peer_port
actually returns the port number of the <i>server</i> of the peer. This may
sound a bit strange to BSD experts, but it is actually really useful: you
can store this value, and contact your peer afterward passing this number to
\subsection GRAS_ex_mmrpc_serinc 2.a) Server intial settings
All module symbols live in the mmrpc_common.c file. We thus have to
- define \ref GRAS_DEFINE_TYPE_EXTERN to the preprocessor so that the
- \ref GRAS_DEFINE_TYPE symbols don't get included here. Likewise, we use
+ define \ref XBT_DEFINE_TYPE_EXTERN to the preprocessor so that the
+ \ref XBT_DEFINE_TYPE symbols don't get included here. Likewise, we use
\ref XBT_LOG_EXTERNAL_DEFAULT_CATEGORY to get the log category in here.
\dontinclude gras/mmrpc/mmrpc_server.c
given problem you don't really want to implement.
If you want to use DAGs, have a look at the \ref SD_API programming
environment.
- If you want to get a real implementation of your solution, have a look
+ If you want to get a real (but experimental) implementation of your solution, have a look
at the \ref GRAS_API one. 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
of this interface (allowing you to work on your application within the
comfort of the simulator), an implementation suited to real platforms is
also provided (allowing you to really use your application once you're
- done with developing it).
+ done with developing it). It may still contain rought corners as
+ GRAS is not the most used part of SimGrid, however.
GRAS thus constitute a complete grid application developement framework,
encompassing both developer helping tools (the simulator and associated
You should use this programming environment if you want to develop real
applications, ie if the final result of your work is a program which
- may eventually be distributed.
+ may eventually be distributed. Rember however that GRAS is
+ considered as experimental at this point. Help would be welcomed
+ to improve this sorry situation...
+
If you just want to study some heuristics for a given problem you don't
want to implement really (ie, if your result would be a theorem), have a
look at the \ref MSG_API one, or the \ref SD_API one if you need to use DAGs.
/** @brief Helper macro for THROW and THROWF
* @hideinitializer
*
+ * @param _throw_ctx: the throwing context in which we should construct the exception
* @param c: category code (integer)
* @param v: value (integer)
* @param m: message text
/** @brief Classical alias to (char*)
*
- * This of almost no use, beside cosmetics and the GRAS parsing macro (see \ref GRAS_dd_auto).
+ * This of almost no use, beside cosmetics and the XBT datadesc parsing macro (see \ref XBT_dd_auto).
*/
typedef char *xbt_string_t;
e.host = (char *) gras_os_myname();
xbt_ex_setup_backtrace(&e);
}
- XBT_INFO
+ XBT_VERB
("Propagate %s exception ('%s') from '%s' RPC cb back to %s:%d",
(e.remote ? "remote" : "local"), e.msg, msg.type->name,
xbt_socket_peer_name(msg.expe),
int first = 0;
gras_procdata_t *pd;
gras_msg_procdata_t msg_pd;
+ XBT_INFO("GRAS is not well maintained anymore. We consider it to be experimental (and not stable anymore) since SimGrid 3.6. Sorry about it, please consider contributing to improve this situation");
XBT_VERB("Initialize GRAS");
xbt_getpid = gras_os_getpid;