Hypergraph implementation
AssigneeMicrosoft Corporation
InventorJames T. Kajiya
Life of this patent
Estimating the term…
Abstract
A hypergraph implementation system is described. The hypergraph implementation system provides for a hypergraph template library that contains many hypergraphs and many bulk data areas. The hypergraphs allow a developer to program an application such that the pointers to files are contained in the memory cache. The hypergraphs consist of hyperedges and vertices residing in tables of indices that point into each other in a flat organization. Bulk data is hung directly off hyperedges and vertices via a set of features. Thus, all the relationships among objects are contained within the hypergraphs and all the bulk data such as audio, large tables, geometry and images are directly tied to hyperedges or vertices with one link.
Claims18
A system for programming an application configured for execution on a multi-core computing device, comprising:
- a processor;
- a memory;
- a hypergraph template library, stored in the memory and executable by the processor, comprising:
- a plurality of hypergraphs that are located in a top level of a programming code, the top level configured to provide a single pointer to the plurality of data structures;
- and
- a plurality of bulk data areas forming at least a portion of the application configured for execution on the multi-core computing device, the plurality of hypergraphs including:
- a plurality of pointers such that the multi-core computing device that runs the application accesses a second processor, the second processor including cache memory and main memory, the application capturing the plurality of pointers in the cache memory and capturing a plurality of data structures in the main memory;
- and
- a basic hypergraph that comprises a hyperedge table, a tentacle table, a vertex table and a backpointer table.
A computing device including one or more processors and a memory device storing instructions that are executable by the one or more processors, the memory device embodying:
- a hypergraph template library comprising:
- a plurality of hypergraphs that are located in a top level of a programming code, the to level configured to provide a single pointer to the plurality of data structures;
- and
- a plurality of bulk data areas forming at least a portion of an application configured for execution on a multi-core computing device, the plurality of hypergraphs including:
- a plurality of pointers such that the multi-core computing device that runs the application accesses a second processor, the second processor including cache memory and main memory, wherein the application captures the plurality of pointers in the cache memory and captures a plurality of data structures in the main memory;
- and
- a basic hypergraph that comprises a tentacle table and a backpointer table, wherein if the tentacle table and the backpointer table are statically known, the tentacle table and the backpointer table are not stored in memory at runtime and only a known value is stored in memory at runtime.
A method, comprising:
- under control of a processor configured with specific executable instructions to perform acts comprising:
- a hypergraph template library comprising:
- a plurality of bulk data areas forming at least a portion of an application configured for execution on a multi-core computing device, and
- a plurality of hypergraphs that are located in a top level of a programming code, the to level configured to provide a single pointer to the plurality of data structures, the plurality of hypergraphs including:
- a plurality of pointers such that the multi-core computing device that runs the application accesses a second processor, the second processor including cache memory and main memory, wherein the application captures the plurality of pointers in the cache memory and captures a plurality of data structures in the main memory;
- and
- a basic hypergraph that comprises a hyperedge table, a tentacle table, a vertex table and a backpointer table.
Dependencies are inferred from the claim text.