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.

Table 14 Arguments of the @constraint decorator

Java

Python

C / C++

Value type

Default value

Description

computingUnits

computing_units

ComputingUnits

<string>

“1”

Required number of computing units

isLocal

is_local

<“true”|”false”>

“false”

The task must be executed in the node it’s detected

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

Table 15 Arguments of the @Processor decorator

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