Patent ID: 8042114

Claim:
An apparatus, comprising: a computer having a Non-Uniform Memory Access (NUMA) architecture and including a plurality of hardware resources distributed among a plurality of nodes, wherein each node includes processor and memory hardware resources, and wherein the processor hardware resources in each node have shorter access times when accessing the memory hardware resources located in the same node than when accessing the memory hardware resources in other nodes; and program code resident in the computer and configured to use a resource allocation preference and an allocation strength preference for an application program to allocate a selected hardware resource for the application program, wherein the resource allocation preference and the allocation strength preference are specified by the application program, wherein the resource allocation preference is used to allocate hardware resources for the application program, wherein the allocation strength preference is used to determine whether to allocate alternate hardware resources when the resource allocation preference specified by the application program cannot be met, wherein the resource allocation preference includes a home node preference for the application program, wherein the allocation strength preference includes a node strength preference for use in determining whether to allocate hardware resources from another node when a hardware resource disposed in a home node selected using the home node preference is not available, wherein the program code is configured to allocate the selected hardware resource for the application program by allocating memory for the application program from a memory hardware resource disposed in a selected node among the plurality of nodes, wherein the node strength preference comprises a first node strength preference for use in determining whether to allocate a processor hardware resource from another node when a processor hardware resource disposed in a home node selected using the home node preference is not available, and wherein the allocation strength preference further includes a second node strength preference for use in determining whether to allocate a memory hardware resource from another node when a memory hardware resource disposed in a home node selected using the home node preference is not available, and wherein the first node strength preference differs from the second node strength preference.