A method for managing resources in a distributed resource management system, wherein the resources are devices, networks, hardware and/or software in a computing system, the method comprising: receiving a resource request by at least one processor in the distributed resource management system, the resource request including data identifying at least a first requested resource attribute and a second requested resource attribute; identifying one or more candidate resources from a plurality of resources by: selecting and/or generating resource attribute element sets corresponding to the resource attributes identified by the resource request, comprising at least a first resource attribute element set corresponding to the first requested resource attribute and a second resource attribute element set corresponding to the second requested resource attribute, wherein the resource attribute element sets are bitsets, each resource attribute element set comprising a bit for each of the plurality of resources, each bit representing the property of the respective resource relating to the respective requested resource attribute and performing bit-wise operations on the resource attribute element sets to obtain a resulting element set which indicates the one or more candidate resources; and scheduling a workload associated with the resource request for execution based on the one or more identified candidate resources. receiving a resource request by at least one processor in the distributed resource management system, the resource request including data identifying at least a first requested resource attribute and a second requested resource attribute; identifying one or more candidate resources from a plurality of resources by: selecting and/or generating resource attribute element sets corresponding to the resource attributes identified by the resource request, comprising at least a first resource attribute element set corresponding to the first requested resource attribute and a second resource attribute element set corresponding to the second requested resource attribute, wherein the resource attribute element sets are bitsets, each resource attribute element set comprising a bit for each of the plurality of resources, each bit representing the property of the respective resource relating to the respective requested resource attribute and performing bit-wise operations on the resource attribute element sets to obtain a resulting element set which indicates the one or more candidate resources; and selecting and/or generating resource attribute element sets corresponding to the resource attributes identified by the resource request, comprising at least a first resource attribute element set corresponding to the first requested resource attribute and a second resource attribute element set corresponding to the second requested resource attribute, wherein the resource attribute element sets are bitsets, each resource attribute element set comprising a bit for each of the plurality of resources, each bit representing the property of the respective resource relating to the respective requested resource attribute and performing bit-wise operations on the resource attribute element sets to obtain a resulting element set which indicates the one or more candidate resources; and scheduling a workload associated with the resource request for execution based on the one or more identified candidate resources.