Patent ID: 8707275

Claim:
A computer-implemented method for simulating on a local computing environment execution of a software application that is designed for distributed execution among a plurality of different computing systems distributed throughout a network of computing systems so that performance of the software application can be evaluated prior to actual execution in the environment of the distributed network, the computer-implemented method comprising acts of: instantiating at a local computing environment a simulation architecture for simulating execution of a software application in a distributed network of computing systems, the simulation architecture at the local computing environment comprising: a scheduler component; a graph manager component; a cluster manager component; a data manager component; a vertex spawner component; and a monitor component; generating for the software application a job graph which includes a graph of computational vertices that are designed to be executed on a plurality of the computing systems in the distributed network; inputting said job graph to the scheduler component in the simulation architecture of the local computing system; the scheduler component then querying the following components in the simulation architecture of the local computing system: the graph manager component, which, in response to the query, determines which computational vertices of the job graph are ready for execution in a simulation at the local computing system of the computing systems of the distributed network; the cluster manager component, which, in response to the query, determines a simulated organizational topology of the simulated computing systems of the distributed network; the data manager component, which, in response to the query, determines data storage locations for each of the computational vertices indicated as being ready for execution at the local computing system by the simulated computing systems of the distributed network; based on the determinations returned to the scheduler component in response to the queries sent to the graph manager component, the cluster manager component and the data manager component, the scheduler component then outputting to the vertex spawner component an instance of each computational vertex that is ready to be spawned for simulated execution at the local computing environment by the simulated computing systems of the distributed network; at the local computing environment, executing by the simulated computing systems of the distributed network each computational vertex that is spawned; and monitoring and displaying performance data at the local computing system for the simulated execution of the software application.