1. A method for allocating computing resources to two or more workloads on a multiple processors computing system wherein the multiple processors are organized in a processor group (PG) hierarchy with one or more hierarchical levels, and wherein each of the two or more workloads comprises at least one thread, the method comprising: for each of the two or more workloads, determining one or more workload properties, the one or more workload properties including a workload weight; determining a binding for each of the two or more workloads, by: (a) sorting the two or more workloads by workload weight in ascending order; (b) calculating a total weight by summing the workload weights of the two or more workloads; (c) for each of the two or more workloads: (i) determining a current weight based on remaining weight to be assigned and a number of PGs present at a lowest PG hierarchical level; (ii) determining a current hierarchical level based on the current weight and a number of PGs present at each of the one or more hierarchical levels; (iii) for the current hierarchical level, determining a PG start position and a number of PGs to bind the workload to by multiplying a number of PGs at the current hierarchical level with the workload's workload weight and dividing by the current weight; assigning the two or more workloads to PGs by binding their threads to Central Processing Units (CPUs) of the PGs determined for each of the workloads in step (c)(iii); executing the threads from the two or more workloads on the CPUs of the PGs; detecting a change in at least one of a workload property, a total number of workloads, or the PG hierarchy; and upon detecting a change, dynamically adjusting one or more bindings, and reassigning at least one of the two or more workloads while continuing execution of the two or more workloads' threads.