In most scientific domains, results are now obtained thanks to computational science that heavily relies on numerical simulations. This in turn leads to an tremendous increase in size and complexity of the needed computing infrastructures. The performance assessment of such distributed systems and the applications they run is then a complex task for which various approaches can be considered. This talk will give a general overview of these approaches for the performance assessment of distributed systems and applications: experimentation, emulation, and simulation. It will specifically focus on the main features and strengths of the SimGrid toolkit. SimGrid is a 15 year old research project whose scope has been broaden over the years from the simulation of computing grids to P2P systems, clouds, and HPC. It will introduce the different programming APIs, the underlying validated network models, and give some scalability results in various applicative domains.