When submitting a job, I often want to target my job to a specific set of machines based on machine type/configuration and the software installed on the machines. Groups are generally used for this purpose. Slaves can belong to multiple groups. But currently, only a single group can be specified when submitting a job.
The problem is that this limitation requires an exponentially larger number of groups, which makes it more difficult to add machines to the farm in a way that allows them to be picked up without changing existing submission scripts.
Consider a simple example of 2 machine configurations, and 2 types of software.
If multiple groups were allowed when submitting a job, I would only need 4 groups, and could combine them as needed to target specific machines.
16Core
32Core
Maya2015
ffmpeg
If only a single group is allowed, the groups must become more numerous and complex, since they need to “bake in” all the configuration and software options. Adding more software or machine configurations causes groups to grow exponentially.
16Core
32Core
Maya2015
ffmpeg
Maya2015-ffmpeg
Maya2015-16Core
Maya2015-32Core
ffmpeg-16Core
ffmpeg-32Core
Maya2015-ffmpeg-16Core
Maya2015-ffmpeg-32Core
EDIT: Turns out this can be accomplished with Limit Groups