1. A method for allocating computing resources, the method comprising: grouping computer processing threads into one or more workloads, wherein each of the one or more workloads is characterized by a set of one or more workload properties, the one or more workload properties including a workload weight and a workload constraint, wherein the workload constraint identifies a group of computing resources; using the workload weight, the workload constraint, and a number of workloads associated with the group of computing resources to bind each of the one or more workloads to one or more portions of the group of computing resources; detecting a change in the one or more properties, the number of workloads, or the group of computing resources; and dynamically adjusting one or more bindings between each of the one or more workloads and the one or more portions of the computing resources in accordance with a detected change in the one or more properties.