YARN-1461 adds the concept of Application Tags to Yarn applications. In particular, a user is able to annotate application with multiple tags to classify apps. We can leverage this to define application namespaces based on application tags for placement constraints.
Below is a typical use case.
There are a lot of TF jobs running on Yarn, and some of them are consuming resources heavily. So we want to limit number of PS on each node for such BIG players but ignore those SMALL ones. To achieve this, we can do following steps:
- Add application tag "big-tf" to these big TF jobs
- For each PS request, we add "ps" source tag and map it to constraint "notin, node, tensorflow/ps" or "cardinality, node, tensorflow/ps, 0, 2" for finer grained controls.