Computational grids consisting of many thousands of computers have the potential to render tractable extremely computationally intensive problems that are far beyond the capabilities of a traditional workstation. Without efficient resource management, however, these grids fail to realize their true potential, and unnecessarily waste the investment required to own and operate these datacenters. Traditional resource managers for grids were developed in a single-core era and are targeted toward batch-oriented high-performance computing environments. Multi-core architectures and non-batch real-time applications can be more effectively managed by an architecture that is multi-core aware and is not batch-centric. I have designed and lead the implementation of a resource management system that is capable of managing hierarchically interrelated resources in large-scale computational grids. In addition, this system supports reasoning about the compatibilities of resource usage which enables more efficient utilization of grid resources.