SimGrid: MSG

SimGrid 3.10 Versatile Simulation of Distributed Systems

- Home page
- Online documentation
- Dev's Corner

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Modules
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

- Main MSG simulation Functions
- Process Management Functions
- Host Management Functions
- Task Management Functions
- Mailbox Management Functions
- File Management Functions
- Task Actions
- VMs
- Explicit Synchronization Functions
- Trace-driven simulations
- MSG examples
- MSG Deprecated

Also make sure to visit the page MSG examples.