SimGrid  3.9.90
Versatile Simulation of Distributed Systems
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
MSG

Simple programming environment. More...

Modules

 Main MSG simulation Functions
 Describes how to setup and control your simulation.
 
 Process Management Functions
 This section describes the process structure of MSG (msg_process_t) and the functions for managing it.
 
 Host Management Functions
 This section describes the host structure of MSG.
 
 Task Management Functions
 This section describes the task structure of MSG (msg_task_t) and the functions for managing it. See Task Actions to see how to put the tasks in action.
 
 Mailbox Management Functions
 This section describes the mailbox structure of MSG (msg_mailbox_t) and the functions for managing it.
 
 Task Actions
 This section describes the functions that can be used by a process to execute, communicate or otherwise handle some task.
 
 Explicit Synchronization Functions
 This section describes several explicit synchronization mechanisms existing in MSG: semaphores (msg_sem_t) and friends.
 
 VMs
 This section describes the interface created to mimic IaaS clouds.
 
 File Management Functions
 This section describes the file structure of MSG (msg_file_t) and the functions for managing it. It is based on POSIX functions.
 
 Trace-driven simulations
 This section describes the functions allowing to build trace-driven simulations.
 
 Lua bindings
 Lua bindings to MSG (MSG)
 
 MSG examples
 MSG examples from examples directory examples/msg.
 
 MSG Deprecated
 This section describes the deprecated functions. PLEASE STOP USING THEM.
 

Detailed Description

Simple programming environment.

MSG was the first distributed programming environment provided within SimGrid, and is still the most commonly used nowadays. If you are unsure of the interface you should use, they you probably want to use MSG. It constitutes a convenient simplification of the reality of distributed systems. It can be used to build rather realistic simulations, but remains simple to use: most unpleasant technical elements can be abstracted away rather easily. If you want to use the C programming language, your are in the right section. If you prefer not to use this venerable but demanding language, please refer to the Java Binding, the Lua bindings, or the Ruby Binding (that are distributed separately).

If you think that MSG may not be the interface you need, please consider the other user interfaces provided by SimGrid: If you want to use DAGs, have a look at the SimDag programming environment. If you want to study an existing MPI program, have a look at the SMPI one. If none of those programming environments fits your needs, you may consider implementing your own directly on top of SIMIX, or even on top of SURF (but you want to contact us before digging into these badly documented internal modules).

Offered functionalities

Also make sure to visit the page MSG examples.