/** \defgroup MSG_JAVA jMSG
\ingroup MSG_API
\brief Java bindings to MSG (\ref MSG_API)
\htmlonly \endhtmlonly
MSG was the first distributed programming environment provided within
SimGrid. While almost realistic, it remains quite simple (simplistic?).
This describes the Java bindings to this interface.
\section jMSG_who Who should use this (and who shouldn't)
You should use MSG if you want to study some heuristics for a
given problem you don't really want to implement. If you want to
use the Java programming language, your are in the right
section. To use the C interface, please refer to \ref MSG_C.
*/
/** \defgroup MSG_C MSG native
\ingroup MSG_API
\brief Native interface to MSG (\ref MSG_API)
\htmlonly \endhtmlonly
MSG was the first distributed programming environment provided within
SimGrid. While almost realistic, it remains quite simple (simplistic?).
This describes the native to MSG.
\section jMSG_who Who should use this (and who shouldn't)
You should use MSG if you want to study some heuristics for a
given problem you don't really want to implement. If you want to
use the C programming language, your are in the right
section. To use the Java programming interface, please refer to
\ref MSG_JAVA.
*/
/** @addtogroup MSG_C
\section MSG_funct Offered functionnalities
- \ref m_process_management
- \ref m_datatypes_management
- \ref m_host_management
- \ref m_task_management
- \ref msg_gos_functions
- \ref m_channel_management
- \ref msg_easier_life
- \ref msg_simulation
\section MSG_examples Examples of MSG
- \ref MSG_ex_master_slave
*/
/** @defgroup m_datatypes_management MSG Data Types
@ingroup MSG_C
@brief This section describes the different datatypes provided by MSG.
\htmlonly \endhtmlonly
*/
/** \addtogroup m_process_management
\ingroup MSG_C */
/** \addtogroup m_host_management
\ingroup MSG_C */
/** \addtogroup m_task_management
\ingroup MSG_C */
/** \addtogroup msg_gos_functions
\ingroup MSG_C */
/** \addtogroup m_channel_management
\ingroup MSG_C */
/** \addtogroup msg_easier_life
\ingroup MSG_C */
/** \addtogroup msg_simulation
\ingroup MSG_C */
/** \page MSG_ex_master_slave Master/slave application
Simulation of a master-slave application using a realistic platform and
an external description of the deployment.
\section MSG_ex_ms_TOC Table of contents:
- \ref MSG_ext_ms_code
- \ref MSG_ext_ms_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
\dontinclude msg/masterslave/masterslave_forwarder.c
\section MSG_ext_ms_code Code of the application
\subsection MSG_ext_ms_preliminary Preliminary declarations
\skip include
\until printf
\until }
\subsection MSG_ext_ms_master Master code
This function has to be assigned to a m_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
\subsection MSG_ext_ms_slave Slave code
This function has to be assigned to a #m_process_t that has to behave as a slave.
Just like the master fuction (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
\subsection MSG_ext_ms_forwarder Forwarder code
This function has to be assigned to a #m_process_t that has to behave as a forwarder.
Just like the master fuction (described in \ref MSG_ext_ms_master), it should not be called directly.
C style arguments (argc/argv) are interpreted as a list of host
that will accept those tasks.
This function keeps waiting for tasks and dispathes them to its slaves.
\until end_of_forwarder
\subsection MSG_ext_ms_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 agents 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 end_of_test_all
\subsection MSG_ext_ms_main Main() function
This initializes MSG, runs a simulation, and free all data-structures created by MSG.
\until end_of_main
\section MSG_ext_ms_helping Helping files
\subsection MSG_ext_ms_application Example of application file
\include msg/masterslave/deployment_masterslave.xml
\subsection MSG_ext_ms_platform Example of platform file
\include msg/small_platform.xml
*/