Base plugin type. Plugins allow a researcher to configure and adapt the simulation framework to his/her experiment starting from modeling job performance, through method of calculating energy estimation up to implementation of scheduling policies Name of the plugin specifies the JAVA class that implements dedicated interface. TimeEstimationPlugin derived from Plugin. Time estimation plugin provides means to include specific application performance models during simulations and allows researchers to introduce specific ways of calculating task execution time. Base resource type. It allows to define simulation entities like computing resources, devices, schedulers. Attributes: class - determines the component of the architecture i.e. rack, processor, memory, storage etc. type - type of resource; for instance, continuous for memory, bandwidth, etc. and discrete for processors name - unique resource identifier, if not specified it will be generated by the simulator in the following manner: class + "_" + subsequent_natural_number ComputingResource derived from Resource Computing resource specifies resources that are able to perform computing operations. From the simulator point of view computing resource is everything that is/contains processing element. Hence, all entities like core, processor, computing node, as well as those which aggregate them (like shelf, rack, container etc.) should be define using this type. This way of description provides flexibility in defining system architecture and allows to build hierarchy of resources that corresponds to real world. Attributes: groupId - allows to group resources of the given class in the logical structures that can be used during binding them with schedulers count - defines number of resources of the given class ComputingResourceTemplate derived from Resource. It allows user to define model of computing resource component that may constitute other computing resources Computing resource templates can be then referred in computing resource definition Scheduler derived from Resource. It allows to model scheduling entity responsible for managing resources. SchedulingPlugin derived from Plugin. Scheduling plugins allow plugging scheduling algorithms into the simulated environment. Elements: frequency - is used to enable scheduling periodically; it specifies the time interval (in seconds by default) between subsequent scheduling invocations Resource unit is used to define non-computing resource like memory, storage etc. Elements: amount - represents concrete amount (values) of specific resource unit DoubleValueWitUnit derived from double. Allows providing units in which a given value is expressed Attributes: unit - indicate appropriate units, for instance: seconds, watts, bytes etc. StringValueWitUnit derived from string. Allows providing units in which a given value is expressed Attributes: unit - indicate appropriate units. ManagedComputingResource type specifies controlled (by scheduler) computing resources. They can be provided either by listing their names or listing the group ids for which they belong Attributes: include - specifies whether scheduler should be built on top of given resources or should also include them. In other words, false (default) value indicates that scheduler manner only subcomponents of the listed resources; true value determines that also listed resources will be under the control of the defined scheduler EnergyEstimationPlugin derived from Plugin. Energy estimation plugin is used to customize estimation of energy consumptions of the given computing resource to specific applications and hardware. It has access to the detailed resource description including power and air throughput profiles and application characteristics running on a given resource Profile acts as a container for resource profiles: power and air throughput Power profile provides energyEstimation plugin, powerStates and other power-related parameters definition PowerState type act as a container for power states. It contains energy-related characteristics of the computing resource Power state defines available (for computing resource) power states. Elements: name - denotes name of the given power state powerUsage - defines power consumption in the given state transition - specifies possible power states transitions form the given power state Description of power states transtition Elements: to - denotes name of target power state powerUsage - defines transition cost in the form of power consumption time - specifies transition time AirThroughputEstimationPlugin derived from Plugin. Air Throughput plugin is used to estimate air flow value based on the defined air throughput states AirThrouhputProfile provides airThroughputEstimation plugin, airThroughputStates and other airThroughput-related parameters definition AirThroughputState type act as a container for air throughput states. Air througput state provides means to define air flow level. It can represent, for instance, a fan working state The location type describes placement of the computing resource in the 3D coordinate system Parameter of resource. Allows defining additional resource parameters. Contains a list of parameter values or a list of key-value pairs. Attribute : name - denotes parameter name Property of parameter. Allows defining additional properties of parameter as a list of values. Attribute : name - denotes property name Schema describing simulation environment Description of resources Definition of computing resource templates that can/will be used in resource description section