Methods of graph-type specialization and optimization in graph algorithm DSL compilation

    公开(公告)号:US10585945B2

    公开(公告)日:2020-03-10

    申请号:US15666310

    申请日:2017-08-01

    Abstract: Techniques herein generate, such as during compilation, polymorphic dispatch logic (PDL) to switch between specialized implementations of a polymorphic graph algorithm. In an embodiment, a computer detects, within source logic of a graph algorithm, that the algorithm processes an instance of a generic graph type. The computer generates several alternative implementations of the algorithm. Each implementation is specialized to process the graph instance as an instance of a respective graph subtype. The computer generates PDL that performs dynamic dispatch as follows. At runtime, the PDL receives a graph instance of the generic graph type. The PDL detects which particular graph subtype is the graph instance. The PDL then invokes whichever alternative implementation that is specialized to process the graph instance as an instance of the detected particular graph subtype. In embodiments, the source logic is expressed in a domain specific language (DSL), e.g. for analysis, traversal, or querying of graphs.

    OPTIMALLY DEPLOYING UTILITY REPAIR ASSETS TO MINIMIZE POWER OUTAGES DURING MAJOR WEATHER EVENTS

    公开(公告)号:US20190303810A1

    公开(公告)日:2019-10-03

    申请号:US15938988

    申请日:2018-03-28

    Abstract: The disclosed embodiments relate to a system that facilitates deployment of utility repair crews to nodes in a utility network. During operation, the system determines a node criticality for each node in the utility network based on a network-reliability analysis, which considers interconnections among the nodes in the utility network. The system also determines a node failure probability for each node in the utility network based on historical weather data, historical node failure data and weather forecast information for the upcoming weather event. The system uses the determined node criticalities and the determined node failure probabilities to determine a deployment plan for deploying repair crews to nodes in the utility network in preparation for the upcoming weather event. The system then presents the deployment plan to a person who uses the deployment plan to deploy repair crews to be available to service nodes in the utility network.

    Constructing an in-memory representation of a graph

    公开(公告)号:US10055509B2

    公开(公告)日:2018-08-21

    申请号:US14680150

    申请日:2015-04-07

    CPC classification number: G06F16/9024 G06F16/2246 G06F2201/80

    Abstract: Techniques for efficiently loading graph data into memory are provided. A plurality of node ID lists are retrieved from storage. Each node ID list is ordered based on one or more order criteria, such as node ID, and is read into memory. A new list of node IDs is created in memory and is initially empty. From among the plurality of node ID lists, a particular node ID is selected based on the one or more order criteria, removed from the node ID list where the particular node ID originates, and added to the new list. This process of selecting, removing, and adding continues until no more than one node ID list exists, other than the new list. In this way, the retrieval of the plurality of node ID lists from storage may be performed in parallel while the selecting and adding are performed sequentially.

    FAST GRAPH QUERY ENGINE OPTIMIZED FOR TYPICAL REAL-WORLD GRAPH INSTANCES WHOSE SMALL PORTION OF VERTICES HAVE EXTREMELY LARGE DEGREE

    公开(公告)号:US20180203897A1

    公开(公告)日:2018-07-19

    申请号:US15409091

    申请日:2017-01-18

    Abstract: Techniques herein accelerate graph querying by caching neighbor vertices (NVs) of super-node vertices. In an embodiment, a computer receives a graph query (GQ) to extract result paths from a graph in a database. The GQ has a sequence of query vertices (QVs) and a sequence of query edges (QEs). The computer successively traverses each QE and QV to detect paths of the graph that match the GQ. Traversing each QE and QV entails retrieving NVs of a current graph vertex (CGV) of a current traversal path. If the CGV is a key in a cache whose keys are graph vertices having an excessive degree, then the computer retrieves NVs from the cache. Otherwise, the computer retrieves NVs from the database. If the degree is excessive, and the CGV is not a key in the cache, then the computer stores, into the cache, the CGV as a key for the NVs.

    REDUCING SYNCHRONIZATION OF TASKS IN LATENCY-TOLERANT TASK-PARALLEL SYSTEMS

    公开(公告)号:US20170249187A1

    公开(公告)日:2017-08-31

    申请号:US15597460

    申请日:2017-05-17

    Abstract: Techniques are provided for reducing synchronization of tasks in a task scheduling system. A task queue includes multiple tasks, some of which require an I/O operation while other tasks require data stored locally in memory. A single thread is assigned to process tasks in the task queue. The thread determines if a task at the head of the task queue requires an I/O operation. If so, then the thread generates an I/O request, submits the I/O request, and may place the task at (or toward) the end of the task queue. When the task reaches the head of the task queue again, the thread determines if data requested by the I/O request is available yet. If so, then the thread processes the request. Otherwise, the thread may place the task at (or toward) the end of the task queue again.

Patent Agency Ranking