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