IP Library Granted Patent US 8,024,708
Granted Patent B2
US 8,024,708 · App. 11/714,629 · Granted Sep 20, 2011

Systems and methods for debugging an application running on a parallel-processing computer system

Assignee: Google Inc.
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 8,024,708
App. No.
11/714,629
Granted
Sep 20, 2011
Kind
B2
Abstract

A runtime system implemented in accordance with the present invention provides an application platform for parallel-processing computer systems. Such a runtime system enables users to leverage the computational power of parallel-processing computer systems to accelerate/optimize numeric and array-intensive computations in their application programs. This enables greatly increased performance of high-performance computing (HPC) applications.

Claims (46)

1. A computer-implemented method, comprising:

at a computer having memory and a plurality of processing elements:

receiving one or more operation requests issued by an application and directed to a parallel-processing computer system, wherein the one or more operation requests include a first operation request and a second operation request consecutive to the first operation request, and the two consecutive operation requests are associated with a user-initiated data examination request;

preparing one or more compute kernels for the one or more operation requests, wherein the one or more compute kernels are configured to execute on the plurality of processing elements of the parallel-processing computer system, further including:

generating a first set of compute kernels corresponding to a merge of the first and second operation requests; and

generating a second set of compute kernels corresponding to the first operation request alone; and

arranging for execution of the one or more compute kernels on the plurality of processing elements, further including debugging the first set of compute kernels through the execution of the second set of compute kernels.

2. The method of claim 1 , wherein the user-initiated data examination request is embedded in the application.

3. The method of claim 1 , wherein the user-initiated data examination request is launched through a program debugging tool.

4. The method of claim 1 , wherein the user-initiated data examination request is a user-specified breakpoint.

5. The method of claim 1 , wherein results from the execution of the second set of compute kernels are used for debugging results from the execution of the first set of compute kernels.

6. A parallel-processing computer system, comprising:

memory;

a plurality of processing elements; and

at least one program stored in the memory and executed by the plurality of processing elements, the at least one program including:

instructions for receiving one or more operation requests issued by an application and directed to the parallel-processing computer system, wherein the one or more operation requests include a first operation request and a second operation request consecutive to the first operation request, and the two consecutive operation requests are associated with a user-initiated data examination request;

instructions for preparing one or more compute kernels for the one or more operation requests, wherein the one or more compute kernels are configured to execute on the plurality of processing elements of the parallel-processing computer system, further including:

instructions for generating a first set of compute kernels corresponding to a merge of the first and second operation requests; and

instructions for generating a second set of compute kernels corresponding to the first operation request alone; and

instructions for arranging for execution of the one or more compute kernels on the plurality of processing elements, further including instructions for debugging the first set of compute kernels through the execution of the second set of compute kernels.

7. The computer system of claim 6 , wherein the user-initiated data examination request is embedded in the application.

8. The computer system of claim 6 , wherein the user-initiated data examination request is launched through a program debugging tool.

9. The computer system of claim 6 , wherein the user-initiated data examination request is a user-specified breakpoint.

10. The computer system of claim 6 , wherein results from the execution of the second set of compute kernels are used for debugging results from the execution of the first set of compute kernels.

11. A computer program product for use in conjunction with a parallel-processing computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:

instructions for receiving one or more operation requests issued by an application and directed to the parallel-processing computer system, wherein the one or more operation requests include a first operation request and a second operation request consecutive to the first operation request, and the two consecutive operation requests are associated with a user-initiated data examination request;

instructions for preparing one or more compute kernels for the one or more operation requests, wherein the one or more compute kernels are configured to execute on a plurality of processing elements of the parallel-processing computer system, further including:

instructions for generating a first set of compute kernels corresponding to a merge of the first and second operation requests; and

instructions for generating a second set of compute kernels corresponding to the first operation request alone; and

instructions for arranging for execution of the one or more compute kernels on the plurality of processing elements, further including instructions for debugging the first set of compute kernels through the execution of the second set of compute kernels.

12. The computer program product of claim 11 , wherein the user-initiated data examination request is embedded in the application.

13. The computer program product of claim 11 , wherein the user-initiated data examination request is launched through a program debugging tool.

14. The computer program product of claim 11 , wherein the user-initiated data examination request is a user-specified breakpoint.

15. The computer program product of claim 11 , wherein results from the execution of the second set of compute kernels are used for debugging results from the execution of the first set of compute kernels.

16. The computer program product of claim 11 , wherein the second set of compute kernels is not a subset of the first set of compute kernels.

17. The computer program product of claim 11 , wherein the second set of compute kernels is a subset of the first set of compute kernels.

18. The computer program product of claim 11 , wherein the first set of compute kernels is executed on one or more graphical processing units and the second set of compute kernels is executed on one or more central processing units.

19. The computer program product of claim 11 , wherein the first set of compute kernels includes at least one pre-existing compute kernel that was previously generated in response to one or more earlier operation requests issued by the application.

20. The method of claim 1 , wherein the second set of compute kernels is not a subset of the first set of compute kernels.

21. The method of claim 1 , wherein the second set of compute kernels is a subset of the first set of compute kernels.

22. The method of claim 1 , wherein the first set of compute kernels is executed on one or more graphical processing units and the second set of compute kernels is executed on one or more central processing units.

23. The method of claim 1 , wherein the first set of compute kernels includes at least one pre-existing compute kernel that was previously generated in response to one or more earlier operation requests issued by the application.

24. The computer system of claim 6 , wherein the second set of compute kernels is not a subset of the first set of compute kernels.

25. The computer system of claim 6 , wherein the second set of compute kernels is a subset of the first set of compute kernels.

26. The computer system of claim 6 , wherein the first set of compute kernels is executed on one or more graphical processing units and the second set of compute kernels is executed on one or more central processing units.

27. The computer system of claim 6 , wherein the first set of compute kernels includes at least one pre-existing compute kernel that was previously generated in response to one or more earlier operation requests issued by the application.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044101/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2009
From: PEAKSTREAM, INC.
To: GOOGLE INC.
Reel/Frame 022963/0317 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2007
From: DEMETRIOU, CHRISTOPHER G.; PAPAKIPOS, MATTHEW N.; GIBBS, NOAH L.
To: PEAKSTREAM, INC.
Reel/Frame 019346/0647 →
Continuity (3)
Provisional Application 60815532 · Jun 20, 2006
Provisional Application 60903188 · Feb 23, 2007
Related Publication 20070294671A1 · Dec 20, 2007