GPGPU-WG KnowledgeBase GLUE2 Profile ExecutionEnvironment

From EGIWiki
Jump to: navigation, search
Main EGI.eu operations services Support Documentation Tools Activities Performance Technology Catch-all Services Resource Allocation Security


<< GPGPU Working Group main page

Introduction

The ExecutionEnvironment class describes the hardware and operating system environment in which a job will run. It represents a set of homogeneous Worker Nodes, so if a computing system contains nodes with significantly different properties there MAY be several ExecutionEnvironment instances. This implies that it should be possible to request a specific environment when a job is submitted. The ExecutionEnvironment MAY refer to virtual rather than physical machines.

As well as attributes describing a typical node, the class gives summary information about the size and usage of the set of nodes which posess those properties. However, there is no way to relate these to the information in other entities, e.g. it is not possible to know which jobs in a given ComputingShare are running on which ExecutionEnvironment.


Discussion Points

The ExecutionEnvironment attributes (listed below) describe the properties of a CPU environment. The question as to whether this is an appropriate environment for decribing Accelerators is an issue that this Working Group should either recommend or advise against. Arguments for both cases are listed below:

  • Pro
    • Can describe basic properties of GPGPU/Accelerator (e.g. Vendor, Model, Quantity, Speed, Memory)
    • Can associate/assign multiple Benchmarks to the ExecutionEnvironment
    • Can use the OpenCL platform/device classification to easily agree a common description for salient attributes
  • Contra
    • Does not describe Num of Streaming Cores/Parallel Threads.


ExecutionEnvironment
Entity Inherits from Description
ExecutionEnvironment Resource A type of environment available to and requestable by a Grid job when submitted to a

ComputingService via a Computing Endpoint; the type of environment is described in terms of hardware, operating system and network characteristics. Information about the total/available/used instances of this type of execution environment are also included.

Inherited Attribute Type Mult Unit Description
Creation Time DateTime_t 0..1 Timestamp describing when the entity instance was created
Validity Unit64 0..1 s The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be consideredrelevant
ID [key] URI 1 A global unique ID
Name String 0..1 Human Readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax.
Attribute Type Mult Unit Description
Platform Platform_t 1 The platform of this Execution Environment.
VirtualMachine ExtendedBoolean_t 0..1 True if the Execution Environment is hosted within a virtual machine; in this case, the values of the other attributes are related to the virtualized environment and not to the hosting environment.
TotalInstances UInt32 0..1 The total number of Execution Environment instances. This SHOULD reflect the total installed capacity, i.e. including resources which are temporarily unavailable.
UsedInstances UInt32 0..1 The number of Execution Environment instances which are considered to be fully used; an instance is used when, according to the policies of the Computing Manager (i.e., LRMS), it cannot accept new jobs because it already runs the maximum number of allowed jobs.
UnavailableInstances UInt32 0..1 The number of Execution Environment instances which are currently unavailable, e.g. because of failures or maintenance.
PhysicalCPUs UInt32 0..1 The number of physical CPUs in one ExecutionEnvironment instance, i.e. the number of sockets per Worker Node.
LogicalCPUs UInt32 0..1 The number of logical CPUs in one ExecutionEnvironment instance, i.e. typically the number of cores per Worker Node.
CPUMultiplicity CPUMultiplicity_t 0..1 Condensed information about the multiplicity of both physical CPUs and cores available in an execution environment instance..
CPUVendor String 0..1 The name of the physical CPU vendor. Free format, but it SHOULD correspond to the name by which the vendor is generally known.
CPUModel String 0..1 The name of the physical CPU model, as defined by the vendor.
CPUVersion String 0..1 The specific version of the Physical CPU model, as defined by the vendor
CPUClockSpeed UInt32 0..1 MHz The nominal clock speed of the physical CPU.
CPUTimeScalingFactor Real32 0..1 The factor used by the Computing Manager (i.e., LRMS) to scale the CPU time limit (the CPU Time is divided by the CPUTimeScalingFactor); for the reference execution environment, this attribute is equal to 1. See the description of the ComputingShare for further information.
WallTimeScalingFactor Real32 0..1 The factor used by the Computing Manager (i.e., LRMS) to scale the Wallclock time limit (the Wallclock Time is divided by the WallTimeScalingFactor). See the description of the ComputingShare for further information.
MainMemorySize UInt64 1 MB The total amount of physical RAM in one Execution Environment instance; if many jobs run in the same instance they compete for the total RAM.
VirtualMemorySize UInt64 0..1 MB The total amount of virtual memory (RAM plus swap space) in one ExecutionEnvironment instance.
OSFamily OSFamily_t 1 The general family to which the ExecutionEnvironment operating system belongs.
OSName OSName_t 0..1 The specific name of the operating system.
OSVersion String 0..1 The version of the operating system, as defined by the vendor.
ConnectivityIn ExtendedBoolean_t 1 True if direct inbound network connectivity is available to a running job, even if limited, e.g. by firewall rules.
ConnectivityOut ExtendedBoolean_t 1 True if direct outbound network connectivity is available from a running job, even if limited, e.g. by firewall rules.
NetworkInfo NetworkInfo_t * The type of internal network connection available among the Execution Environment instances.
Association End Mult. Description
ComputingManager.ID (Redefines Manager.ID) 1 An execution environment is managed by a computing manager.
ComputingShare.ID (Redefines Share.ID) * An execution environment provides capacity in terms of computing shares.
ComputingActivity.ID * An execution environment runs zero or more computing activities.
ApplicationEnvironment.ID * An execution environment offers zero or more application environments.
Benchmark.ID * An execution environment has zero or more associated benchmarks.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs