X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7f28b71736be6dcc0140ed1f121168440f8f74d1..895710d49f77179d9893bc76b3e31b69fae638af:/doc/doxygen/examples.doc?ds=sidebyside diff --git a/doc/doxygen/examples.doc b/doc/doxygen/examples.doc index dbce8e543f..fa473b21e2 100644 --- a/doc/doxygen/examples.doc +++ b/doc/doxygen/examples.doc @@ -1,14 +1,9 @@ /*! \page examples SimGrid Examples -\note - This page is under work -- sorry for the inconvenience (FIXME). - -- @ref help - \tableofcontents SimGrid comes with many examples provided in the examples/ directory. -Those examples are described in section \ref MSG_examples. Those +Those examples are described in section \ref msg_examples. Those examples are commented and should be easy to understand. for a first step into SimGrid we also provide some more detailed examples in the sections below. @@ -31,111 +26,6 @@ example from which you can learn what you want to. \subsection MSG_ex_basics Basic examples and features -\subsubsection MSG_ex_asynchronous_communications Asynchronous communications - - -Simulation of asynchronous communications between a sender and a receiver using a realistic platform and -an external description of the deployment. - - - \ref MSG_ext_icomms_code - - \ref MSG_ext_icomms_preliminary - - \ref MSG_ext_icomms_Sender - - \ref MSG_ext_icomms_Receiver - - \ref MSG_ext_icomms_core - - \ref MSG_ext_icomms_Main - - \ref MSG_ext_icomms_fct_Waitall - - \ref MSG_ext_icomms_fct_Waitany - -
- -\dontinclude msg/icomms/peer.c - -\paragraph MSG_ext_icomms_code Code of the application - -\paragraph MSG_ext_icomms_preliminary Preliminary declarations -\skip include -\until Sender function - -\paragraph MSG_ext_icomms_Sender Sender function - -A host can send an an asynchronous message with \c MSG_task_isend(). %As this function is non-blocking, -we have to call \c MSG_comm_test() to know if the communication has finished and finally destroy it with a call to \c MSG_comm_destroy(). -It is also possible to call \c MSG_comm_wait() which, is provides a shortcut. - - C style arguments (argc/argv) are interpreted as: - - the number of tasks to distribute - - the computation size of each task - - the size of the files associated to each task - - a list of host that will accept those tasks. - - the time to sleep at the beginning of the function - - This time defined the process sleep time - if time = 0 use of MSG_comm_wait() - if time > 0 use of MSG_comm_test() - - -\until Receiver function - -\paragraph MSG_ext_icomms_Receiver Receiver function - -This function executes tasks when it receives them. %As the receiving is asynchronous we have to test the communication to know -if it is completed or not with \c MSG_comm_test() or wait for the completion \c MSG_comm_wait(). - - C style arguments (argc/argv) are interpreted as: - - the id to use for received the communication. - - the time to sleep at the beginning of the function - - This time defined the process sleep time - if time = 0 use of MSG_comm_wait() - if time > 0 use of MSG_comm_test() - -\until Test function - -\paragraph MSG_ext_icomms_core Simulation core - - This function is the core of the simulation and is divided only into 3 parts - thanks to MSG_create_environment() and MSG_launch_application(). - -# Simulation settings : MSG_create_environment() creates a realistic - environment - -# Application deployment : create the processes on the right locations with - MSG_launch_application() - -# The simulation is run with #MSG_main() - - Its arguments are: - - platform_file: the name of a file containing an valid surfxml platform description. - - application_file: the name of a file containing a valid surfxml application description - -\until Main function - -\paragraph MSG_ext_icomms_Main Main function - -This initializes MSG, runs a simulation, and free all data-structures created by MSG. - -\until end_of_main - -\dontinclude msg/icomms/peer2.c - -\paragraph MSG_ext_icomms_fct_Waitall Waitall function for sender - -The use of this function permit to send all messages and wait for the completion of all in one time. - -\skipline Sender function -\until end_of_sender - -\paragraph MSG_ext_icomms_fct_Waitany Waitany function - -The MSG_comm_waitany() function return the place of the first message send or receive from a xbt_dynar_t table. - -\paragraph MSG_ext_icomms_fct_Waitany_sender From a sender -We can use this function to wait all sent messages. -\dontinclude msg/icomms/peer3.c -\skipline Sender function -\until end_of_sender - -\paragraph MSG_ext_icomms_fct_Waitany_receiver From a receiver -We can also wait for the arrival of all messages. -\dontinclude msg/icomms/peer3.c -\skipline Receiver function -\until end_of_receiver - \subsubsection MSG_ex_master_worker Basic Master/Workers Simulation of a master-worker application using a realistic platform and an external description of the deployment. @@ -143,14 +33,11 @@ Simulation of a master-worker application using a realistic platform and an exte \paragraph MSG_ex_mw_TOC Table of contents: - \ref MSG_ext_mw_preliminary - - \ref MSG_ext_ms_master - - \ref MSG_ext_ms_slave - - \ref MSG_ext_ms_forwarder - - \ref MSG_ext_ms_core - - \ref MSG_ext_ms_main - - \ref MSG_ext_ms_helping - - \ref MSG_ext_ms_application - - \ref MSG_ext_ms_platform + - \ref MSG_ext_mw_master + - \ref MSG_ext_mw_worker + - \ref MSG_ext_mw_core + - \ref MSG_ext_mw_platform + - \ref MSG_ext_mw_application
@@ -159,83 +46,67 @@ Simulation of a master-worker application using a realistic platform and an exte \paragraph MSG_ext_mw_preliminary Preliminary declarations \skip include -\until printf -\until } +\until example"); +\skipline Master expects -\paragraph MSG_ext_ms_master Master code +\paragraph MSG_ext_mw_master Master code -This function has to be assigned to a #msg_process_t that will behave as -the master. It should not be called directly but either given as a -parameter to #MSG_process_create() or registered as a public function -through #MSG_function_register() and then automatically assigned to a -process through #MSG_launch_application(). +This function has to be assigned to a #msg_process_t that will behave as the master. It should not be called directly +but either given as a parameter to #MSG_process_create() or registered as a public function through +#MSG_function_register() and then automatically assigned to a process through #MSG_launch_application(). C style arguments (argc/argv) are interpreted as: - the number of tasks to distribute - - the computation size of each task - - the size of the files associated to each task - - a list of host that will accept those tasks. - -Tasks are dumbly sent in a round-robin style. - -\until end_of_master + - the computational size of each task + - the communication size of each task + - the number of workers managed by the master. -\paragraph MSG_ext_ms_slave Slave code +Tasks are evenly sent in a round-robin style. -This function has to be assigned to a #msg_process_t that has to behave -as a slave. Just like the master function (described in \ref -MSG_ext_ms_master), it should not be called directly. - -This function keeps waiting for tasks and executes them as it receives them. - -\until end_of_slave +\until return 0; +\until } +\skipline Worker expects -\paragraph MSG_ext_ms_forwarder Forwarder code +\paragraph MSG_ext_mw_worker Worker code -This function has to be assigned to a #msg_process_t that has to behave -as a forwarder. Just like the master function (described in \ref -MSG_ext_ms_master), it should not be called directly. +This function has to be assigned to a #msg_process_t that has to behave as a worker. Just like the master function +(described in \ref MSG_ext_mw_master), it should not be called directly. -C style arguments (argc/argv) are interpreted as a list of hosts that -will accept those tasks. +C style arguments (argc/argv) are interpreted as: + - a unique id used to build the mailbox name of the worker -This function keeps waiting for tasks and dispatches them to its slaves. +This function keeps waiting for tasks and executes them as it receives them. When a special task named 'finalize' is +received from the master, the process ends its execution. -\until end_of_forwarder +\until return 0; +\until } -\paragraph MSG_ext_ms_core Simulation core +\paragraph MSG_ext_mw_core Main function -This function is the core of the simulation and is divided only into 3 parts -thanks to MSG_create_environment() and MSG_launch_application(). - -# Simulation settings : MSG_create_environment() creates a realistic +This function is the core of the simulation and is divided only into 3 parts: + -# Simulation settings : #MSG_create_environment() creates a realistic environment -# Application deployment : create the processes on the right locations with - MSG_launch_application() + #MSG_launch_application() -# The simulation is run with #MSG_main() Its arguments are: - - platform_file: the name of a file containing an valid surfxml platform description. - - application_file: the name of a file containing a valid surfxml application description - -\until end_of_test_all - -\paragraph MSG_ext_ms_main Main() function - -This initializes MSG, runs a simulation, and free all data-structures created by MSG. - -\until end_of_main - -\subsubsection MSG_ext_ms_helping Helping files + - platform_file: the name of a file containing an valid platform description. + - deployment_file: the name of a file containing a valid application description +\line main +\until OK; +\until } -\paragraph MSG_ext_ms_application Example of a deployment file +\paragraph MSG_ext_mw_platform Example of a platform file -The following listing can be found in \c examples/msg/masterslave/deployment_masterslave_forwarder.xml: +The following platform description can be found in \c examples/msg/platforms/small_platform.xml +\include platforms/small_platform.xml -\include msg/masterslave/deployment_masterslave_forwarder.xml +\paragraph MSG_ext_mw_application Example of a deployment file -\paragraph MSG_ext_ms_platform Example of a platform file +The following application description can be found in \c examples/msg/app-masterworker/app-masterworker_d.xml: -\include platforms/small_platform.xml +\include msg/app-masterworker/app-masterworker_d.xml */