发明名称 Method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system
摘要 A method and system of compiling and linking source stream programs for efficient use of multi-node devices. The system includes a compiler, a linker, a loader and a runtime component. The process converts a source code stream program to a compiled object code that is used with a programmable node based computing device having a plurality of processing nodes coupled to each other. The programming modules include stream statements for input values and output values in the form of sources and destinations for at least one of the plurality of processing nodes and stream statements that determine the streaming flow of values for the at least one of the plurality of processing nodes. The compiler converts the source code stream based program to object modules, object module instances and executables. The linker matches the object module instances to at least one of the multiple cores. The loader loads the tasks required by the object modules in the nodes and configure the nodes matched with the object module instances. The runtime component runs the converted program.
申请公布号 US9110692(B2) 申请公布日期 2015.08.18
申请号 US201113204164 申请日期 2011.08.05
申请人 发明人 Master Frederick;Master Paul
分类号 G06F9/45;G06F9/38 主分类号 G06F9/45
代理机构 Nixon Peabody LLP 代理人 Nixon Peabody LLP
主权项 1. A system to convert a source code stream based program including multiple parallel computing construct program streams to execute on a multiple node computing device, called functions, and a stream expression including at least one of the group of a stream, a function call, a constant or an operation, the system comprising: a compiler executing on a hardware controller of the system to convert the source code stream based program to a converted program including object modules, object module instances and executables, at least one object module instance being a stream source of one program stream of the multiple parallel computing construct program streams and at least one object module instance being at least one stream destination of the program stream, wherein the program stream conveys data values from the stream source to the at least one stream destination and wherein the compiler receives a data structure containing source modules, source module instances and source code for called functions and for each operation and for each function call, and wherein the compiler creates or retrieves a separate source module that includes: identical input streams to the inputs of the operation or function; a single output stream with the same type as the output of the operation or function; andthread-domain code that: consumes a single value from each input stream and supplies those values to an instance of the operation or a function call; puts the value resulting from the operation or function call into the module output stream; and sends an appropriate acknowledgement; a linker executing on a hardware controller of the system to match the object module instances of the program stream to at least one of the multiple nodes; a loader executing on a hardware controller of the system to load tasks required by the object modules in the nodes and configure cores of the multiple node computing device matched with the object module instances; and a runtime component to run the converted program on the multiple core computing device.
地址