The GridSim is a Java based discrete event simulation package, supports modeling and simulation of a wide range of heterogeneous resources, such as single or multiprocessors, shared and distributed memory machines such as PCs, workstations, Shared memory Multiprocessors (SMP), and clusters with different capabilities and configurations. It can be used for modeling and simulation of application scheduling on various classes of parallel and distributed computing systems such as clusters, Grids, and P2P networks. The toolkit provides concurrent entities for creation of application tasks, mapping of tasks to resources and their management.
In Grid Computing applications where resources are spread over dispersed locations and run by different organizations with differing policies, it is important that the user is given a guarantee that their tasks be completed, and completed within specific guidelines that the user may wish to request. To achieve this, agreements need to be made between the resource providers and the users themselves, protecting and outlining the requirements, policies and rights of both parties. Simulation has been used extensively as a way to evaluate and compare scheduling strategies as simulation experiments are configurable, repeatable, and generally fast.
GridSim is a famous Java-based grid simulator with a clear focus on Grid environment. This simulator is based on entities: Grid users, brokers (bargaining on behalf of users) and resources. These entities can have customized characteristics.
The architecture of GridSim is shown in Figure 1.
figure 1 GridSim architecture
The Simulation of Grid Computing applications is necessary because of the difficulties in testing applications on real Grid test beds; price, limited number and administrative complexities are some of those difficulties. The simulation solution is the logical substitute. Moreover, simulation allows these applications to be run multiple times, and experiments to be repeated for best results, accurate analysis and concrete development. However, current Grid Simulation tools are limited and do not provide the user with the ability to completely simulate real-life environments. Issues such as negotiation between the user and Service Provider, Contractual Agreements between them and Guaranteed Qualities of Services are only brushed upon and insufficiently covered. Moreover, GridSims layered architectural model makes it easy to understand and add to. The following image illustrates this architecture. GridSim was the best available option of current Grid Simulation tool. However, even GridSim version 5.0.
GridSim’s higher level operation can be summarized in four distinct operational steps. The first step is to identify and create Grid resources. These resources could be of different sizes and configurations and are created in relation to the experiment to be carried out. The next step is the creation of an application to use these resources. These applications are defined as a collection of “Gridlets” or Grid jobs that are created. The third step is the creation of the Grid user, which is the entity that interacts with the broker. This interaction leads to the coordination of the scheduling requirements for the simulation experiment. The final step is the entity responsible for allocating resources to the jobs scheduled in the experiment.
GridSim Main features
The GridSim toolkit allows modeling and simulation of entities in parallel and distributed computing (PDC) systems-users, applications, resources, and resource brokers (schedulers) for design and evaluation of scheduling algorithms. It provides a comprehensive facility for creating different classes of heterogeneous resources that can be aggregated using resource brokers for solving compute and data intensive applications. A resource can be a single processor or multi-processor with shared or distributed memory and managed by time or space shared schedulers. The processing nodes within a resource can be heterogeneous in terms of processing capability, configuration, and availability. The resource brokers use scheduling algorithms or policies for mapping jobs to resources to optimize system or user objectives depending on their goals
Overview of GridSim functionalities:
- Incorporates failures of Grid resources during runtime.
- New allocation policy can be made and integrated into the GridSim Toolkit, by extending from AllocPolicy class.
- Has the infrastructure or framework to support advance reservation of a grid system.
- Incorporates a functionality that reads workload traces taken from supercomputers for simulating a realistic grid environment.
- Incorporates an auction model into GridSim.
- Incorporates a datagrid extension into GridSim.
- Incorporates a network extension into GridSim. Now, resources and other entities can be linked in a network topology.
- Incorporates a background network traffic functionality based on a probabilistic distribution. This is useful for simulating over a public network where the network is congested.
- Incorporates multiple regional GridInformationService (GIS) entities connected in a network topology. Hence, you can simulate an experiment with multiple Virtual Organizations (VOs).
- adds ant build file to compile GridSim source file
we can download the gridSim package from “https://sourceforge.net/projects/gridsim/”. the package includes the required source code, Jar files and the example codes.
 Rajkumar Buyya, “GridSim: A Toolkit for Modelling and Simulating Grid Computing Environments “, http://www.cloudbus.org/merit_flyers/GridSim-1page.pdf
 Albodour, Reda, Anne James, and Norlaily Yaacob, “An extension of GridSim for quality of service”, 14th International Conference on Computer Supported Cooperative Work in Design (CSCWD), IEEE, 2010.
 Legrand, Arnaud, Loris Marchal, and Henri Casanova, “Scheduling distributed applications: the simgrid simulation framework”, 3rd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGrid 2003), IEEE, 2003, pp. 138-145.
 “GridSim: A Grid Simulation Toolkit for Resource Modeling and Application Scheduling for Parallel and Distributed Computing”, available online at: http://www.buyya.com/gridsim/