SimGrid
![]() | |
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 that evaluates algorithms and heuristics in distributed systems using simulation.[3] It includes tools for prototyping, evaluating, and comparing different platform configurations, system designs, and algorithms. SimGrid tests and analyzes system behaviors 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, on Linux, Mac OSX or Windows OS.
APIs
The framework supports multiple programming paradigms through its APIs. It can be used for for examining 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 (HPC), 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:
- SimDag: This allows prototyping and simulation of scheduling heuristics for applications providing task graphs. It is 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]
- MSG: Added in SimGrid v2, this allows study of CSP applications. It is primarily intended for studying scheduling algorithms, as well as other contexts.[3]
- Grid Reality And Simulation (GRAS): This enables development of distributed applications within the simulator, which can then be deployed on real-world platforms without requiring code modifications.[4]
- SMPI: This 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.