SimGrid

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

SimGrid
Initial release1999; 27 years ago (1999)[1]
Stable release
4.0 / March 12, 2025; 13 months ago (2025-03-12)
Repositoryhttps://framagit.org/simgrid/simgrid
Written inCore: C++; Bindings: Python
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    PlatformUnix, Mac OS X, Microsoft Windows
    TypeDistributed system simulator, Network simulator, Model checking
    LicenseGNU Lesser General Public License version 2.1 only[2]
    Websitesimgrid.org

    SimGrid is a framework for simulating applications on distributed computing systems.[3] 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.[1]

    SimGrid is distributed as freeware under the GNU Lesser General Public License version 2.1 (LGPL-2.1-only).[4][2]

    History

    [edit | edit source]

    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.[5] The original design was only used for simulating the scheduling of heuristics for heterogeneous platforms.[5]

    SimGrid has received funding from national and international research agencies and has evolved through various projects, including SONGS, USS-SimGrid, and ASTR.[6]

    APIs and models

    [edit | edit source]

    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:[1]

    • Simulation Directed Acyclic Graphs (SIMDAG) 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 (MSG) is used for solving constraint satisfaction problems.
    • Grid Reality and Simulation (GRAS) simulates deployable distributed applications.
    • Simulated Message Passing Interface (SMPI) simulates MPI applications.

    Release history

    [edit | edit source]
    Version Release date Significant changes
    SimGrid v1.0 1999
    • First release of SimGrid
    • Scheduled algorithms for heterogeneous platforms
    SimGrid v2.0 2003
    SimGrid v3.3 2009
    • Complete rewrite of the simulation core for better modularity, speed and scalability[8]
    SimGrid v4.0 March 12, 2025[9]
    • Reworked the platform generation API to simplify it and make it more natural[9]

    See also

    [edit | edit source]

    References

    [edit | edit source]
    1. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

    Further reading

    [edit | edit source]
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]