Uploaded image for project: 'Apache YuniKorn'
  1. Apache YuniKorn
  2. YUNIKORN-2789

Queue internalGetMax should use permissive calculator

    XMLWordPrintableJSON

Details

    Description

      We have documented for queue resources that:

      Resources that are not specified in the list are not limited, for max resources, or guaranteed in the case of guaranteed resources.

      However in the implementation on the queue, internalGetMax, we call resources.ComponentWiseMin(). This returns 0 values for each type that is not defined in the two resources passed in. That does not line up.

      Example for getting the maximum resources of a queue using GetMaxQueueSet what I would expect based on the documentation:

       

      parent: max{memory: 100G}
      parent.child: max{vcore: 100}
        => result child max{memory: 100G, vcore: 100}

       

       

      currently we get:

      parent: max{memory: 100G}
      parent.child: max{vcore: 100}
        => result child max{memory: 0, vcore: 0}

      Similar when we add the root and call GetMaxResource:

      root: max{memory: 100G, vcore: 200}
      root.parent: max{vcore: 100}
      root.parent.child: max{nvidia.com/gpu: 10}
         => result parent max{memory: 0, vcore: 100}
         => result child max{memory: 0, vcore: 0, nvidia.com/gpu: 0}

      The fact that the resource type does not exist, even in the root, should not mean a zero set. The nodes that expose the specific resource might not have been registered or scaled up yet.

       

      Attachments

        Issue Links

          Activity

            People

              wilfreds Wilfred Spiegelenburg
              wilfreds Wilfred Spiegelenburg
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: