主权项 |
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. |