Jump to content

SimGrid

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by CodeMiner11 (talk | contribs) at 17:25, 9 March 2025. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
SimGrid
Initial release1998 (1998)[1]
Stable release
3.36 / September 9, 2024; 7 months ago (2024-09-09)
Repositoryhttps://framagit.org/simgrid/simgrid
Written inCore: C++; Bindings: Python.
PlatformUnix, Mac OS X, Microsoft Windows
TypeDistributed system simulator, Network simulator, Model checking
LicenseGNU Lesser General Public License[2]
Websitesimgrid.org

SimGrid is a framework for evaluating algorithms and heuristics in distributed systems through simulation.[3] It includes tools for prototyping, evaluating, and comparing different platform configurations, system designs, and algorithms. SimGrid tests and analyzes system behavior by simulating distributed computing environments.

The interaction with SimGrid is done by writing programs with the exposed functions to build a simulator. This can be done in C/C++ or Python, supports Linux, macOS, and Windows operating systems.

APIs

The framework supports multiple programming languages and operating systems through its APIs. It can analyze scheduling strategies, resource allocation policies, fault tolerance mechanisms, and other aspects of distributed computing. SimGrid is used in various fields such as cloud computing, high-performance computing, grid computing, and peer-to-peer networking. It can be used to identify bottlenecks and assess system efficiency as part of performance analysis and optimization work.

There are four SimGrid user interfaces:

  • Simulation Directed Acyclic Graph (SimDag): SimDag makes it possible to add tasks, add dependencies between tasks, retrieve information about the platform, schedule tasks for execution on particular resources, and compute the DAG's execution time.[3]
  • Meta Scheduling Grid (MSG): Added in SimGrid v2, this interface allows the study of Constraint Satisfaction Problems applications. It is utilized for studying and scheduling algorithms, among others.[3]
  • Grid Reality And Simulation (GRAS): This interface enables the development of distributed applications within the simulator, which can then be deployed on real-world platforms without requiring code modifications.[4]
  • Simulated Message Passing Interface (SMPI): This interface allows simulation of unmodified MPI applications by intercepting MPI primitives.

See also

References

  1. ^ Casanova, Henri (May 2001). "A Toolkit for the Simulation of Application Scheduling". First IEEE International Symposium on Cluster Computing and the Grid (CCGrid'01). Brisbane, Australia. pp. 430–441. doi:10.1109/CCGRID.2001.923223.
  2. ^ "Official SimGrid Page". Retrieved October 17, 2024.
  3. ^ a b c Casanova, Henri; Legrand, Arnaud; Quinson, Martin (March 4, 2008). "SimGrid: a Generic Framework for Large-Scale Distributed Experiments". Inria. IEEE – via HAL Open Science.
  4. ^ Quinson, Martin (November 2006). "GRAS: a Research and Development Framework for Grid and P2P Infrastructures". Inria – via HAL Open Science.