SimGrid  3.16
Versatile Simulation of Distributed Systems
APIs Reference
Here is the hierarchical view of all SimGrid modules. You can reduce the amount of detail with the 'detail level' setting, on the right.
[detail level 1234]
 MSG: Simulate CSP AlgorithmsSimple programming environment
 Main MSG simulation FunctionsHow to setup and control your simulation
 Process Management FunctionsThis section describes the process structure of MSG (msg_process_t) and the functions for managing it
 Host Management FunctionsHost structure of MSG
 Task Management FunctionsTask structure of MSG (msg_task_t) and associated functions
 Mailbox Management FunctionsFunctions associated to mailboxes
 Task ActionsThis section describes the functions that can be used by a process to execute, communicate or otherwise handle some task
 Explicit Synchronization FunctionsExplicit synchronization mechanisms: semaphores (msg_sem_t) and friends
 VMsInterface created to mimic IaaS clouds
 Storage Management FunctionsStorage structure of MSG (msg_storage_t) and associated functions, inspired from POSIX
 File Management FunctionsMSG files (msg_file_t) and associated functions, inspired from POSIX
 Trace-driven simulationsThis section describes the functions allowing to build trace-driven simulations
 MSG examplesFind the MSG example fitting your needs from the extensive set provided in the archive
 SimDag: Simulate DAG algorithmsProgramming environment for DAG applications
 HostsHost management
 LinksLink management
 TasksTask management
 Tasks dependenciesFunctions to specify the dependencies between tasks
 StoragesStorage management
 SimulationFunctions to create the environment and launch the simulation
 XBT: SimGrid core toolboxThe core toolbox of SimGrid, containing useful datatypes and friends
 Grounding featuresGrounding features are the basement of SimGrid
 Malloc and friendsMalloc and associated functions, killing the program on error (with Exception support (C++))
 String related functionsString manipulation functions
 Exception support (C++)Exceptions support
 Exception support (C)Exceptions support (C)
 Logging supportA generic logging facility in the spirit of log4j (grounding feature)
 Existing log categories(automatically extracted)
 Assert macro famillyThose are the SimGrid version of the good ol' assert macro
 Configuration supportChanging the configuration of SimGrid components (grounding feature)
 User interface: changing valuesThis is the only interface you should use unless you want to let your own code become configurable with this
 Configuration type declaration and memory management
 Registering stuffThis how to add new variables to an existing configuration set
 Getting the stored valuesThis is how to retrieve the values stored in the configuration set
 MallocatorsThe mallocator system
 Mallocator constructor and destructor
 Mallocator object handling
 Unit testing supportUnit testing implementation (see Adding unit tests)
 Usual data structuresHere are the basic data containers that every C programmer rewrites one day
 Dynar: generic dynamic arrayDynArr are dynamically sized vector which may contain any type of variables
 Dynar constructor and destructor
 Dynar as a regular array
 Dynar miscellaneous functions
 Perl-like use of dynars
 Direct manipulation to the dynars contentThose functions do not retrieve the content, but only their address
 Speed optimized access to dynars of scalarsWhile the other functions use a memcpy to retrieve the content into the user provided area, those ones use a regular affectation
 Cursors on dynarCursors are used to iterate over the structure
 Dict: generic dictionnaryThe dictionary data structure (comparable to hash tables)
 Dict constructor and destructor
 Dictionaries basic usageCareful, those functions assume that the key is null-terminated
 Dictionaries with non-nul terminated keysThose functions work even with non-null terminated keys
 Cursors on dictionaries
Don't get impressed, there is a lot of functions here, but traversing a dictionary is immediate with the
xbt_dict_foreach macro.
 Swag: O(1) set datatypeO(1) set based on linked lists
 Swag typesSpecific set
 SWAG functions
 Swag cursorIterates over the whole swag
 Heap: generic heap data structureThis section describes the API to generic heap with O(log(n)) access
 MiscellaneousHere are several general purposes library components designed specially for you, you lucky one
 General purpose graph libraryA graph data type with several interesting algorithms
 Parallel mapParallel map
 Simulated SynchronizationXBT synchronization tools
 Thread stuffThread portability layer
 Portable context implementationContexts are a higher level system than setjump/longjmp for non-preemptible threads
 Replay
 File manipulation functionsThis module redefine some quite classical functions such as xbt_getline() or xbt_dirname() for the platforms lacking them
 TRACINGGather data about your simulation for later analysis
 Tracing categoriesFunctions to declare tracing categories
 Tracing marksFunctions to declare and create tracing marks
 Tracing user variablesFunctions to declare and define user variables associated to resources
 Routing: Determining the communication pathsOrganize the platform to determine the links used by each communication
 SIMIXPOSIX-like interface for building simulation
 SIMIX datatypes management details
 Process Management Functions
 Host Management Functions
 RDV Management Functions
 Communication Management Functions
 Synchronisation Management Functions
 File Management Functions
 SURFInternal kernel of all the simulators used in SimGrid, and associated models
 Simulation ModelsFunctions to declare the kind of models that you want to use
 SimulationFunctions for creating the environment and launching the simulation
 Create a new APIHow to build a new API on top of SURF
 SURF C bindingsDescribes the c bindings of SURF
 SURF InterfaceDescribes the general interface for all components (Cpu, Network, Storage, Host, VM)
 SURF Cpu InterfaceDescribes the general Cpu interface for all Cpu implementations
 SURF Network InterfaceDescribes the general Network interface for all Network implementations
 SURF Storage InterfaceDescribes the general interface for all Storage implementations
 SURF Host InterfaceDescribes the general interface for all Host implementations
 SURF VM InterfaceDescribes the general interface for all VM implementations
 SURF Linear MaxMinDescribes how the linear MaxMin system work
 SURF callbacksDescribes how to use the SURF callbacks
 Energy PluginDescribes how to use the energy plugin
 S4U: Next Generation SimGrid APIFuture core API, mixing the full power of SimGrid to the power of C++
 S4U examplesFind the S4U example fitting your needs in the archive
 SMPI: Simulate real MPI applicationsProgramming environment for the simulation of MPI applications
 Plugin_loadThis plugin makes it very simple for users to obtain the current load for each host