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
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