X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5851f7cd3f83be62da5ea9fb8ac0ae6347aef18e..39c935d6d5ee86d153f6f7e6a10d723ae7c57f6f:/examples/README.rst diff --git a/examples/README.rst b/examples/README.rst index 197c54c387..735ca8f79c 100644 --- a/examples/README.rst +++ b/examples/README.rst @@ -440,6 +440,13 @@ Executions on the CPU computational kernels that span over several machines, such as a PDGEM and the other ScaLAPACK routines. Note that this only works with the "ptask_L07" host model (``--cfg=host/model:ptask_L07``). + + This example demonstrates several kind of parallel tasks: regular + ones, communication-only (without computation), computation-only + (without communication), synchronization-only (neither + communication nor computation). It also shows how to reconfigure a + task after its start, to change the amount of hosts it runs onto. + This allows to simulate malleable tasks. .. tabs:: @@ -449,7 +456,7 @@ Executions on the CPU - **Using Pstates on a host:** This example shows how define a set of pstates in the XML. The current pstate - of an host can then be accessed and changed from the program. + of a host can then be accessed and changed from the program. .. tabs:: @@ -717,6 +724,71 @@ options to see the task executions: .. example-tab:: examples/s4u/trace-platform/s4u-trace-platform.cpp + - **Setting Categories** + This example declares several tracing categories to that are used to + classify its tasks. When the program is executed, the tracing mechanism + registers the resource utilization of hosts and links according to these + categories. Recommended options: + ``--cfg=tracing:yes --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes`` + + .. tabs:: + + .. example-tab:: examples/s4u/trace-categories/s4u-trace-categories.cpp + + - **Master Workers tracing** + This is an augmented version of our basic master/worker example using + several tracing features. It traces resource usage, sorted out in several + categories; Trace marks and user variables are also used. Recommended + options: ``--cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes`` + + .. tabs:: + + .. example-tab:: examples/s4u/trace-masterworkers/s4u-trace-masterworkers.cpp + + - **Process migration tracing** + This version is enhanced so that the process migrations can be displayed + as arrows in a Gantt-chart visualization. Recommended options to that + extend: ``--cfg=tracing:yes --cfg=tracing/actor:yes`` + + .. tabs:: + + .. example-tab:: examples/s4u/trace-process-migration/s4u-trace-process-migration.cpp + +.. + TODO: These tracing examples should be integrated in the examples to not + duplicate the C++ files. A full command line to see the result in the right + tool (vite/FrameSoc) should be given along with some screenshots. + +Tracing user variables +---------------------- + +You can also attach your own variables to any resource described in the platform +file. The following examples illustrate this feature. They have to be run with +the following options: ``--cfg=tracing:yes --cfg=tracing/platform:yes`` + + - **Attaching variables to Hosts** + + .. tabs:: + + .. example-tab:: examples/s4u/trace-host-user-variables/s4u-trace-host-user-variables.cpp + + - **Attaching variables to Links** + The tricky part is that you have to know the name of the link you want to + enhance with a variable. + + .. tabs:: + + .. example-tab:: examples/s4u/trace-link-user-variables/s4u-trace-link-user-variables.cpp + + - **Attaching variables to network Routes** + It is often easier to update a given variable for all links of a given + network path (identified by its source and destination hosts) instead of + knowing the name of each specific link. + + .. tabs:: + + .. example-tab:: examples/s4u/trace-route-user-variables/s4u-trace-route-user-variables.cpp + ======================== Larger SimGrid Examplars ======================== @@ -946,6 +1018,34 @@ Model-Related Examples .. showfile:: examples/platforms/wifi.xml :language: xml +=============== +Plugin Examples +=============== + +It is possible to extend SimGrid without modifying its internals by +attaching code to the existing signals and by adding extra data to the +simulation objects through extensions. How to do that is not exactly +documented yet, and you should look for examples in the src/plugins +directory. + +This section documents how the existing plugins can be used. Remember +that you are very welcome to modify the plugins to fit your needs. It +should be much easier than modifying the SimGrid kernel. + + - **Monitoring the host load** + + .. tabs:: + + .. example-tab:: examples/s4u/plugin-host-load/s4u-plugin-host-load.cpp + + .. example-tab:: examples/c/plugin-host-load/plugin-host-load.c + + - **Monitoring the link load** + + .. tabs:: + + .. example-tab:: examples/s4u/plugin-link-load/s4u-plugin-link-load.cpp + ======================= Model-Checking Examples =======================