cmake_minimum_required(VERSION 2.6)
-IF(CMAKE_BUILD_TYPE STREQUAL "ModelChecker")
+IF(CMAKE_BUILD_TYPE STREQUAL "ModelChecker")
SET(enable_coverage ON)
SET(enable_model-checking ON)
SET(enable_lua ON)
* If not, I'll be glad to provide one.
*
*/
-
+
=========================================================================
The exception handling mecanism (mainly living in src/xbt/ex.c and
original and the current version of this code is distributed under the
LGPL v2.1 license.
-=========================================================================
+=========================================================================
The xbt/mmalloc module was adapted from the mmalloc module of gdb.
Both the simgrid version and the original version is distributed under
*
* You should have received a copy of the GNU Lesser General Public
* License along with SimGrid in the file LICENSE-LGPL-2.1;
- * if not, write to the Free Software Foundation, Inc.,
+ * if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-
+
=========================================================================
-Some examples for SMPI were borowed from an IBM test suite.
+Some examples for SMPI were borowed from an IBM test suite.
Their copyright is the following:
/**
* MESSAGE PASSING INTERFACE TEST CASE SUITE
*
* Copyright IBM Corp. 1995
- *
+ *
* IBM Corp. hereby grants a non-exclusive license to use, copy, modify, and
*distribute this software for any purpose and without fee provided that the
*above copyright notice and the following paragraphs appear in all copies.
* ENHANCEMENTS, OR MODIFICATIONS.
* ***************************************************************************
**/
-
+
List of files:
examples/smpi/scatter.c
examples/smpi/reduce.c
examples/smpi/allreduce.c
examples/smpi/alltoall2.c
-
-=========================================================================
+
+=========================================================================
examples/smpi/alltoallv.c was borowed from the MPICH2 test files. It
can be found for example in mpich2 1.2.1.1 under the name
<-------------------- end of MPICH2 COPYRIGHT file -------------------->
-=========================================================================
-
+=========================================================================
+
The directory examples/smpi/NAS contains a tweaked version of the
NAS Parallel Benchmark Team. The original software were retrieved from
it instead of MSG or SMPI by mistake despite is pity state.
* GRAS seems to have very few users (if any), and no one volunteered
to maintain it further. It also induces a lot of XBT code (for
- portability sake), that must be maintained too.
+ portability sake), that must be maintained too.
* For all these reasons, we killed GRAS. If someone wants to revive it
in the future, don't cry, our git history still remembers of GRAS.
* New function: MSG_process_get_number()
SURF:
- * Change the default value of the TCP_gamma constant (maximal size of TCP
- congestion window) to a more realistic 4MiB value. If you notice changes in
- your simulation results, you can fall back to the previous 20k tiny window
+ * Change the default value of the TCP_gamma constant (maximal size of TCP
+ congestion window) to a more realistic 4MiB value. If you notice changes in
+ your simulation results, you can fall back to the previous 20k tiny window
by adding --cfg=network/TCP_gamma:20000 on command line.
XBT:
* Kill synchronized dynars, and xbt_dynar_dopar(). We cannot think of a
usecase where it's really mandatory, and maintaining it was a pain in
- our codebase.
+ our codebase.
* New: xbt_fifo_search(), search an item with a user-provided
comparison function instead of dumb pointer comparison.
$ make
(3) Test it (optional)
-$ make check
+$ make check
$ ctest
(4) Install it
Dependencies
============
-SimGrid archives do not have any firm dependencies.
+SimGrid archives do not have any firm dependencies.
If you want to compile, you must have installed perl and cmake version 2.6 or
above.
The "Grasgory" release. Major changes:
- * Gras was completely removed from this version
+ * Gras was completely removed from this version
_ _____ ___ _
__ _____ _ __ ___(_) ___ _ __ |___ / ( _ ) / |
\ \ / / _ \ '__/ __| |/ _ \| '_ \ |_ \ / _ \ | |
-Welcome to the SimGrid project!
+Welcome to the SimGrid project!
Up-to-date documentation about installation and how to use SimGrid is available
online at http://simgrid.gforge.inria.fr/ and the documentation for the version
src/include -> another location for protected headers. Used by SURF, and
other should be converted, since this is the Right Thing.
- testsuite/ -> The more test the better.
+ testsuite/ -> The more test the better.
Same organization than src/ and include/
Tests are allowed to load some headers of the module they test.
All tests should be listed in run_test.in so that they get
- run on 'make check'.
-
+ run on 'make check'.
+
examples/ -> Supposed to be copy/pastable by the user, so keep it clear and
avoid any kind of trick. In particular, do only include the
public headers here.
- u_toto_t is an union
- u_toto is an union needing 'union' keyword to be used
- toto_t is an 'object' (struct*)
-
+
Please to not call toto_t something else than an 'object' (ie, something you
have to call _new and _free on it).
Example:
typedef struct s_toto {} s_toto_t, *toto_t;
typedef enum {} e_toto_t;
-
+
Moreover, only toto_t (and e_toto_t) are public. The rest (mainly s_toto_t)
is private.
If possible, avoid size_t and use unsigned long instead. If not,
#include <sys/types.h> in all files manipulating size_t
do cast it to unsigned long before printing (and use %lu)
-
+
PRINTF pointer difference (FIXME: advertise %td instead?)
printf ("diff = %ld\n", (long) (pointer2 - pointer1));
in header file (.h) with attributes 'static XBT_INLINE'. It should
not be defined in source file (.c).
-**
+**
** Commenting the source: doxygen
**
****************************************************
-The global structure of the documentation is in doc/modules.doc
+The global structure of the documentation is in doc/modules.doc
The structure of each module (xbt, msg, etc) is in doc/module-<module>.doc
The documentation of each type and macro are also in the public header since
this is were they live.
-The documentation of each function must be in the C file were it lives.
+The documentation of each function must be in the C file were it lives.
Any public element (function, type and macro) must have a @brief part.
want xbt_time to give the simulated clock when running on top of the
simulator, and the host clock when running on a real system. This
could be placed in GRAS (and was, historically), but there is some
-reason to lower it down to XBT.
+reason to lower it down to XBT.
Here is the used naming scheme:
- - xbt_<module>_<func>(): functions working both in SG and RL
+ - xbt_<module>_<func>(): functions working both in SG and RL
- xbt_os_<module>_<func>(): RL functions usable even in simulator
-
+
That way, in libsimgrid, we still can use native functions if we
want to. It may for example be useful to get the real time when
implementing the simulator. Think of the SIGINT handler, which
Here is the file layout:
- xbt_rl_<module>.c: native implementation (xbt_<module>_<func>()).
- Simply call the corresponding xbt_os_<module>_<func>.
+ Simply call the corresponding xbt_os_<module>_<func>.
Part only of libgras.so
-
+
- xbt_sg_<module>.c: SIMIX implementation xbt_<module>_<func>()).
- Simply call the corresponding SIMIX implementation.
+ Simply call the corresponding SIMIX implementation.
Part only of libsimgrid.so
-
+
- xbt_os_<module>.c: body of the functions implementing natively the
stuff (xbt_os_<module>_<func>()).
Part of both libgras.so and libsimgrid.so
-
+
Since there is almost nothing in xbt_rl_module.c and xbt_sg_module.c,
it'd be better to use symbol aliasing here (to declare in the object
code that the same function have two names), but I'm still
Using Git for SimGrid
=====================
-SimGrid developement tree is now managed with Git.
+SimGrid developement tree is now managed with Git.
So, you need to use Git to :
- follow the last development of SimGrid
- each commit should contain only one logical modification
- this modification must be described in the log message. The first line of the
log is a summary, the second line should be empty, the next lines can
- describe more precisely the modifications.
+ describe more precisely the modifications.
Your first line of commit message can begin with a [flag] telling which global