-This file follows the Doxygen syntax to be included in the
-documentation, but it should remain readable directly.
+// This file follows the Doxygen syntax to be included in the
+// documentation, but it should remain readable directly.
/**
@defgroup msg_examples MSG examples
@brief Find the MSG example fitting your needs from the extensive set provided in the archive.
- @ref msg_ex_basics
- - @ref msg_ex_async
- @ref msg_ex_process
- @ref msg_ex_tracing
- @ref msg_ex_tracing_user_variables
- @ref msg_ex_models
- @ref msg_ex_ns3
- - @ref msg_ex_io
- - @ref msg_ex_apps
- - @ref msg_ex_misc
-@section msg_ex_basics Basic examples and features
-
- - <b>Ping Pong</b>: @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, highlighting how to pass options to the simulators
- (as detailed in Section \ref options).
+@warning MSG was deprecated in SimGrid v3.18. These examples should be
+ converted to S4U in the next releases. You really should
+ consider using S4U in your next project.
- - <b>Token Ring</b>.
- @ref examples/msg/app-token-ring/app-token-ring.c\n
- Classical communication pattern, where a token is exchanged
- along a ring to reach every participant.
- The tesh file laying in the directory shows how to run the same
- example on different virtual platforms.
+@section msg_ex_basics Basic examples and features
- <b>Master Workers</b>.
@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.
+ task to dispatch to a set of several Worker processes.
-@section msg_ex_async Asynchronous communications
-
-In addition to the fully documented example of @ref
-MSG_ex_asynchronous_communications, there are several other examples
-shipped in the archive:
-
- - <b>Basic asynchronous communications</b>.
- @ref examples/msg/async-wait/async-wait.c \n
- Illustrates how to have non-blocking communications, that are
- communications running in the background leaving the process free
- to do something else during their completion. The main functions
- involved are @ref MSG_task_isend, @ref MSG_task_irecv, and @ref
- MSG_comm_wait.
-
- - <b>Waiting for all communications in a set</b>.
- @ref examples/msg/async-waitall/async-waitall.c\n
- The @ref MSG_comm_waitall function is useful when you want to block
- until all activities in a given set have completed.
-
- - <b>Waiting for the first completed communication in a set</b>.
- @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
- <b>Creating processes</b>.
Most processes are started from the deployment XML file, but they
can also be used with the @ref MSG_process_create() function.
- - <b>Controling the process life cycle from the XML</b>.
- @ref examples/msg/process-startkilltime/process-startkilltime.c \n
- You can specify a start time and a kill time in the deployment
- file. See all *_d.xml files in this directory.
-
@section msg_ex_tracing Tracing and visualization features
Tracing can be activated by various configuration options which
It is interesting to run the process-create example with the following
options to see the task executions:
- - <b>Platform tracing</b>.
- @ref examples/msg/trace-platform/trace-platform.c \n
- This program is a toy example just loading the platform, so that
- you can play with the platform visualization. Recommanded options:
- @verbatim --cfg=tracing:yes --cfg=tracing/categorized:yes
- @endverbatim
-
- <b>Setting Categories</b>.
@ref examples/msg/trace-categories/trace-categories.c \n
This example declares several tracing categories
displayed as arrows in a Gantt-chart visualization. Recommanded
options to that extend:
@verbatim -cfg=tracing:yes --cfg=tracing/msg/process:yes
- @endverbatim
-
+ @endverbatim
+
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
TODO: show the XML files instead if it's what is interesting. On a "XML example files" page that does not exist yet.
-@subsection msg_ex_io Simulating disks and files
-
-The examples of this section demonstrate how to interact with the
-simulated storages.
-
- - <b>Basic example</b>.
- @ref examples/msg/io-storage/io-storage.c \n
- All main storage and file functions are demoed.
-
- - <b>File Management</b>. @ref examples/msg/io-file/io-file.c \n
- This example illustrates the use of operations on file
- (@ref MSG_file_open, @ref MSG_file_read, @ref MSG_file_write,
- or @ref MSG_file_close).
-
- - <b>Remote I/O</b>. @ref examples/msg/io-remote/io-remote.c \n
- 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_misc Miscellaneous
-
- - <b>Task priorities</b>.
- @ref examples/msg/task-priority/task-priority.c \n
- Demonstrates the use of @ref MSG_task_set_priority to change the
- computation priority of a given task.
-
- - <b>User-defined properties</b>.
- @ref examples/msg/platform-properties/platform-properties.c \n
- Attaching arbitrary information to host, processes and
- such, and retrieving them with @ref MSG_host_get_properties,
- @ref MSG_host_get_property_value, @ref MSG_process_get_properties, and
- @ref MSG_process_get_property_value. Also make sure to read the
- platform and deployment XML files to see how to declare these data.
-
-TODO: Document the many other examples that we have
*/
-As a human, you can stop reading at this point. The rest is garbage:
-
-Every example must be listed in the following, but it's not possible
-to move this content upper as each @example directive seems to eat
-everything until the next */ marker (and the content is placed at the
-top of the example file).
+// As a human, you can stop reading at this point. The rest is garbage:
+//
+// Every example must be listed in the following, but it's not possible
+// to move this content upper as each @example directive seems to eat
+// everything until the next */ marker (and the content is placed at the
+// top of the example file).
/**
-@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-waitany/async-waitany.c
-
@example examples/msg/process-create/process-create.c
-@example examples/msg/process-startkilltime/process-startkilltime.c
-@example examples/msg/trace-platform/trace-platform.c
@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/network-ns3/network-ns3.c
-@example examples/msg/io-storage/io-storage.c
-@example examples/msg/io-file/io-file.c
-@example examples/msg/io-remote/io-remote.c
-
-@example examples/msg/task-priority/task-priority.c
-@example examples/msg/platform-properties/platform-properties.c
-
*/