Hi toto,
support for constraints is still a WIP feature and has been initially added in build #133 as "GA based Load Balancing with Constraints Optimization" strategy.
In order to use this feature, I'd suggest you download the latest Nightly Build (#137) which contains some major bugfixes from the
Hudson Build Server.
The "GA based Load Balancing with Constraints Optimization" strategy utilizes
Tags in order to describe which cores are or are not a valid target for a task. Here,
Tasks have
Custom Properties describing which
Tags must (not) be present on a
Core, whereas
Cores refer to a list of
Tags which describe a cores features or characteristics.
For a better understanding, I've attached a small example for Tag based allocation constraints:
- File SW contains all the information regarding the Software. Tags are stored in the CommonElements model, and Tasks are stored in the SW Model.
Tasks ESPP0 -- ESPP2 have been annotated with custom properties that refer to Tags. Based on the name of a custom property, it is decided if cores containing the referred Tag are valid targets (include) or invalid targets (exclude).
- File HW contains information about the Hardware. It has also its own CommonElements Model containing a set of Tags, which are referred to by cores using their resp. Tags-Attribute.
In this example, Core e200z0 is annotated with Tag "FPU" (contains a Floating Point Unit), while e200z6 is annotated with SlaveCore (is not the Master Core)
You will notice that executing the mapping algorithm on this example will enforce a placement of Tasks ESPP0 -- ESPP2 to Core e200z0, since ESPP0 requires a FPU, whereas ESPP1 and ESPP2 may not be executed on a SlaveCore.
Regards,
Lukas