Acceleration techniques for graph analysis programs
AssigneeAmazon Technologies, Inc.
InventorsBradley R. Bebee, Bryan B. Thompson, Thomas James Lewis, Olaf Hartig
Life of this patent
Estimating the term…
Abstract
Source code of a graph analysis program expressed in a platform-independent language which supports linear algebra primitives is obtained. An executable version of the program is generated, which includes an invocation of a function of a parallel programming library optimized for a particular hardware platform. A result of executing the program is stored.
Claims20
A computer-implemented method, comprising:
- in response to obtaining, at a cloud computing environment via one or more programmatic interfaces, an indication of a first hardware architecture targeted for execution of at least a portion of a first graph analysis program:
- preparing, at the cloud computing environment, a transformed version of the first graph analysis program, wherein the transformed version of the first graph analysis program includes one or more code optimizations specific to the first hardware architecture, wherein the one or more code optimizations includes one or more modifications of a first abstract syntax tree (AST) of the first graph analysis program;
- causing the transformed version of the first graph analysis program to be executed at a first resource of the cloud computing environment, wherein the first resource implements the first hardware architecture;
- and
- storing, in an artifact repository in the cloud computing environment, the first AST and performance data of the transformed version of the first graph analysis program when executed at the first resource;
- outputting performance information about the first graph analysis program via the one or more programmatic interfaces, wherein the performance information includes the first AST and the performance data stored in the artifact repository;
- in response to obtaining, at the cloud computing environment via the one or more programmatic interfaces, an indication of a second hardware architecture targeted for execution of at least a portion of a second graph analysis program, wherein the second hardware architecture differs from the first hardware architecture:
- preparing, at the cloud computing environment, a transformed version of the second graph analysis program, wherein the transformed version of the second graph analysis program includes one or more code optimizations specific to the second hardware architecture, wherein the one or more code optimizations includes one or more modifications of a second AST of the second graph analysis program;
- causing the transformed version of the second graph analysis program to be executed at a second resource of the cloud computing environment, wherein the second resource implements the second hardware architecture;
- and
- storing, in the artifact repository, the second AST and debugging data associated with execution of the second transformed version at the second resource;
- and
- outputting debugging information about the second graph analysis program via the one or more programmatic interfaces, wherein the debugging information includes the second AST and the debugging data stored in the artifact repository.
A system, comprising:
- one or more computing devices;
- wherein the one or more computing devices include instructions that upon execution on or across the one or more computing devices cause the one or more computing devices to:
- in response to obtaining, at a cloud computing environment via one or more programmatic interfaces, an indication of a first hardware architecture targeted for execution of at least a portion of a first graph analysis program:
- prepare, at the cloud computing environment, a transformed version of the first graph analysis program, wherein the transformed version of the first graph analysis program includes one or more code optimizations specific to the first hardware architecture, wherein the one or more code optimizations includes one or more modifications of a first abstract syntax tree (AST) of the first graph analysis program;
- cause the transformed version of the first graph analysis program to be executed at a first resource of the cloud computing environment, wherein the first resource implements the first hardware architecture;
- and
- store, in an artifact repository in the cloud computing environment, the first AST and performance data of the transformed version of the first graph analysis program when executed at the first resource;
- output performance information about the first graph analysis program the one or more programmatic interfaces, wherein the performance information includes the first AST and the performance data stored in the artifact repository;
- in response to obtaining, at the cloud computing environment via the one or more programmatic interfaces, an indication of a second hardware architecture targeted for execution of at least a portion of a second graph analysis program, wherein the second hardware architecture differs from the first hardware architecture:
- prepare, at the cloud computing environment, a transformed version of the second graph analysis program, wherein the transformed version of the second graph analysis program includes one or more code optimizations specific to the second hardware architecture, wherein the one or more code optimizations includes one or more modifications of a second AST of the second graph analysis program;
- cause the transformed version of the second graph analysis program to be executed at a second resource of the cloud computing environment, wherein the second resource implements the second hardware architecture;
- and
- store, in the artifact repository, the second AST and debugging data associated with execution of the second transformed version at the second resource;
- and
- output debugging information about the second graph analysis program via the one or more programmatic interfaces, wherein the debugging information includes the second AST and the debugging data stored in the artifact repository.
One or more non-transitory computer-accessible storage media storing program instructions that when executed on or across one or more processors cause the one or more processors to:
- in response to obtaining, at a cloud computing environment via one or more programmatic interfaces, an indication of a first hardware architecture targeted for execution of at least a portion of a first graph analysis program:
- prepare, at the cloud computing environment, a transformed version of the first graph analysis program, wherein the transformed version of the first graph analysis program includes one or more code optimizations specific to the first hardware architecture, wherein the one or more code optimizations includes one or more modifications of a first abstract syntax tree (AST) of the first graph analysis program;
- cause the transformed version of the first graph analysis program to be executed at a first resource of the cloud computing environment, wherein the first resource implements the first hardware architecture;
- and
- store, in an artifact repository in the cloud computing environment, the first AST and performance data of the transformed version of the first graph analysis program when executed at the first resource;
- output performance information about the first graph analysis program via the one or more programmatic interfaces, wherein the performance information includes the first AST and the performance data stored in the artifact repository;
- in response to obtaining, at the cloud computing environment via the one or more programmatic interfaces, an indication of a second hardware architecture targeted for execution of at least a portion of a second graph analysis program, wherein the second hardware architecture differs from the first hardware architecture:
- prepare, at the cloud computing environment, a transformed version of the second graph analysis program, wherein the transformed version of the second graph analysis program includes one or more code optimizations specific to the second hardware architecture, wherein the one or more code optimizations includes one or more modifications of a second AST of the first graph analysis program;
- cause the transformed version of the second graph analysis program to be executed at a second resource of the cloud computing environment, wherein the second resource implements the second hardware architecture;
- and
- store, in the artifact repository, the second AST and debugging data associated with execution of the second transformed version at the second resource;
- and
- output debugging information about the second graph analysis program via the one or more programmatic interfaces, wherein the debugging information includes the second AST and the debugging data stored in the artifact repository.
Dependencies are inferred from the claim text.