Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Improve a bit the documentation with the help of Guglielmo De Angelis as beta tester
[simgrid.git] / doc / install.doc
index 0d88aff..668f0ca 100644 (file)
@@ -53,16 +53,15 @@ Be careful on Mac, this variable is called DYLD_LIBRARY_PATH and not
 LD_LIBRARY_PATH.
 
 \verbatim
-$ export SIMGRID_ROOT="$HOME/Install/simgrid/"
-$ export SIMGRID_JAVA_ROOT="$HOME/Install/simgrid-java"
+$ export SIMGRID_ROOT="$HOME/Install/simgrid/" # change it to the path where you installed the SimGrid library
+$ export SIMGRID_JAVA_ROOT="$HOME/Install/simgrid-java" # change it to the path where you installed the java bindings of SimGrid 
 $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SIMGRID_ROOT/lib:$SIMGRID_JAVA_ROOT/java
 $ cd examples
 $ java -cp .:../simgrid.jar basic/BasicTest platform.xml basic/basicDeployment.xml
 \endverbatim
 
-
-
-
+If you want to make these settings permanent even after a reboot, you
+need to add the export lines into your ~/.bashrc file, or equivalent.
 
 
 
@@ -87,6 +86,10 @@ migrate stacks in SimGrid. You should be able to follow the README.txt
 that you'll get in the repository, but here is how we did it, just in
 case. The instructions are given for a debian or Ubuntu box, but I
 think you should manage to convert it to your system quite easily.
+Finally, if you're really stuck, you can get the version compiled by
+Jonathan Rouzaud-Cornabas from his web page. This version is known to
+work with SimGrid for sure!
+http://graal.ens-lyon.fr/~jrouzaud/files/corosimple-linux-amd64-20120914.tgz
  
  -# Install mercurial and some dependencies
 \verbatim 
@@ -179,9 +182,23 @@ you want to increase it to run more processes.
 $ $PATH_TO_COROUTINE_JVM/java -Dcoro.stacksPerThread=$STACKS_NUMBER -cp .:../simgrid.jar basic/BasicTest platform.xml basic/basicDeployment.xml
 \endverbatim
 
-If you feel limited in the amount of processes you can run, give a try
-to this command:
+If you reach the point where the creation of new simulated processes
+fail with the message "Can't create coroutine object", you may need to
+increase the relevant system limit with the following command.
 \verbatim 
 sysctl -w vm.max_map_count = 131072
 \endverbatim
+
+The full story is that each coroutine requires two memory maps, and
+that Linux puts a limit on the total amount of memory maps that each
+process can manage (by default, this limit is often at 65535). Since
+the JVM needs a few dozen of such maps on its own (three maps per
+dynamic library -- check /proc/the_pid/maps if you don't believe it),
+this is enough to create over 30,000 simulated processes. But to go
+futher, that limit must be modified. 
+
+If you want to make this change permanent on your machine, edit your
+/etc/sysctl.conf file. Otherwise, you have to redo it by calling
+sysctl after each reboot.
+
  */