.. _platform: .. raw:: html

Describing your Simulated Platform ################################## The goal of SimGrid is to run an application on a simulated platform. For that, you have to describe **each element of your platform**, such as computing hosts, clusters, each disks, links, etc. You must also define the **routing on your platform**, ie which path is taken between two hosts. Finally, you may also describe an **experimental scenario**, with qualitative changes (e.g., bandwidth changes representing an external load) and qualitative changes (representing how some elements fail and restart over time). You should really separate your application from the platform description, as it will ease your experimental campain afterward. Mixing them is seen as a really bad experimental practice. The easiest to enforce this split is to put the platform description in a XML file. Many example platforms are provided in the archive, and this page gives all needed details to write such files, as well as some hints and tricks about describing your platform. On the other side, XML is sometimes not expressive enough, in particular for large platforms exhibiting repetitive patterns that are not simply expressed in XML. In practice, many users end up generating their XML platform files from some sort of scripts. It is probably preferable to rewrite your XML :ref:`platform using the lua scripting language ` instead. In the future, it should be possible to describe the platform in python or directly in C++, but this is not possible yet. As usual, SimGrid is a versatile framework, and you should find the way of describing your platform that best fits your experimental practice. .. LocalWords: SimGrid