1. A method of managing resource allocation in a computer system comprising: a) determining access costs between resources in a computer system having non-uniform access costs between said resources; b) forming a hierarchical data structure comprising said access costs; and c) traversing said hierarchical data structure to manage a set of said resources.