发明名称 Optimized division of work among processors in a heterogeneous processing system
摘要 A compiler implemented by a computer performs optimized division of work across heterogeneous processors. The compiler divides source code into code sections and characterizes each of the code sections based on pre-defined criteria. Each of the code sections is characterized as at least one of: allocate to a main processor, allocate to a processing element, allocate to one of a parameterized main processor and a parameterized processing element, and indeterminate. The compiler analyzes side-effects and costs of executing the code sections on allocated processors, and transforms the code sections based on results of the analyzing. The transforming includes re-characterizing the code sections for alternate execution in a runtime environment.
申请公布号 US8997071(B2) 申请公布日期 2015.03.31
申请号 US201213608043 申请日期 2012.09.10
申请人 International Business Machines Corporation 发明人 Chen Tong;O'Brien John K. P.;Sura Zehra N.
分类号 G06F9/45 主分类号 G06F9/45
代理机构 Cantor Colburn LLP 代理人 Cantor Colburn LLP
主权项 1. A method, comprising: dividing, by a compiler, source code into code sections; evaluating each of the code sections based on pre-defined criteria; characterizing each of the code sections based on results of the evaluating, the characterizing including preliminarily allocating each of the code sections to a corresponding one of a group of heterogeneous processors based on the characteristics, the group of heterogeneous processors including a main processor, a processing element, a parameterized main processor, and a parameterized processing element, wherein a determination that any of the results of the evaluating reflect no decision on allocation of one or more of the code sections to a processor causes the compiler to pass the decision on allocation to runtime code, the runtime code rendering the decision based on at least one of dynamically changing power requirements and performance considerations; analyzing side-effects and costs of executing the code sections on preliminarily allocated processors; transforming at least one of the code sections based on results of the analyzing to produce multiple versions of the at least one of the code sections, each of the versions having a different sequence of instructions and each of the versions optimized for a different set of performance characteristics, the optimization of the versions is a function of characteristics of each of the heterogeneous processors; and selecting one of the versions based on evaluation of parameters, and evaluation of the performance characteristics, the selected version indicated for alternate execution by the runtime code in a runtime environment; wherein the costs evaluated include costs due to placing successive code sections on different processors, costs associated with processing element start-ups or any additional data transfers required as a result of executing the code sections on the allocated processors.
地址 Armonk NY US