1. A method in a data processing system for discovering hardware nodes having a hierarchical organization, the method comprising: initializing a subset of the hardware nodes in the data processing system prior to loading an operating system supporting parallel threads, wherein the subset contains know hardware nodes; and responsive to loading the operating system, creating a thread for each hardware node discovered below a known hardware node to form a set of threads, wherein each thread in the set of threads searches for an undiscovered hardware nodes on a level below the know hardware node.