1. A computer-implemented method for allocating a processing element selected from a plurality of processing elements to a compute node, comprising: comparing the compute node to a first constraint associated with a first level of a constraint tree, the first constraint determining whether the compute node can be allocated to the processing element; if the compute node does not satisfy the first constraint, determining whether the compute node satisfies a second constraint of the constraint tree; if the compute node does satisfy the second constraint, transmitting for display a user action that at least one of (i) changes a condition such that the compute node satisfies the first constraint and (ii) instructs the first constraint to be ignored; and after the user action is performed, allocating, by operation of one or more computer processors, the processing element to the compute node.