Base plugin type. Plugins allow configuring and adapting 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 pluginType. Time estimation plugin provides means to include specific application performance models during simulations and allows introducing 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 resourceType 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 resourceType. 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 resourceType. It allows to model scheduling entity responsible for managing resources. SchedulingPlugin derived from pluginType. 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 the given value is expressed Attributes: unit - indicates appropriate units, for instance: seconds, watts, bytes etc. StringValueWitUnit derived from string. Allows providing units in which the given value is expressed Attributes: unit - indicates appropriate units. Profile acts as a container for resource profiles: power and air throughput Profile acts as a container for resource profiles: power and air throughput ManagedComputingResource type specifies computing resources controlled by scheduler. They can be provided either by listing their names or listing the group ids which they belong to. Attributes: include - specifies whether the given resource layer (listed resources) can be allocated by the scheduler In other words, false (default) value indicates that scheduler maneges only the subcomponents of the listed resources; true value determines that also listed resources will be under the control of the defined scheduler EnergyEstimationPlugin derived from pluginType. Energy estimation plugin is used to estimate energy consumption of the given computing resource. 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 from 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 pluginType. 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 AirThroughputStates 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 using 3 coordinates 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