SimGrid
is a framework for simulating applications on distributed computing systems. It provides high-level programming language tools for comparing, evaluating, analyzing, and prototyping algorithms across different platforms. SimGrid has been used to conduct experimental simulations in multiple domains, including cluster computing, grid computing, heuristics and peer-to-peer (P2P) computing.
is distributed as freeware under the GNU Lesser General Public License version 2.1.
History
SimGrid started in 1999 as a joint research project between Henry Casanova and Arnaud Legrand from the University of California, San Diego and École Normale Supérieure de Lyon, respectively. The original design was only used for simulating the scheduling of heuristics for heterogeneous platforms.SimGrid has received funding from national and international research agencies and has evolved through various projects, including SONGS, USS-SimGrid, and ASTR.
APIs and models
SimGrid supports multiple programming languages, including C++ and Python, through models and APIs.SimGrid provides tools for analyzing scheduling, resource allocation, fault tolerance, and other aspects of distributed computing through four distinct interfaces:
- Simulation Directed Acyclic Graphs simulates execution of DAGs, including specified tasks, dependencies, scheduling resources, and interaction with the environment. It allows users to add tasks, specify dependencies, and interact with the environment.
- Meta Scheduling Grid is used for solving constraint satisfaction problems.
- Grid Reality and Simulation simulates deployable distributed applications.
- Simulated Message Passing Interface simulates MPI applications.