IP Library Granted Patent US 9,400,700
Granted Patent B2
US 9,400,700 · App. 14/749,362 · Granted Jul 26, 2016

Optimized system for analytics (graphs and sparse matrices) operations

Inventors: Kattamuri Ekanadham (Mohegan Lake, NY); William Pettit Horn (Scarsdale, NY); Joefon Jann (Ossining, NY); Manoj Kumar (Yorktown Heights, NY); Jose Eduardo Moreira (Irvington, NY); Pratap Chandra Pattnaik (Ossining, NY); Mauricio Jose Serrano (Bronx, NY); Ilie Gabriel Tanase (Somers, NY); Hao Yu (Valhalla, NY)
Assignee: International Business Machines Corporation
G06F9/541G06F17/30958
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,400,700
App. No.
14/749,362
Granted
Jul 26, 2016
Kind
B2
Abstract

A graph processing system includes a graph API (Application Program Interface), as executed on a processor of a computer and as capable of implementing any of a plurality of graph operators to express computations of input graph analytics applications. A run-time system, executed by the processor, implements graph operators specified by each graph API function and deploys the implemented graph operators to a selected computing system. A library contains multiple implementations for each graph API function, each implementation predetermined as being optimal for a specific set of conditions met by a graph being processed, for functional capabilities of a specific computing system on which the graph is being processed, and for resources available on that specific computing system.

Claims (32)

1. A graph processing system, comprising:

a graph API (Application Program Interface), as executed on a processor of a computer and as capable of implementing any of a plurality of graph operators to express computations of input graph analytics applications;

a run-time system, executed by the processor, to implement graph operators specified by each graph API function and to deploy the implemented graph operators to a selected computing system;

a library of multiple implementations for each graph API function, each implementation predetermined as being optimal for a specific set of conditions met by a graph being processed, for functional capabilities of a specific computing system on which the graph is being processed, and for resources available on that specific computing system; and

communication port to permit the run-time system to gather functional capabilities of different potential computing systems to execute the specified computations,

wherein the run-time system determines functional capabilities required by an implementation of a graph API function to be executed in a selected computing system, selects a preferred implementation of a graph API function from the multiple implementations in the library for executing a graph API function with the functional capabilities of the computing system, and determines an optimal machine to execute the preferred graph API function implementation as based on having obtaining functional capabilities of different computing systems accessible through the communication port.

2. The graph processing system of claim 1 , wherein the graph API and the run-time module operate on a run-time platform on top of an operating system on the computer.

3. The graph processing system of claim 1 , wherein the selected computing system executing the deployed implemented graph API function comprises a computing capability on a same computer as executing the API and the run-time system, the computing capability executing the deployed implemented graph API using a different processor and a different operating system from that executing the graph API and run-time system.

4. The graph processing system of claim 1 , wherein the graph processing system is executed on a first computer in a network interconnecting a plurality of computers, and the deployed implemented computations are executed on a different computing system on a second computer in the network different from the first computer.

5. The graph processing system of claim 1 , wherein the functional capabilities of the computing systems comprise one or more out of:

Field Programmable Gate Arrays (FPGAs);

Graphics Processing Units (GPUs);

a cluster of nodes with shared memory or message passing capability;

a cluster of nodes with NoSQL databases installed; and

a cluster of nodes with a Map/Reduce programming environment.

6. The graph processing system of claim 1 , wherein the selecting of the preferred implementation comprises:

evaluating a cost function associated with each implementation of a graph API function that can be executed with available functional capabilities of a selected computing system; and

selecting an implementation of graph API function having a minimal cost.

7. The graph processing system of claim 1 , wherein the run-time system implements a type-casting process to convert a data format of an input graph analytics application into another data format as necessary for a selected graph API and a selected computing system.

8. A graph processing system, comprising:

a graph API (Application Program Interface), as executed on a processor of a computer and as capable of implementing any of a plurality of graph operators to express computations of input graph analytics applications;

a run-time system, executed by the processor, to implement graph operators specified by each graph API function and to deploy the implemented graph operators to a selected computing system; and

a library of multiple implementations for each graph API function, each implementation predetermined as being optimal for a specific set of conditions met by a graph being processed, for functional capabilities of a specific computing system on which the graph is being processed, and for resources available on that specific computing system,

wherein each said graph API function implementation is associated with metadata wherein said selecting the preferred implementation comprises:

using meta data associated with the implementation to ascertain whether the implementation of the graph API function can be executed with available functional capabilities;

evaluating a cost function for each of the implementations of a graph API function that can be executed with available functional capabilities listed in the metadata and available from the system; and

selecting a graph API with a minimal cost.

9. A graph processing system, comprising:

a graph API (Application Program Interface), as executed on a processor of a computer and as capable of implementing any of a plurality of graph operators to express computations of input graph analytics applications;

a run-time system, executed by the processor, to implement graph operators specified by each graph API function and to deploy the implemented graph operators to a selected computing system; and

a library of multiple implementations for each graph API function, each implementation predetermined as being optimal for a specific set of conditions met by a graph being processed, for functional capabilities of a specific computing system on which the graph is being processed, and for resources available on that specific computing system,

wherein the run-time system and graph API provides a platform to input and implement a graph analytic application program from a user by way of a graph processing interface (GPI) such that the graph analytic application program is executed using a coding predetermined as optimal and which is portable across different programming languages and computer platforms and such that the user is shielded from details of optimizations for execution of the input graph analytic application program.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2015
From: EKANADHAM, KATTAMURI; HORN, WILLIAM PETTIT; JANN, JOEFON; KUMAR, MANOJ; MOREIRA, JOSE EDUARDO; PATTNAIK, PRATAP CHANDRA; SERRANO, MAURICIO JOSE; TANASE, ILIE GABRIEL; YU, HAO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035917/0142 →
Continuity (2)
Continuation 14588333 · Dec 31, 2014
Related Publication 20160188385A1 · Jun 30, 2016