X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2613dece7ac1a22cb1edbed4e2803fc0a3e7db67..adbdcbddadcbd685b72259874d1ebfd9cbbcc497:/docs/source/Installing_SimGrid.rst diff --git a/docs/source/Installing_SimGrid.rst b/docs/source/Installing_SimGrid.rst index 86d9a60aed..39cc872e8f 100644 --- a/docs/source/Installing_SimGrid.rst +++ b/docs/source/Installing_SimGrid.rst @@ -43,6 +43,17 @@ email. .. _simgrid AUR package: https://aur.archlinux.org/packages/simgrid/ .. _AUR official documentation: https://wiki.archlinux.org/title/Arch_User_Repository +Binaries from macOS +^^^^^^^^^^^^^^^^^^^ + +SimGrid can be found in the Homebrew package manager. Troubleshooting: + +warning: dylib (libsimgrid.dylib) was built for newer macOS version (14.0) than being linked (13.3) + This was reported with the SimGrid version from Homebrew on a Mac book air M1 (ARM). + The solution is simply to export this variable before the compilation of your binaries: + + ``export MACOSX_DEPLOYMENT_TARGET=14.0`` + .. _deprecation_policy: Version numbering and deprecation @@ -75,6 +86,8 @@ but that's even more so for these unreleased versions). Installing from the Source -------------------------- +.. _install_src_deps: + Getting the Dependencies ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -88,15 +101,26 @@ cmake (v3.5). ``ccmake`` provides a nicer graphical interface compared to ``cmake``. Press ``t`` in ``ccmake`` if you need to see absolutely all configuration options (e.g., if your Python installation is not standard). -boost (at least v1.48, v1.59 recommended) - - On Debian / Ubuntu: ``apt install libboost-dev libboost-context-dev`` +boost mandatory components (at least v1.48, v1.59 recommended) + - On Debian / Ubuntu: ``apt install libboost-dev`` - On CentOS / Fedora: ``dnf install boost-devel`` - On macOS with homebrew: ``brew install boost`` +boost recommended components (optional). + - boost-context may be used instead of our own fast context switching code which only works on amd64. + - boost-stacktrace is used to get nice stacktraces on errors in SimGrid. + - On Debian / Ubuntu: ``apt install libboost-context-dev libboost-stacktrace-dev`` +python bindings (optional): + - On Debian / Ubuntu: ``apt install pybind11-dev python3-dev`` +Model-checking mandatory dependencies + - On Debian / Ubuntu: ``apt install libevent-dev`` Eigen3 (optional) - On Debian / Ubuntu: ``apt install libeigen3-dev`` - On CentOS / Fedora: ``dnf install eigen3-devel`` - On macOS with homebrew: ``brew install eigen`` - - Use EIGEN3_HINT to specify where it's installed if cmake doesn't find it automatically. + - Use EIGEN3_HINT to specify where it's installed if cmake doesn't find it automatically. Set EIGEN3_HINT=OFF to disable detection even if it could be found. +JSON (optional, for the DAG wfcommons loader) + - On Debian / Ubuntu: ``apt install nlohmann-json3-dev`` + - Use nlohmann_json_HINT to specify where it's installed if cmake doesn't find it automatically. For platform-specific details, please see below. @@ -182,7 +206,7 @@ Note that the dot at the end is mandatory (see :ref:`install_cmake_outsrc`). .. code-block:: console - $ cmake -DCC=clang -DCXX=clang++ . + $ cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ . SimGrid compilation options """"""""""""""""""""""""""" @@ -228,10 +252,9 @@ enable_mallocators (ON/off) Activates our internal memory caching mechanism. This produces faster code, but it may fool the debuggers. -enable_model-checking (on/OFF) - Activates the formal verification mode. This will **hinder - simulation speed** even when the model checker is not activated at - run time. +enable_model-checking (ON/off) + Activates the verification mode. This should not impact the performance of your simulations if you build it but don't use it, + but you can still disable it to save some compilation time. enable_ns3 (on/OFF) Activates the ns-3 bindings. See section :ref:`models_ns3`. @@ -239,10 +262,13 @@ enable_ns3 (on/OFF) enable_smpi (ON/off) Allows one to run MPI code on top of SimGrid. -enable_smpi_MBI_testsuite (on/OFF) - Adds many extra tests for the model checker module. +enable_testsuite_McMini (on/OFF) + Adds several extra tests for the model checker module (targeting threaded applications). -enable_smpi_MPICH3_testsuite (on/OFF) +enable_testsuite_smpi_MBI (on/OFF) + Adds many extra tests for the model checker module (targeting MPI applications). + +enable_testsuite_smpi_MPICH3 (on/OFF) Adds many extra tests for the MPI module. minimal-bindings (on/OFF) @@ -254,6 +280,7 @@ NS3_HINT (empty by default) EIGEN3_HINT (empty by default) Alternative path into which Eigen3 should be searched for. + Providing the value OFF as an hint will disable the detection alltogether. SIMGRID_PYTHON_LIBDIR (auto-detected) Where to install the Python module library. By default, it is set to the cmake Python3_SITEARCH variable if installing to /usr, @@ -310,7 +337,7 @@ existing targets are not really for public consumption so don't worry if some do not work for you. - **make**: Build the core of SimGrid that gets installed, but not any example. -- **make tests**: Build the tests and examples. +- **make examples**: Build the examples, which are needed by the tests. - **make simgrid**: Build only the SimGrid library. Not any example nor the helper tools. - **make s4u-comm-pingpong**: Build only this example (works for any example) - **make python-bindings**: Build the Python bindings @@ -386,7 +413,7 @@ Windows-specific instructions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The best solution to get SimGrid working on windows is to install the -Ubuntu subsystem of Windows 10. All of SimGrid (but the model checker) +Ubuntu subsystem of Windows 10. All of SimGrid works in this setting. Native builds never really worked, and they are disabled starting with SimGrid v3.33. @@ -394,7 +421,7 @@ Python-specific instructions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Once you have the Python development headers installed as well as a -recent version of the `pybind11 ` +recent version of the `pybind11 `_ module (version at least 2.4), recompiling the Python bindings from the source should be as easy as: @@ -409,3 +436,17 @@ simgrid without downloading the source with pip: .. code-block:: console $ pip install simgrid + +If you installed SimGrid to a non-standard directory (such as ``/opt/simgrid`` as advised earlier), you should tell python where +to find the libraries as follows (notice the elements suffixed to the configured prefix). + +.. code-block:: console + + $ PYTHONPATH="/opt/simgrid/lib/python3/dist-packages" LD_LIBRARY_PATH="/opt/simgrid/lib" python your_script.py + +You can add those variables to your bash profile to not specify it each time by adding these lines to your ``~/.profile``: + +.. code-block:: console + + export PYTHONPATH="$PYTHONPATH:/opt/simgrid/lib/python3/dist-packages" + export LD_LIBRARY_PATH="$PYTHONPATH:/opt/simgrid/lib"