发明名称 Method, apparatus and computer program product for automatically generating a computer program using consume, simplify and produce semantics with normalize, transpose and distribute operations
摘要 A code generator and multi-core framework are executable in a computer system to implement methods as disclosed herein, including a method for the code generator to automatically generate multi-threaded source code from functional specifications, and for the multi-core framework, which is a run time component, to generate multi-threaded task object code from the multi-threaded source code and to execute the multi-threaded task object code on respective processor cores. The methods provide transparency to the programmer, and during execution, provide automatic identification of processing parallelisms. The methods implement Consume-Simplify-Produce and Normalize-Transpose-Distribute operations to reduce complex expression sets in a functional specification to simplified expression sets operable in parallel processing environments through the generated multi-threaded task object code. The result is a code generator which compiles transparent declarative code into multi-threaded code and that in the process identifies and assigns parallel processing paths to improve overall processing performance.
申请公布号 US8839212(B2) 申请公布日期 2014.09.16
申请号 US201314042699 申请日期 2013.09.30
申请人 Texas Tech University System 发明人 Cooke Daniel E.;Rushton J. Nelson;Nemanich Brad
分类号 G06F9/45;G06F9/44 主分类号 G06F9/45
代理机构 Chalker Flores, LLP 代理人 Chalker Daniel J.;Flores Edwin S.;Chalker Flores, LLP
主权项 1. An apparatus for generating an executable program code operable on a multiple processor electronic data processing machine, the executable program code directing a plurality of parallel paths in a multiple processor environment, the apparatus comprising: a storage device; and at least one processor connected to the storage device, the at least one processor: (a) expressing each of a plurality of operations in a set of first level expressions of the operation,(b) automatically generating source code language commands based on the first level expressions of the plurality of operations,(c) automatically identifying parallelisms (parallel processing paths) exhibited in the generated source code language commands by (i) identifying any parallelisms (parallel processing paths) exhibited without simplification in the set of first level expressions of the plurality of operations, (ii) determining a level of nesting for each of the first level expressions, (iii) if the level of nesting is greater than a defined level then carrying out a normalize, transpose, distribute (NTD) process sequence on the first level expressions having a level of nesting greater than the defined level, (iv) if the level of nesting is equal to the defined level then carrying out a consume, simplify, produce (CSP) process sequence on the first level expressions having the level of nesting equal to the defined level, (v) identifying any parallelisms (parallel processing paths) exhibited in the normalize, transpose, distribute process sequence on the first level expressions having the level of nesting greater than the defined level, and (vi) identifying any parallelisms (parallel processing paths) exhibited after the consume, simplify, produce process sequence on the first level expressions having the level of nesting equal to the defined level,(d) compiling the generated source code language commands into the executable program code, and(e) storing the executable program code to the storage device.
地址 Lubbock TX US