A system to convert a source code program including stream domain code and thread domain code to execute on a multiple node computing device comprising: a compiler, configured to convert (404,406, 408) the source code program to object files comprising object modules, object module instances and executables, wherein the compiler receives a source program comprising variable declarations, stream declarations, function declarations, definitions and calls, and source module declarations, definitions and instances and compiles source modules into object modules, source module instances into object module instances and source code for called functions into executables; a dynamic linker, configured to match the object module instances to at least one of the multiple nodes of the multiple node computing device, thereby establishing tasks for the nodes, wherein tasks are binary data representing the object module instances, wherein for each object module instance, the dynamic linker: determines if there is a suitable node for the object module instance; selects a suitable node for the object module instance; and performs assignments (414; 908) and allocates memory to the object module instance, wherein the assignments comprise assigning a node input port to each input stream and assigning a node output port to each output stream; a loader, configured to load tasks required by the object modules in the nodes, and further configured to configure the nodes matched with the object module instances; and a runtime component to run the converted program on the nodes. a compiler, configured to convert (404,406, 408) the source code program to object files comprising object modules, object module instances and executables, wherein the compiler receives a source program comprising variable declarations, stream declarations, function declarations, definitions and calls, and source module declarations, definitions and instances and compiles source modules into object modules, source module instances into object module instances and source code for called functions into executables; a dynamic linker, configured to match the object module instances to at least one of the multiple nodes of the multiple node computing device, thereby establishing tasks for the nodes, wherein tasks are binary data representing the object module instances, wherein for each object module instance, the dynamic linker: determines if there is a suitable node for the object module instance; selects a suitable node for the object module instance; and performs assignments (414; 908) and allocates memory to the object module instance, wherein the assignments comprise assigning a node input port to each input stream and assigning a node output port to each output stream; determines if there is a suitable node for the object module instance; selects a suitable node for the object module instance; and performs assignments (414; 908) and allocates memory to the object module instance, wherein the assignments comprise assigning a node input port to each input stream and assigning a node output port to each output stream; a loader, configured to load tasks required by the object modules in the nodes, and further configured to configure the nodes matched with the object module instances; and a runtime component to run the converted program on the nodes.