X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/614c681fbb931bf120a2f4ddd6a0c682df021041..2807fde4fd1f59c230d69a934634c5dfb77905f2:/examples/msg/README.doc?ds=sidebyside diff --git a/examples/msg/README.doc b/examples/msg/README.doc index c2c9b0a08c..63afa511bc 100644 --- a/examples/msg/README.doc +++ b/examples/msg/README.doc @@ -2,11 +2,11 @@ This file follows the Doxygen syntax to be included in the documentation, but it should remain readable directly. /** - @defgroup MSG_examples MSG examples + @defgroup msg_examples MSG examples @ingroup MSG_API @brief Find the MSG example fitting your needs from the extensive set provided in the archive. - - @ref msg_ex_basic + - @ref msg_ex_basics - @ref msg_ex_async - @ref msg_ex_process - @ref msg_ex_tracing @@ -14,17 +14,16 @@ documentation, but it should remain readable directly. - @ref msg_ex_models - @ref msg_ex_ns3 - @ref msg_ex_io - - @ref msg_ex_actions - @ref msg_ex_apps - @ref msg_ex_misc - -@section msg_ex_basic Basic examples and features + +@section msg_ex_basics Basic examples and features - Ping Pong: @ref examples/msg/app-pingpong/app-pingpong.c\n It's hard to think of a simpler example: it is just sending one message back and forth. The tesh file laying in the directory show how to start the - simulator binary, enlighting how to pass options to the simulators + simulator binary, highlighting how to pass options to the simulators (as detailed in Section \ref options). - Token Ring. @@ -38,7 +37,7 @@ documentation, but it should remain readable directly. @ref examples/msg/app-masterworker/app-masterworker.c\n Another good old example, where one Master process has a bunch of task to dispatch to a set of several Worker processes. It is fully - commented in @ref MSG_ex_master_worker. + commented in @ref msg_ex_master_worker. @section msg_ex_async Asynchronous communications @@ -60,11 +59,11 @@ shipped in the archive: until all activities in a given set have completed. - Waiting for the first completed communication in a set. - @ref examples/msg/async-waitall/async-waitany.c\n + @ref examples/msg/async-waitany/async-waitany.c\n The @ref MSG_comm_waitany function is useful when you want to block until one activity of the set completes, no matter which terminates first. - + @section msg_ex_process Acting on Processes - Creating processes. @@ -85,6 +84,12 @@ shipped in the archive: @ref examples/msg/process-migration/process-migration.c \n Processes can move or be moved from a host to another with the @ref MSG_process_migrate function. + - Yielding to other processes. + @ref examples/msg/process-yield/process-yield.c\n + The @ref MSG_process_yield function interrupts the execution of the + current process, leaving a chance to run to the other processes + that are ready to run at the exact same timestamp + - Controling the process life cycle from the XML. @ref examples/msg/process-startkilltime/process-startkilltime.c \n You can specify a start time and a kill time in the deployment @@ -112,7 +117,7 @@ options to see the task executions: 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. Recommanded options: - @verbatim --cfg=tracing:yes --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:viva_cat.plist --cfg=viva/uncategorized:viva_uncat.plist + @verbatim --cfg=tracing:yes --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes @endverbatim - Master Workers tracing. @@ -121,7 +126,7 @@ options to see the task executions: using several tracing features. It traces resource usage, sorted out in several categories; Trace marks and user variables are also used. Recommanded options: - @verbatim --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:viva_cat.plist --cfg=viva/uncategorized:viva_uncat.plist + @verbatim --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes @endverbatim - Process migration tracing. @@ -133,8 +138,8 @@ options to see the task executions: @endverbatim TODO: These tracing examples should be integrated in the examples to -not dupplicate the C files. A full command line to see the result in -the right tool (viva/vite/FrameSoc) should be given along with some +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. @subsection msg_ex_tracing_user_variables Tracing user variables @@ -144,34 +149,30 @@ the platform file. The following examples illustrate this feature. They have to be run with the following options: @verbatim --cfg=tracing:yes --cfg=tracing/platform:yes @endverbatim - + - Attaching variables to Hosts. - @ref examples/msg/trace-user-variables/trace-user-variables.c - + @ref examples/msg/trace-host-user-variables/trace-host-user-variables.c + - Attaching variables to Links. @ref examples/msg/trace-link-user-variables/trace-link-user-variables.c \n The tricky part is that you have to know the name of the link you want to enhance with a variable. - + - Attaching variables to network Routes - @ref examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c \n + @ref examples/msg/trace-route-user-variables/trace-route-user-variables.c \n 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. -TODO: rename trace-user-variables to trace-host-user-variables - -TODO: rename trace-link-srcdst-user-variables to trace-route-user-variables - @section msg_ex_models Models-related examples @subsection msg_ex_ns3 NS3 as a SimGrid Network Model This example demonstrates how to use the bindings to the Network -Simulator, as explained in @ref pls. The most +Simulator, as explained in @ref pls_ns3. The most interesting is probably not the C files since they are unchanged from the other simulations, but the associated files, such as the platform -file to see how to declare a platform to be used with the PLS bindings +file to see how to declare a platform to be used with the ns-3 bindings of SimGrid and the tesh file to see how to actually start a simulation in these settings. @@ -200,52 +201,6 @@ simulated storages. I/O operations can also be done in a remote, i.e. when the accessed disk is not mounted on the caller's host. -@section msg_ex_actions Following Workload Traces - -This section details how to run trace-driven simulations. It is very -handy when you want to test an algorithm or protocol that only react -to external events. For example, many P2P protocols react to user -requests, but do nothing if there is no such event. - -In such situations, you should write your protocol in C, and separate -the workload that you want to play onto your protocol in a separate -text file. Declare a function handling each type of the events in your -trace, register them using @ref xbt_replay_action_register in your -main, and then use @ref MSG_action_trace_run to launch the simulation. - -Then, you can either have one trace file containing all your events, -or a file per simulated process: the former may be easier to work -with, but the second is more efficient on very large traces. Check -also the tesh files in the example directories for details. - - - Communication replay. - @ref examples/msg/actions-comm/actions-comm.c \n - Presents a set of event handlers reproducing classical communication - primitives (synchronous and asynchronous send/receive, broadcast, - barrier, etc). - - - I/O replay. - @ref examples/msg/actions-storage/actions-storage.c \n - Presents a set of event handlers reproducing classical I/O - primitives (open, read, write, close, etc). - -@section msg_ex_apps Examples of Full Applications - - - Parallel Matrix Multiplication. - @ref examples/msg/app-pmm/app-pmm.c \n - This little application multiplies two matrices in parallel. Each - of the 9 processes computes a sub-block of the result, with the - sub-blocks of the input matrices exchanged between the processes. \n - This is a classical assignment in MPI lectures, here implemented - in MSG. - - - Chord P2P protocol. - @ref examples/msg/dht-chord/dht-chord.c \n - This example implements the well known Chord protocol, - constituting a fully working non-trivial example. This - implementation is also very efficient, as demonstrated in - http://hal.inria.fr/inria-00602216/ - @section msg_ex_misc Miscellaneous - Task priorities. @@ -273,14 +228,14 @@ top of the example file). /** -@defgroup MSG_ex_examples ignored -@example examples/msg/app-pingpong/app-pingpong.c -@example examples/msg/app-token-ring/app-token-ring.c +@example examples/msg/app-pingpong/app-pingpong.c +@example examples/msg/app-token-ring/app-token-ring.c @example examples/msg/app-masterworker/app-masterworker.c @example examples/msg/async-wait/async-wait.c @example examples/msg/async-waitall/async-waitall.c -@example examples/msg/async-waitall/async-waitany.c +@example examples/msg/async-waitany/async-waitany.c +@example examples/msg/async-yield/async-yield.c @example examples/msg/process-create/process-create.c @example examples/msg/process-suspend/process-suspend.c @@ -292,9 +247,9 @@ top of the example file). @example examples/msg/trace-categories/trace-categories.c @example examples/msg/trace-masterworker/trace-masterworker.c @example examples/msg/trace-process-migration/trace-process-migration.c -@example examples/msg/trace-user-variables/trace-user-variables.c +@example examples/msg/trace-host-user-variables/trace-host-user-variables.c @example examples/msg/trace-link-user-variables/trace-link-user-variables.c -@example examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c +@example examples/msg/trace-route-user-variables/trace-route-user-variables.c @example examples/msg/network-ns3/network-ns3.c @@ -302,14 +257,8 @@ top of the example file). @example examples/msg/io-file/io-file.c @example examples/msg/io-remote/io-remote.c -@example examples/msg/actions-comm/actions-comm.c -@example examples/msg/actions-storage/actions-storage.c - -@example examples/msg/app-pmm/app-pmm.c -@example examples/msg/dht-chord - @example examples/msg/task-priority/task-priority.c -@example examples/msg/properties/properties.c - +@example examples/msg/platform-properties/platform-properties.c + */