SimGrid
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
![]() | |
Initial release | 1998[1] |
---|---|
Stable release | 3.36
/ September 9, 2024 |
Repository | https://framagit.org/simgrid/simgrid |
Written in | Core: C++; Bindings: Python. |
Platform | Unix, Mac OS X, Microsoft Windows |
Type | Distributed system simulator, Network simulator, Model checking |
License | GNU Lesser General Public License[2] |
Website | simgrid |
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
- ^ 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.
- ^ "Official SimGrid Page". Retrieved October 17, 2024.
- ^ 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.
- ^ Quinson, Martin (November 2006). "GRAS: a Research and Development Framework for Grid and P2P Infrastructures". Inria – via HAL Open Science.