SimGrid 3.7.1
Scalable simulation of distributed systems
Packet level simulation
Table of content
  1. Using GTNetS
  2. Using NS3

It is possible to use a packet-level network simulator instead of the default flow-based simulation. You may want to use such an approach if you have doubts about the validity of the default model or if you want to perform some validation experiments. At the moment, we support the GTNetS simulator and since version 3.6.2, ns-3.

Using GTNetS

To enable GTNetS model inside SimGrid it is needed to patch the GTNetS simulator source code and build/install it from scratch

svn checkout svn://scm.gforge.inria.fr/svn/simgrid/contrib/trunk/GTNetS/
cd GTNetS
unzip gtnets-current.zip
tar zxvf gtnets-current-patch.tgz
cd gtnets-current
cat ../00*.patch | patch -p1
cat ../AMD64-FATAL-Removed-DUL_SIZE_DIFF-Added-fPIC-compillin.patch | patch -p1

Due to portability issues it is possible that GTNetS does not compile in your architecture. The patches furnished in SimGrid SVN repository are intended for use in Linux architecture only. Unfortunately, we do not have the time, the money, neither the manpower to guarantee GTNetS portability. We advice you to use one of GTNetS communication channel to get more help in compiling GTNetS.

ln -sf Makefile.linux Makefile
sed -i 's/-fPIC/-fPIC -fpermissive/g' Makefile
make depend
make debug
make opt

It is important to put the full path of your libgtsim-xxxx.so file when creating the symbolic link. Replace < userhome > by some path you have write access to.

ln -sf /<absolute_path>/gtnets_current/libgtsim-debug.so /<userhome>/usr/lib/libgtnets.so
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/<userhome>/usr/lib/libgtnets.so
mkdir /<userhome>/usr/include/gtnets
cp -fr SRC/*.h /<userhome>/usr/include/gtnets

In order to enable gtnets with simgrid you have to give where is gtnets. (path to <gtnets_path>/lib and <gtnets_path>/include)

cmake . -Denable_gtnets=ON -Dgtnets_path=/<userhome>/usr
cd simgrid
make
ctest -R gtnets
gtnets/gtnets gtnets/onelink-p.xml gtnets/onelink-d.xml --cfg=network_model:GTNets

A long version of this HowTo it is available

More about GTNetS simulator at GTNetS Website

Using NS3

It is possible to use discrete-event network simulator (ns-3) for Internet systems instead of the default one.

A ns-3 platform is created according to the platform file you provide in SimGrid format. However from this configuration, we had to set up some extra parameters :

To use ns3 model inside SimGrid you have to install at least the version 3.10 of ns3 simulator.

http://www.nsnam.org/release/ns-allinone-3.12.1.tar.bz2
tar -xf ns-allinone-3.12.1.tar.bz2
cd ns-allinone-3.12.1/ns-3.12.1/
./waf configure --prefix="ns-3_install_directory"
./waf
./waf install

After install ns-3 you should have directories into your "ns-3_install_directory":

You also need to add to the LD_LIBRARY_PATH : "ns-3_install_directory/lib".

In order to enable ns-3 with simgrid you have to give where is ns-3 to the simgrid configuration command. (path to <ns3_path>/lib and <ns3_path>/include)

cmake . -Denable_ns3=ON -Dns3_path=<ns3_path>

With the output of the configuration you can see if ns-3 is detected by included the directory to flags.

Configuration of package `simgrid' on arch (=4):
	     BUILDNAME : 	UNIX
	     SITE      : 	Linux_2.6.38-11-generic_x86_64
	     Release   :	simgrid-3.6.1

	 Compiler: c++ : 	/usr/bin/c++
	        version:	4.6.1
	 Compiler: c   :	/usr/bin/gcc
	        version:	4.6.1

	       CFlags  :	-O3 -finline-functions -funroll-loops -fno-strict-aliasing -L/usr/lib/x86_64-linux-gnu -I/usr/include
	       				-L/home/navarrop/Install/ns3-3.10/lib -I/home/navarrop/Install/ns3-3.10/include -g3  -D_NS3_3_10
	       CPPFlags:	-I/home/navarrop/Install/ns3-3.10/include -L/home/navarrop/Install/ns3-3.10/lib

	Compile Gtnets : 	0
	Compile NS-3   : 	1 ---------------------> Be sure this option is "1" otherwise ns-3 is not activated
	Gtnets path    :
	NS-3 path      : 	/home/navarrop/Install/ns3-3.10
	Compile Lua    :
	Compile Smpi   :    	OFF
	Compile Static :    	OFF
	Compile pcre   :    	AUTO

	Maintainer mode:	OFF
	Supernovae mode:	OFF
	Model checking :	OFF
	Tracing mode   :	OFF
	Jedule  mode   :	OFF
	Latency bound  :	OFF
        Graphviz mode  :

	Simgrid dependencies: 	-lm -lpcre -lpthread -lns3 -lrt
	Gras dependencies   : 	-lm -lpthread -lrt
	Smpi dependencies   :

	INSTALL_PREFIX: 	/usr/local
-- Configuring done
-- Generating done
-- Build files have been written to: /home/navarrop/workspace/simgrid/build

Now you can compile SimGrid

make

Then you can see if ns-3 is well activated by testing

ctest -R ns3

You should see

    Start 182: msg-ns3-thread
1/3 Test #182: msg-ns3-thread ...................   Passed    0.35 sec
    Start 183: msg-ns3-ucontext
2/3 Test #183: msg-ns3-ucontext .................   Passed    0.22 sec
    Start 184: msg-ns3-raw
3/3 Test #184: msg-ns3-raw ......................   Passed    0.23 sec

More about ns-3 simulator (Official website)


Back to the main Simgrid Documentation page The version of SimGrid documented here is v3.7.1.
Documentation of other versions can be found in their respective archive files (directory doc/html).
Generated by doxygen