Constraints
This section provides a detailed information about all the supported constraints by the COMPSs runtime for Java, Python and C/C++ languages. The constraints are defined as key-value pairs, where the key is the name of the constraint. Table 14 details the available constraints names for Java, Python and C/C++, its value type, its default value and a brief description.
Java | Python | C / C++ | Value type | Default value | Description |
---|---|---|---|---|---|
computingUnits | computing_units | ComputingUnits | string | “1” | Required number of computing units |
processorName | processor_name | ProcessorName | string | “[unassigned]” | Required processor name |
processorSpeed | processor_speed | ProcessorSpeed | string | “[unassigned]” | Required processor speed |
processorArchitecture | processor_architecture | ProcessorArchitecture | string | “[unassigned]” | Required processor architecture |
processorType | processor_type | ProcessorType | string | “[unassigned]” | Required processor type |
processorPropertyName | processor_property_name | ProcessorPropertyName | string | “[unassigned]” | Required processor property |
processorPropertyValue | processor_property_value | ProcessorPropertyValue | string | “[unassigned]” | Required processor property value |
processorInternalMemorySize | processor_internal_memory_size | ProcessorInternalMemorySize | string | “[unassigned]” | Required internal device memory |
processors | processors | List@Processor | “{}” | Required processors (check Table 15 for Processor details) | |
memorySize | memory_size | MemorySize | string | “[unassigned]” | Required memory size in GBs |
memoryType | memory_type | MemoryType | string | “[unassigned]” | Required memory type (SRAM, DRAM, etc.) |
storageSize | storage_size | StorageSize | string | “[unassigned]” | Required storage size in GBs |
storageType | storage_type | StorageType | string | “[unassigned]” | Required storage type (HDD, SSD, etc.) |
operatingSystemType | operating_system_type | OperatingSystemType | string | “[unassigned]” | Required operating system type (Windows, MacOS, Linux, etc.) |
operatingSystemDistribution | operating_system_distribution | OperatingSystemDistribution | string | “[unassigned]” | Required operating system distribution (XP, Sierra, openSUSE, etc.) |
operatingSystemVersion | operating_system_version | OperatingSystemVersion | string | “[unassigned]” | Required operating system version |
wallClockLimit | wall_clock_limit | WallClockLimit | string | “[unassigned]” | Maximum wall clock time |
hostQueues | host_queues | HostQueues | string | “[unassigned]” | Required queues |
appSoftware | app_software | AppSoftware | string | “[unassigned]” | Required applications that must be available within the remote node for the task |
All constraints are defined with a simple value except the HostQueue and AppSoftware constraints, which allow multiple values.
The processors constraint allows the users to define multiple processors for a task execution. This constraint is specified as a list of @Processor annotations that must be defined as shown in Table 15
Annotation | Value type | Default value | Description |
---|---|---|---|
processorType | string | “CPU” | Required processor type (e.g. CPU or GPU) |
computingUnits | string | “1” | Required number of computing units |
name | string | “[unassigned]” | Required processor name |
speed | string | “[unassigned]” | Required processor speed |
architecture | string | “[unassigned]” | Required processor architecture |
propertyName | string | “[unassigned]” | Required processor property |
propertyValue | string | “[unassigned]” | Required processor property value |
internalMemorySize | string | “[unassigned]” | Required internal device memory |