System and method of storing and analyzing information
AssigneeBattelle Memorial Institute
InventorsJohn T. Feo, David J. Haglin, Alessandro Morari, Antonino Tumeo, Oreste Villa, Jesse R. Weaver
Life of this patent
Estimating the term…
Abstract
A system and method of storing and analyzing information is disclosed. The system includes a compiler layer to convert user queries to data parallel executable code. The system further includes a library of multithreaded algorithms, processes, and data structures. The system also includes a multithreaded runtime library for implementing compiled code at runtime. The executable code is dynamically loaded on computing elements and contains calls to the library of multithreaded algorithms, processes, and data structures and the multithreaded runtime library.
Claims21
1-28. (canceled)
A method for storing and analyzing information comprising:
- receiving, at runtime, a graph database query specified in a query language;
- during the runtime, converting the query to data parallel source code;
- during the runtime, compiling the data parallel source code to provide executable code;
- during the runtime, dynamically loading the executable code onto a plurality of computing elements;
- during the runtime, executing the executable code, the executing comprising:
- calling one or more methods of a multithreaded runtime library, the multithreaded runtime library comprising a plurality of methods for implementing a global address space and thread management, the calling the one or more methods of the multithreaded runtime library comprising:
- calling an API of the multithreaded runtime library to allocate memory in the global address space;
- and
- calling an API of the multithreaded runtime library to free memory in the global address space;
- and
- returning query execution results in response to the graph database query.
A method of implementing a graph database with an oversubscription of threads to computing elements comprising:
- receiving a query, at runtime, specified in a query language;
- during the runtime, converting the query to data parallel source code;
- during the runtime, compiling the data parallel source code to provide data parallel executable code;
- loading the data parallel executable code onto computing elements;
- and
- executing the data parallel executable code, the executing comprising:
- calling at least one method of a graph database library of multithreaded algorithms, processes, and data structures for managing a graph database and query execution, the calling at the least one method of the graph database library comprising calling a method to instantiate at least one of the data structures;
- and
- returning query execution results in response to the query.
A method for storing and analyzing information comprising:
- receiving, at runtime, a graph database query specified in a query language;
- during the runtime, converting the query to data parallel source code;
- during the runtime, compiling the data parallel source code to provide executable code;
- during the runtime, dynamically loading the executable code onto a plurality of computing elements;
- during the runtime, executing the executable code, the executing comprising:
- calling one or more methods of a multithreaded graph database library, the graph database library comprising multithreaded algorithms, processes, and data structures for managing the graph database and query execution, the graph database library comprising a plurality of methods for accessing the multithreaded algorithms, processes, and data structures, one or more of the methods being called by the executable code;
- calling a method of the graph database library to instantiate at least one data structure of the graph database library in a global address space, the global address space being partitioned between the plurality of computing elements;
- and
- during the runtime, returning query execution results in response to the graph database query.
Dependencies are inferred from the claim text.