发明名称 Executing database queries using multiple processors
摘要 A system and a method are disclosed for efficiently executing database queries using a computing device that includes a central processing unit (CPU) and a processing unit based on single instruction multiple thread (SIMT) architecture, for example, a GPU. A query engine determines a target processing unit to execute a database query based on factors including the type and amount of data processed by the query, the complexity of the query, and the current load on the processing units. An intermediate executable representation generator generates an intermediate executable representation for executing a query on a database virtual machine. If the query engine determines that the database query should be executed on an SIMT based processing unit, a native code generator generates native code from the intermediate executable representation. The native code is optimized for execution using a particular processing unit.
申请公布号 US8762366(B1) 申请公布日期 2014.06.24
申请号 US201313835795 申请日期 2013.03.15
申请人 MeLLmo Inc. 发明人 Becerra Santiago;Becerra Santiago E.;Schaefer Alex C.;McInerney John;Cheng Patrick
分类号 G06F7/00;G06F17/30 主分类号 G06F7/00
代理机构 Fenwick & West LLP 代理人 Fenwick & West LLP
主权项 1. A method for executing database queries, comprising: receiving a database query for execution by a database system, the database system configured to process database queries using a first processing unit including one or more central processing units (CPUs) and a second processing unit including one or more single instruction multiple thread based processing units; generating, by the database system, an intermediate executable representation including code for processing the database query, the code comprising instructions for execution by a database virtual machine, the processing performed by executing operators representing portions of computations for processing the database query; generating native code from the intermediate executable representation, wherein the native code is optimized for execution on the second processing unit, wherein generating native code comprises: identifying a conditional branch statement in which the execution of instructions on a first branch takes more units of time than execution of instructions on a second branch of the code; and introducing one or more dummy instructions in the second branch of code, wherein the number of dummy instructions introduced in the second branch of code is determined so as to cause the execution of the first branch and the second branch to take the same number of units of time for execution; compiling the native code to executable code; selecting, by the database system, a target processing unit for executing an operator of the database query based on factors comprising the data processed by the query; responsive to selection of the second processing unit for executing the operator of the database query, executing the compiled executable code by the database system using the second processing unit; and sending the result of execution of the query.
地址 Solana Beach CA US