US 11,900,079 B2
Acceleration techniques for graph analysis programs
Bradley R. Bebee, Washington, DC (US); Bryan B. Thompson, Greensboro, NC (US); Thomas James Lewis, Washington, DC (US); and Olaf Hartig, Bremen (DE)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Oct. 27, 2021, as Appl. No. 17/512,515.
Application 17/512,515 is a continuation of application No. 16/563,695, filed on Sep. 6, 2019, granted, now 11,200,032.
Application 16/563,695 is a continuation of application No. 15/354,981, filed on Nov. 17, 2016, granted, now 10,409,560, issued on Sep. 10, 2019.
Claims priority of provisional application 62/256,893, filed on Nov. 18, 2015.
Prior Publication US 2022/0050666 A1, Feb. 17, 2022
Int. Cl. G06F 8/30 (2018.01); G06F 8/71 (2018.01)
CPC G06F 8/311 (2013.01) [G06F 8/71 (2013.01)] 20 Claims
OG exemplary drawing
 
1. 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.