Systems and methods for generating reference results using a parallel-processing computer system
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-009/46
G06F-015/16
출원번호
US-0714630
(2007-03-05)
등록번호
US-8261270
(2012-09-04)
발명자
/ 주소
Papakipos, Matthew N.
Grant, Brian K.
Demetriou, Christopher G
출원인 / 주소
Google Inc.
대리인 / 주소
Morgan, Lewis & Bockius LLP
인용정보
피인용 횟수 :
2인용 특허 :
40
초록▼
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-in
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.
대표청구항▼
1. A computer-implemented method, comprising: at runtime, wherein the method is performed by a parallel-processing computer system having memory and a plurality of processing elements including a target processing element of a first type and a reference processing element of a second type that is di
1. A computer-implemented method, comprising: at runtime, wherein the method is performed by a parallel-processing computer system having memory and a plurality of processing elements including a target processing element of a first type and a reference processing element of a second type that is different from the first type receiving a plurality of operation requests directed to the parallel-processing computer system from an application; andautomatically performing the following operations on the parallel-processing computer system, including: selecting a subset of the plurality of operation requests to be executed on the target processing element;preparing a first set of compute kernels for the subset of the plurality of operation requests, wherein the first set of compute kernels is configured to execute on the reference processing element;generating a reference result for the subset of the plurality of operation requests through execution of the first set of compute kernels on the reference processing element;preparing a second set of compute kernels for the subset of the plurality of operation requests, wherein the second set of compute kernels is configured to execute on the target processing element;generating a target result for the subset of the plurality of operation requests through execution of the second set of compute kernels on the target processing element;performing a result comparison between the reference result and the target result; andbased on the result comparison exceeding a predefined non-zero value, performing at least one of: aborting execution of the application or storing a result mismatch signal in a log file. 2. The method of claim 1, wherein preparing the first set of compute kernels and the second set of compute kernels further includes: generating first and second intermediate representations of the set of one or more operation requests; anddesignating, respectively, the first intermediate representation for execution on the reference processing element and the second intermediate representation for execution on the target processing element. 3. The method of claim 1, further comprising: generating the result mismatch signal if a difference between the reference result and the target result exceeds the predefined non-zero value, wherein the predefined non-zero value is defined at least by the reference result. 4. The method of claim 1, wherein at least one of the set of one or more operation requests is associated with an array object of the application and both the reference and target results are associated with the array object of the application. 5. The method of claim 1, wherein the first type is a CPU and the second type is a GPU. 6. The method of claim 1, wherein each of the first set of compute kernels is dynamically generated for the reference processing element and at least one of the second set of compute kernels was previously generated in response to one or more earlier operation requests issued by the application. 7. The method of claim 1, wherein the result comparison is performed asynchronously following execution of the application on the parallel-processing computer system. 8. The method of claim 1, wherein the result comparison is performed synchronously with execution of the application on the parallel-processing computer system. 9. A parallel-processing computer system, comprising: memory;one or more types of processing elements including a target processing element of a first type and a reference processing element of a second type that is different from the first type; andat least one program stored in the memory and executed by the one or more types of processing elements, wherein the at least one program is part of a runtime system performed by the parallel-processing computer system, the at least one program including:instructions for receiving, from an application, a plurality of operation requests directed to the parallel-processing computer system;instructions for automatically performing the following operations on the parallel-processing computer system, including: selecting a subset of the plurality of operation requests to be executed on the target processing element;preparing a first set of compute kernels for the subset of the plurality of operation requests, wherein the first set of compute kernels is configured to execute on the reference processing element;generating a reference result for the subset of the plurality of operation requests through execution of the first set of compute kernels on the reference processing element;preparing a second set of compute kernels for the subset of the plurality of operation requests, wherein the second set of compute kernels is configured to execute on the target processing element;generating a target result for the subset of the plurality of operation requests through execution of the second set of compute kernels on the target processing element;performing a result comparison between the reference result and the target result;generating a result mismatch signal if a difference between the reference result and the target result exceeds a predefined condition; andbased on the result comparison exceeding a predefined non-zero value, performing at least one of: aborting execution of the application or storing a result mismatch signal in a log file. 10. The computer system of claim 9, wherein the instructions for preparing the first set of compute kernels and the second set of compute kernels further include instructions for: generating first and second intermediate representations of the set of one or more operation requests; anddesignating, respectively, the first intermediate representation for execution on the reference processing element and the second intermediate representation for execution on the target processing element. 11. The computer system of claim 9, wherein the instructions for generating the result mismatch signal comprise: generating the result mismatch signal if a difference between the reference result and the target result exceeds the predefined non-zero value, wherein the predefined non-zero value is defined at least by the reference result. 12. The computer system of claim 9, wherein at least one of the set of one or more operation requests is associated with an array object of the application and both the reference and target results are associated with the array object of the application. 13. The computer system of claim 9, wherein the first type is a CPU and the second type is a GPU. 14. The computer system of claim 9, wherein each of the first set of compute kernels is dynamically generated for the reference processing element and at least one of the second set of compute kernels was previously generated in response to one or more earlier operation requests issued by the application. 15. The computer system of claim 9, wherein the result comparison is performed asynchronously following execution of the application on the parallel-processing computer system. 16. The computer system of claim 9, wherein the result comparison is performed synchronously with execution of the application on the parallel-processing computer system. 17. A computer program product for use in conjunction with a parallel-processing computer system having memory and a plurality of processing elements, the computer program product comprising a non-transitory computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising a runtime system including at least one program, wherein the at least one program is performed by the parallel-processing computer system, the at least one program including: instructions for receiving, from an application, a plurality of operation requests directed to the parallel-processing computer system, wherein the parallel-processing computer system includes a target processing element of a first type and a reference processing element of a second type that is different from the first type;instructions for automatically performing the following operations on the parallel-processing computer system, including: selecting a subset of the plurality of operation requests to be executed on the target processing element;preparing a first set of compute kernels for the subset of the plurality of operation requests, wherein the first set of compute kernels is configured to execute on the reference processing element;generating a reference result for the subset of the plurality of operation requests through execution of the first set of compute kernels on the reference processing element;preparing a second set of compute kernels for the subset of the plurality of operation requests, wherein the second set of compute kernels is configured to execute on the target processing element;generating a target result for the subset of the plurality of operation requests through execution of the second set of compute kernels on the target processing element;performing a result comparison between the reference result and the target result;generating a result mismatch signal if a difference between the reference result and the target result exceeds a predefined condition; andbased on the result comparison exceeding a predefined non-zero value, performing at least one of: aborting execution of the application or storing a result mismatch signal in a log file. 18. The computer program product of claim 17, wherein at least one of the set of one or more operation requests is associated with an array object of the application and both the reference and target results are associated with the array object of the application. 19. The computer program product of claim 17, wherein the first type is a CPU and the second type is a GPU. 20. The computer program product of claim 17, wherein each of the first set of compute kernels is dynamically generated for the reference processing element and at least one of the second set of compute kernels was previously generated in response to one or more earlier operation requests issued by the application. 21. The computer program product of claim 17, wherein the result comparison is performed asynchronously following execution of the application on the parallel-processing computer system. 22. The computer program product of claim 17, wherein the result comparison is performed synchronously with execution of the application on the parallel-processing computer system.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (40)
Wu, Gansha; Lueh, Guei Yuan; Shi, Xiaohua, Apparatus and methods for restoring synchronization to object-oriented software applications in managed runtime environments.
Tang Jun ; So John Ling Wing, Computer operating process allocating tasks between first and second processors at run time based upon current processor load.
Kielstra,Allan Henry; Stepanian,Levon Sassoon; Stoodley,Kevin Alexander, Method and apparatus for transforming Java Native Interface function calls into simpler operations during just-in-time compilation.
Gupta Rajiv ; Worley ; Jr. William S., Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control.
Wright, Gregory M.; Wolczko, Mario I.; Seidl, Matthew L., Reducing the overhead involved in executing native code in a virtual machine through binary reoptimization.
Spix George A. (Eau Claire WI) Wengelski Diane M. (Eau Claire WI) Hawkinson Stuart W. (Eau Claire WI) Johnson Mark D. (Eau Claire WI) Burke Jeremiah D. (Eau Claire WI) Thompson Keith J. (Eau Claire W, System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel executi.
Craig Chambers ; Susan J. Eggers ; Brian K. Grant ; Markus Mock ; Matthai Philipose, System and method for performing selective dynamic compilation using run-time information.
Demetriou, Christopher G.; Papakipos, Matthew N.; Gibbs, Noah L., Systems and methods for debugging an application running on a parallel-processing computer system.
Crutchfield, William Y.; Grant, Brian K.; Papakipos, Matthew N., Systems and methods for dynamically choosing a processing element for a compute kernel.
Ankireddipally, Lakshmi Narasimha; Yeh, Ryh-Wei; Nichols, Dan; Devesetti, Ravi, Transaction data structure for process communications among network-distributed applications.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.