X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b8ce4382ed02101c7522301f2a866bfe164b157e..521daa8271ac2778d8b2944be25daae65d3540a1:/doc/FAQ.doc diff --git a/doc/FAQ.doc b/doc/FAQ.doc index 9a57335e4a..4b028bd13e 100644 --- a/doc/FAQ.doc +++ b/doc/FAQ.doc @@ -103,20 +103,26 @@ CMake permits to developers to compil projects on different plateforms. Then man \subsubsection faq_intro3 What cmake need? CMake needs some prerequists like : + +For Unix and MacOS: \li make + \li perl and libpcre \li c, c++ and java compiler regards to developers \li ccmake for graphical used of CMake \li cmake (download page) +For Windows : + \li cmake 2.8 (download page) + \li perl strawberry (download page) + \li pcre-7.0 (download page) + \subsubsection faq_cmakeoption1 Liste of options \verbatim "cmake -D[name]=[value] ... ./" - + [name] enable_gtnets [value] ON/OFF or TRUE/FALSE or 1/0 - enable_java ON/OFF or TRUE/FALSE or 1/0 enable_lua ON/OFF or TRUE/FALSE or 1/0 - enable_ruby ON/OFF or TRUE/FALSE or 1/0 enable_compile_optimizations ON/OFF or TRUE/FALSE or 1/0 enable_compile_warnings ON/OFF or TRUE/FALSE or 1/0 enable_smpi ON/OFF or TRUE/FALSE or 1/0 @@ -124,26 +130,25 @@ CMake needs some prerequists like : enable_supernovae ON/OFF or TRUE/FALSE or 1/0 enable_tracing ON/OFF or TRUE/FALSE or 1/0 enable_coverage ON/OFF or TRUE/FALSE or 1/0 - enable_memcheck ON/OFF or TRUE/FALSE or 1/0 + enable_memcheck ON/OFF or TRUE/FALSE or 1/0 enable_model-checking ON/OFF or TRUE/FALSE or 1/0 - enable_doc ON/OFF or TRUE/FALSE or 1/0 + enable_debug ON/OFF or TRUE/FALSE or 1/0 + enable_jedule ON/OFF or TRUE/FALSE or 1/0 + enable_latency_bound_tracking ON/OFF or TRUE/FALSE or 1/0 + enable_lib_static ON/OFF or TRUE/FALSE or 1/0 + enable_pcre ON/OFF or TRUE/FALSE or 1/0 + custom_flags gtnets_path - prefix - BIBTEX2HTML - with_context auto/ucontext/pthread/window - pipol_user + CMAKE_INSTALL_PREFIX + pipol_user \endverbatim \subsubsection faq_cmakeoption2 Options explaination \li enable_gtnets : set to true implie that user wants to use gtnets. - \li enable_java : set to true implie that user wants to add java langage into simgrid compilation. - \li enable_lua : set to true implie that user wants to add lua langage into simgrid compilation. - \li enable_ruby : set to true implie that user wants to add ruby langage into simgrid compilation. - \li enable_compile_optimizations : add flags "-O3 -finline-functions -funroll-loops -fno-strict-aliasing" \li enable_compile_warnings : add flags "-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror" @@ -154,23 +159,29 @@ CMake needs some prerequists like : \li enable_supernovae : set to true make one file for each lib and compile with those generated files. - \li enable_tracing : To enable the generation of simulation traces for visualization + \li enable_tracing : To enable the generation of simulation traces for visualization. \li enable_coverage : When set to true this option enable code coverage by setting -fprofile-arcs -ftest-coverage flags. \li enable_memcheck : When set to true this option enable tests for memcheck. \li enable_model-checking : Enable the model checking when set to true. + + \li enable_debug : If enable_debug is set to 'off' Simgrid compil flag has '-DNDEBUG' option. - \li enable_doc : Generate the documentation for simgrid with make command. (You can also make the doc manually with command : make html) + \li enable_jedule : To enable jedule mode, which creates visualizations of task schedules with Simdag. + + \li enable_latency_bound_tracking : Set to on if you want to be warned when communications are limited by round trip time. + + \li enable_lib_static : Enable generated Simgrid and smpi static libraries. + + \li enable_pcre : Use or not the pcre lib for memory optimization. + + \li custom_flags : If user wants to use a specific flag during compilation, give here. \li gtnets_path : Path to gtnets install directory (ex /usr) - \li prefix : Path where are installed lib/ doc/ and include/ directories (ex /usr/local) - - \li BIBTEX2HTML : Path where is installed bibtex2html. - - \li with context : specify which context the user wants to use. + \li CMAKE_INSTALL_PREFIX : Path where are installed lib/ doc/ and include/ directories (ex /usr/local) \li pipol_user : specify your pipol username if you want to use the pipol-remote command. @@ -181,23 +192,23 @@ Those options are initialized the first time you launch "cmake ." whithout speci \verbatim enable_gtnets on enable_lua on -enable_ruby on -enable_java off -enable_compile_optimizations off -enable_compile_warnings off enable_smpi on +enable_supernovae on +enable_tracing on +enable_compile_optimizations on +enable_debug on +enable_pcre on +enable_compile_warnings off enable_maintainer_mode off -enable_supernovae off -enable_tracing off enable_coverage off enable_memcheck off enable_model-checking off -enable_doc off - +enable_jedule off +enable_latency_bound_tracking off +enable_lib_static off +CMAKE_INSTALL_PREFIX /usr/local +custom_flags null gtnets_path null -prefix null -BIBTEX2HTML null -with_context auto pipol_user null \endverbatim @@ -215,6 +226,13 @@ cmake -D[name]=[value] ... ./ make \endverbatim +On Windows + +\verbatim +cmake -G"Unix Makefiles" -D[name]=[value] ... ./ +gmake +\endverbatim + \subsubsection faq_cmakecompilation2 With ccmake tool. \verbatim @@ -250,21 +268,16 @@ Those two kind of compilation permit to delete files created by compilation easi \li CMake \verbatim -cmake configure the project -make build all targets -make VERBOSE=1 build all targets and print build command lines -make check test all targets and summarize -make dist make the distrib -make distcheck check the dist (make + make dist + make check) -make install install the project (doc/ lib/ include/) -make uninstall uninstall the project (doc/ lib/ include/) -make clean clean all targets -make java-clean clean files created by java option -make doc-clean clean files created for making doc -make supernovae-clean clean supernovae files -make maintainer-clean clean maintainer files -make all-clean execute the 5 upper clean command -make html Create simgrid documentation +cmake configure the project +make build all targets +make VERBOSE=1 build all targets and print build command lines +make check test all targets and summarize +make dist make the distrib +make distcheck check the dist (make + make dist + make check) +make install install the project (doc/ bin/ lib/ include/) +make uninstall uninstall the project (doc/ bin/ lib/ include/) +make clean clean all targets +make simgrid_documentation Create simgrid documentation \endverbatim When the project have been succesfully compiling and build you can make tests. @@ -286,161 +299,25 @@ ctest -D NightlyMemoryCheck If you want to test before make a commit you can simply make "ctest -D Experimental" and then you can visualize results submitted into Cdash. (Go to Cdash site). -\subsubsection faq_cmakecompilation5 Examples for different mode. - -\li Mode maintainer - -cmake -Denable_maintainer_mode=on ./ -\verbatim --- lookign for config.h -with_context auto change to ucontext -GIT_DATE : 2010-05-04~09-59-15 -GIT_VERSION : 53ec816 -GIT_SVN_VERSION : 7669 - -Configuration of package `simgrid' (revision 7669) on arch (=4): - BUILDNAME : UCONTEXT - SITE : Linux_2.6.31-21-generic_x86_64 - Release : simgrid-3.4~rev7669 - - Compiler: c++ : /usr/bin/c++ - version: c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1 - Compiler: c : /usr/bin/gcc - version: gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1 - - CFlags : -I/usr/lib/ruby/1.8/x86_64-linux -I/usr/include/lua5.1 -g3 - CPPFlags: - LDFlags : -L/usr/lib/ - - Context backend: ucontext - Compile Gtnets : 0 - Gtnets path : - Compile Java : 0 - Compile Lua : 1 - Compile Ruby : 1 - - Compile Smpi : ON - Maintainer mode: ON - Supernovae mode: OFF - Tracing mode : OFF - - Simgrid dependencies: -lm -lruby1.8 -module -ldl -llua5.1 -lrt - Gras dependencies : -lm -lpthread -lrt - Smpi dependencies : - - INSTALL_PREFIX: /usr/local - --- Configuring done --- Generating done --- Build files have been written to: /home/navarrop/Developments/simgrid -\endverbatim - -\li Mode supernovae - -cmake -Dsupernovae=on ./ -\verbatim --- lookign for config.h -with_context auto change to ucontext -GIT_DATE : 2010-05-04~09-59-15 -GIT_VERSION : 53ec816 -GIT_SVN_VERSION : 7669 - -Configuration of package `simgrid' (revision 7669) on arch (=4): - BUILDNAME : SUPERNOVAE - SITE : Linux_2.6.31-21-generic_x86_64 - Release : simgrid-3.4~rev7669 - - Compiler: c++ : /usr/bin/c++ - version: c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1 - Compiler: c : /usr/bin/gcc - version: gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1 - - CFlags : -O3 -finline-functions -funroll-loops -fno-strict-aliasing -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror -I/usr/lib/ruby/1.8/x86_64-linux -I/usr/include/lua5.1 -g3 - CPPFlags: - LDFlags : -L/usr/lib/ - - Context backend: ucontext - Compile Gtnets : 0 - Gtnets path : - Compile Java : 0 - Compile Lua : 1 - Compile Ruby : 1 - - Compile Smpi : ON - Maintainer mode: OFF - Supernovae mode: OFF - Tracing mode : OFF - - Simgrid dependencies: -lm -lruby1.8 -module -ldl -llua5.1 -lrt - Gras dependencies : -lm -lpthread -lrt - Smpi dependencies : - - INSTALL_PREFIX: /usr/local - --- Configuring done --- Generating done --- Build files have been written to: /home/navarrop/Developments/simgrid - -\endverbatim - -\li Mode GTnetS - -cmake -Dgtnets_path=/home/navarrop/Bureau/usr/ ./ -\verbatim --- lookign for config.h -with_context auto change to ucontext -GIT_DATE : 2010-05-04~09-59-15 -GIT_VERSION : 53ec816 -GIT_SVN_VERSION : 7669 - -Configuration of package `simgrid' (revision 7669) on arch (=4): - BUILDNAME : GTNETS - SITE : Linux_2.6.31-21-generic_x86_64 - Release : simgrid-3.4~rev7669 - - Compiler: c++ : /usr/bin/c++ - version: c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1 - Compiler: c : /usr/bin/gcc - version: gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1 - - CFlags : -O3 -finline-functions -funroll-loops -fno-strict-aliasing -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror -I/usr/lib/ruby/1.8/x86_64-linux -L/usr/lib -I/usr/include/gtnets -I/usr/include/lua5.1 -g3 - CPPFlags: -L/usr/lib -I/usr/include/gtnets - LDFlags : -L/usr/lib/ - - Context backend: ucontext - Compile Gtnets : 1 - Gtnets path : /usr - Compile Java : 0 - Compile Lua : 1 - Compile Ruby : 1 - - Compile Smpi : ON - Maintainer mode: OFF - Supernovae mode: OFF - Tracing mode : OFF - - Simgrid dependencies: -lm -lruby1.8 -module -ldl -llua5.1 -lgtnets -lrt - Gras dependencies : -lm -lpthread -lrt - Smpi dependencies : - - INSTALL_PREFIX: /usr/local - --- Configuring done --- Generating done --- Build files have been written to: /home/navarrop/Developments/simgrid - -\endverbatim - \subsection faq_cmakeinstall How to install with cmake? \subsubsection faq_cmakeinstall1 From svn. +For Unix and MacOS: \verbatim -cmake -Denable_maintainer_mode=on -Dprefix=/home/navarrop/Bureau/install_simgrid ./ +cmake -Denable_maintainer_mode=on -DCMAKE_INSTALL_PREFIX=/home/navarrop/Bureau/install_simgrid ./ make make install \endverbatim +For Windows: + +\verbatim +cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=C:\simgrid_install ./ +gmake +gmake install +\endverbatim + \subsubsection faq_cmakeinstall2 From a distrib \verbatim @@ -449,11 +326,58 @@ For version 3.4.1 and 3.4 make make install-simgrid Since version 3.5 - cmake -Dprefix=/home/navarrop/Bureau/install_simgrid ./ + cmake -DCMAKE_INSTALL_PREFIX=/home/navarrop/Bureau/install_simgrid ./ make make install \endverbatim +\subsection faq_cmakeWHATisInstall What is installed by cmake? + +\subsubsection faq_cmakeWHATisInstallBIN CMAKE_INSTALL_PREFIX/bin +\verbatim +tesh +graphicator +gras_stub_generator +simgrid_update_xml +simgrid-colorizer +smpicc +smpiff +smpif2c +smpirun +\endverbatim +\subsubsection faq_cmakeWHATisInstallDOC CMAKE_INSTALL_PREFIX/doc +\verbatim +simgrid/examples/ +simgrid/html/ +\endverbatim +\subsubsection faq_cmakeWHATisInstallINCLUDE CMAKE_INSTALL_PREFIX/include +\verbatim +amok/ +gras/ +instr/ +mc/ +msg/ +simdag/ +simix/ +smpi/ +surf/ +xbt/ +gras.h +simgrid_config.h +xbt.h +\endverbatim +\subsubsection faq_cmakeWHATisInstallLIB CMAKE_INSTALL_PREFIX/lib +\verbatim +libgras.so.3.5 +libsimgrid.so.3.5 +libsmpi.so.3.5 +libsimgrid.so -> libsimgrid.so.3.5 +libgras.so -> libgras.so.3.5 +libsmpi.so -> libsmpi.so.3.5 +lua/5.1/simgrid.so -> ../../libsimgrid.so +ruby/1.9.0/x86_64-linux/libsimgrid.so -> ../../../libsimgrid.so +ruby/1.9.0/x86_64-linux/simgrid.rb +\endverbatim \subsection faq_cmakehowto How to modified sources files for developers \subsubsection faq_cmakehowto1 Add an executable or examples. @@ -593,133 +517,6 @@ bob@caraja:~/Developments/simgrid/tmp_build$ make pipol_experimental_list_images bob@caraja:~/Developments/simgrid/tmp_build$ make pipol_test_list_images \endverbatim -\subsection faq_cmakeExplain Explaination of sources files for cmake - -\li CMakeLists.txt - -Those files are the "main parts". One located at the project directory call all the cmake sources files. The others -are little projects called by the first for make examples. - -\li CompleteInFiles.cmake - -Complete all .in files and define Variables for h files - -\li GenerateDoc.cmake - -This file make the html documentation. - -\li MakeExeLib.cmake - -Here are callled all "CMakeLists.txt" for make executables and libraries. - -\li PrintArgs.cmake - -This file is called at the end of the build for summarize environment variables. - -\li DefinePackages.cmake - -Here is defined sources packages for compiling libs. - -\li Flags.cmake - -Defined flags which are used for compiling sources. - -\li Supernovae.cmake - -Here are made files for the supernovae mode. - -\li Distrib.cmake - -Here is defined packages for install simgrid and make a distribution. - -\li MaintainerMode.cmake - -Part where are generated source files for maintainer mode. - -\li Option.cmake - -Here are defined options and initialized values. - -\li AddTests.cmake - -All tests are listed. - -\li CTestConfig.cmake - -Properties which link tests with dashboard. - -\subsection faq_cmakeList List of files added for cmake - -Here is a list of files involved into cmake build (relative to project directory path) : -\verbatim - -Cmake sources: - ./doc/CMakeLists.txt - ./buildtools/Cmake/AddTests.cmake - ./buildtools/Cmake/CompleteInFiles.cmake - ./buildtools/Cmake/CTestConfig.cmake - ./buildtools/Cmake/DefinePackages.cmake - ./buildtools/Cmake/Distrib.cmake - ./buildtools/Cmake/Flags.cmake - ./buildtools/Cmake/GenerateDocs.cmake - ./buildtools/Cmake/MaintainerMode.cmake - ./buildtools/Cmake/MakeExeLib.cmake - ./buildtools/Cmake/MakeExeLibWin.cmake - ./buildtools/Cmake/MakeJava.cmake - ./buildtools/Cmake/Option.cmake - ./buildtools/Cmake/PrintArgs.cmake - ./buildtools/Cmake/Supernovae.cmake - -CMakeLists for each binaries or examples: - ./CMakeLists.txt - ./src/CMakeLists.txt - ./teshsuite/gras/empty_main/CMakeLists.txt - ./teshsuite/gras/small_sleep/CMakeLists.txt - ./teshsuite/gras/datadesc/CMakeLists.txt - ./teshsuite/gras/msg_handle/CMakeLists.txt - ./teshsuite/simdag/CMakeLists.txt - ./teshsuite/simdag/partask/CMakeLists.txt - ./teshsuite/simdag/platforms/CMakeLists.txt - ./teshsuite/simdag/network/CMakeLists.txt - ./teshsuite/simdag/network/mxn/CMakeLists.txt - ./teshsuite/simdag/network/p2p/CMakeLists.txt - ./teshsuite/xbt/CMakeLists.txt - ./teshsuite/msg/CMakeLists.txt - ./tools/gras/CMakeLists.txt - ./tools/tesh/CMakeLists.txt - ./testsuite/simdag/CMakeLists.txt - ./testsuite/xbt/CMakeLists.txt - ./testsuite/surf/CMakeLists.txt - ./examples/gras/properties/CMakeLists.txt - ./examples/gras/ping/CMakeLists.txt - ./examples/gras/pmm/CMakeLists.txt - ./examples/gras/mmrpc/CMakeLists.txt - ./examples/gras/synchro/CMakeLists.txt - ./examples/gras/timer/CMakeLists.txt - ./examples/gras/mutual_exclusion/simple_token/CMakeLists.txt - ./examples/gras/spawn/CMakeLists.txt - ./examples/gras/chrono/CMakeLists.txt - ./examples/gras/rpc/CMakeLists.txt - ./examples/gras/all2all/CMakeLists.txt - ./examples/simdag/properties/CMakeLists.txt - ./examples/simdag/CMakeLists.txt - ./examples/simdag/metaxml/CMakeLists.txt - ./examples/simdag/dax/CMakeLists.txt - ./examples/smpi/CMakeLists.txt - ./examples/amok/bandwidth/CMakeLists.txt - ./examples/amok/saturate/CMakeLists.txt - ./examples/msg/priority/CMakeLists.txt - ./examples/msg/properties/CMakeLists.txt - ./examples/msg/migration/CMakeLists.txt - ./examples/msg/gtnets/CMakeLists.txt - ./examples/msg/parallel_task/CMakeLists.txt - ./examples/msg/trace/CMakeLists.txt - ./examples/msg/suspend/CMakeLists.txt - ./examples/msg/masterslave/CMakeLists.txt - ./examples/msg/actions/CMakeLists.txt - ./examples/msg/sendrecv/CMakeLists.txt -\endverbatim - \section faq_installation Installing the SimGrid library with Autotools (valid until V3.3.4) Many people have been asking me questions on how to use SimGrid. Quite @@ -1138,7 +935,7 @@ int sender() calloc(1,sizeof(double))); *((double*) task->data) = MSG_get_clock(); MSG_task_put(task, slaves[i % slaves_count], PORT_22); - INFO0("Send completed"); + XBT_INFO("Send completed"); return 0; } int receiver() @@ -1151,7 +948,7 @@ int receiver() time2 = MSG_get_clock(); if(time1<*((double *)task->data)) time1 = *((double *) task->data); - INFO1("Communication time : \"%f\" ", time2-time1); + XBT_INFO("Communication time : \"%f\" ", time2-time1); free(task->data); MSG_task_destroy(task); return 0; @@ -1557,7 +1354,7 @@ workstation_ptask_L07.c: /* Parse the file */ surf_parse_open(file); - xbt_assert1((!surf_parse()), "Parse error in %s", file); + xbt_assert(!surf_parse(), "Parse error in %s", file); surf_parse_close(); \endverbatim @@ -1686,7 +1483,7 @@ and build/install it from scratch - Enable GTNetS support in SimGrid -In order to enable gtnets with simgrid you have to give where is gtnets. (path to /lib and /include) +In order to enable gtnets with simgrid you have to give where is gtnets. (path to \/lib and \/include) \verbatim Since v3.4 (with cmake) @@ -1865,7 +1662,7 @@ tracing in the trace file. You have to enable this option to others take effect. \li \c -tracing/platform +tracing/categorized : It activates the categorized resource utilization tracing. It should be enabled if tracing categories are used by this simulator.