System for automatically generating efficient application - customized client/server operating environment for heterogeneous network computers and operating systems
First Claim
1. A computer system, coupled through a communications channel, for executing an application program using a plurality of software chips, comprising:
- a plurality of target computers, said plurality of target computers being connected to form at least one network, each of said target computers coupled to the communications channel and including,a memory device coupled to the communications channel, said memory device including a first library of language injections, each language injection corresponding to one of a plurality of interprocessor communications (IPC) data objects, each language injection responsive to an IPC pattern derived from a CSL description of an interconnection of the plurality of software chips, for transferring, using a corresponding one of the plurality of IPC data objects, data and instructions through the communications channel; and
a processor using an operating system and having a compiler with a prographing language for compiling and executing each language injection in each of said plurality of target computers; and
a host computer, operatively coupled to said plurality of target computers through the communications channel, said hose computer including,a configurator for processing a computer environment specification and a parallel program configuration specification and for generating a plurality of IPC patterns and a plurality of IPC control commands, the IPC patterns for determining communications destinations on the network, the IPC control commands for transferring instructions among said plurality of target computers during execution of the application program, the computing environment specification for identifying operational attributes of said computer system, including a set of instructions for specifying the capabilities and availability of said plurality of target computers, of said plurality of software chips, of programming languages, of operating systems, and of protocols, and the configuration specification for identifying the configuration of the computer system, including a set of instructions for specifying a plurality of interconnections among said plurality of software chips using the plurality of IPC patterns and for specifying a desired order of execution of said plurality of software chips at particular target computers using the plurality of IPC control commands, said configurator for accepting input from a user and from said plurality of target computers for generating an application precedence matrix, said application precedence matrix for specifying interdependencies between said plurality of software chips for determining functional order of execution of said plurality of software chips;
a distributed process controller for processing said application precedence matrix and said plurality of IPC patterns, for communicating with said plurality of target computers using the plurality of IPC control commands, for controlling a sequence of execution of plurality of software chips, for ranking, according to at least one of processing speed and operational suitability, said plurality of target computers for minimizing time of execution of the application program, for generating and updating a system graph for monitoring execution of processes, for determining, using the generated system graph, an efficient combination of said plurality of target computers for minimizing time of execution of the application program, and for activating the plurality of IPC data objects in said plurality of target computers; and
a host memory device having a support daemon library for snoring a plurality of permanent daemons and a plurality of dynamic daemons, said host memory device including a second library of language injections, each language injection of said second library of language injection responsive to a respective one of the plurality of IPC control commands for activating and operating mailboxes, tuple spaces, sequential files, and user-defined IPC data objects operations residing in said host computer for executing the application program.
1 Assignment
0 Petitions
Accused Products
Abstract
A high level virtual computer in a heterogeneous hardware and software environment. A user specifies the hardware and software configuration of a virtual computer employing multiple coarse grain single instruction, multiple data (SIMD); multiple instruction, multiple data (MIMD); and pipelined parallel computing elements into a configurator, which activates a distributed process controller and supporting components in the desired virtual computer. Each processor in the virtual computer is equipped with a language injection library and runtime servers, i.e. daemons. The language injection library facilitates transference of data among the processors in the system during the execution of an application program, and isolates the details of coordinating the heterogeneous hardware and software in the virtual computer.
-
Citations
25 Claims
-
1. A computer system, coupled through a communications channel, for executing an application program using a plurality of software chips, comprising:
-
a plurality of target computers, said plurality of target computers being connected to form at least one network, each of said target computers coupled to the communications channel and including, a memory device coupled to the communications channel, said memory device including a first library of language injections, each language injection corresponding to one of a plurality of interprocessor communications (IPC) data objects, each language injection responsive to an IPC pattern derived from a CSL description of an interconnection of the plurality of software chips, for transferring, using a corresponding one of the plurality of IPC data objects, data and instructions through the communications channel; and a processor using an operating system and having a compiler with a prographing language for compiling and executing each language injection in each of said plurality of target computers; and a host computer, operatively coupled to said plurality of target computers through the communications channel, said hose computer including, a configurator for processing a computer environment specification and a parallel program configuration specification and for generating a plurality of IPC patterns and a plurality of IPC control commands, the IPC patterns for determining communications destinations on the network, the IPC control commands for transferring instructions among said plurality of target computers during execution of the application program, the computing environment specification for identifying operational attributes of said computer system, including a set of instructions for specifying the capabilities and availability of said plurality of target computers, of said plurality of software chips, of programming languages, of operating systems, and of protocols, and the configuration specification for identifying the configuration of the computer system, including a set of instructions for specifying a plurality of interconnections among said plurality of software chips using the plurality of IPC patterns and for specifying a desired order of execution of said plurality of software chips at particular target computers using the plurality of IPC control commands, said configurator for accepting input from a user and from said plurality of target computers for generating an application precedence matrix, said application precedence matrix for specifying interdependencies between said plurality of software chips for determining functional order of execution of said plurality of software chips; a distributed process controller for processing said application precedence matrix and said plurality of IPC patterns, for communicating with said plurality of target computers using the plurality of IPC control commands, for controlling a sequence of execution of plurality of software chips, for ranking, according to at least one of processing speed and operational suitability, said plurality of target computers for minimizing time of execution of the application program, for generating and updating a system graph for monitoring execution of processes, for determining, using the generated system graph, an efficient combination of said plurality of target computers for minimizing time of execution of the application program, and for activating the plurality of IPC data objects in said plurality of target computers; and a host memory device having a support daemon library for snoring a plurality of permanent daemons and a plurality of dynamic daemons, said host memory device including a second library of language injections, each language injection of said second library of language injection responsive to a respective one of the plurality of IPC control commands for activating and operating mailboxes, tuple spaces, sequential files, and user-defined IPC data objects operations residing in said host computer for executing the application program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13)
-
-
12. The computer system as set forth in claim 12, with the software means including means for creating a sequential file.
-
14. A method using a host computer for executing an application program using a plurality of software chips among a plurality of target computers, said plurality of target computers and said host computer connected to a Distributed Process Controller to form a network, said host computer using a configuration specification language (CSL) specification for identifying a configuration of the network, a computing environment specification language (CESL) specification for identifying operational attributes of said plurality of target computers coupled to the network, a network graph including a listing of at least one of an operating system, a programming language, and a communication protocol for each of said plurality of target computers coupled to the network a configuration graph including a location of each of said plurality of target computers coupled to the network, a plurality of single-instruction-multiple-data (SIMD) workers consisting, of a subset of the plurality of software chips, said lurality of SIMD workers assignable to any one of a plurality of locations on the network, a plurality of free central processing units for providing the plurality of SIMD workers, an application precedence matrix for identifying sequence interdependencies among the plurality of software chips, a plurality of interprocessor communications (IPC) patterns, generated using the CSL specification, for determining communications destinations on the network, and a plurality of remote command interpreter daemons for monitoring the network for instructions, said method comprising the steps of:
-
entering the configuration specification language (CSL) specification and the computing environment specification language (CESL) specification into said host computer coupled to the network; creating, on said host computer, the network graph from the CESL specification; parsing the CSL specification to build the configuration graph; calculating, using the network graph, default data and settings for the network; analyzing in the host computer, the configuration graph to identify deadlock in the CSL Specification; generating, using the network graph, the plurality of workers in the plurality of free central processing units; calculating, using at least one of the network graph, the configuration graph, and user input, implementation protocols; generating the application precedence matrix and the plurality of IPC patterns as code in said shot computer; sending the code from the host computer to the Distributed Process Controller and to the plurality of target computers; issuing an instruction from the host computer to activate the Distributed Process Controller; receiving the code at the Distributed Process Controller; controlling, using the Distributed Process Controller the execution of the plurality of software chips; activating, using the Distributed Process Controller, the plurality of remote command interpreter daemons in the plurality of target computers, respectively; loading the plurality of software chips into respective memory spaces of each of the plurality of target computers for transferring data and instructions for executing the application program; sending the application program from the host computer to the plurality of target computers; and executing the application program on the plurality of target computers. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A method for executing an application program using a plurality of software chips among a plurality of target computers, a host computer, and a Distributed Process Controller, said target computers said host computer, and said Distributed Process Controller connected to a communications channel said host computer using a configuration specification language (CSL) specification for identifying a configuration of the plurality of target computers connected to the communications channel, a computing environment specification language (CESL) specification for identifying operational attributes of said plurality of target cmputers connected to the communications channel, a network graph including a listing of at least one of an operating system, a programming language, and a communication protocol for each of said plurality of target computers connected to the communications channel, a configuration graph including a location of each of said plurality of target computers connected to the communications channel, a plurality of single-instruction-multiple-data (SIMD) workers consisting of a subset of the plurality of software chips, said plurality of SIMD workers assignable to any one of the plurality of target computers connected to the communications channel, a plurality of free central processing units for providing the plurality of SIMD workers, an application precedence matrix for identifying sequence interdependencies among the, plurality of software chips, a plurality of interprocessor communications (IPC) patterns, generated using the CSL specification, for determining communications destinations on the network, and a plurality of remote command interpreter daemons for monitoring the communications channel for instructions, said method comprising the steps of:
-
entering the configuration specification language (CSL) specification and the computing environment specification language (CESL) specification into said host computer creating, on said host computer, the network graph from the CESL specification; parsing the CSL specification to build the configuration graph; calculating, using the network graph, default data and settings for the plurality of target computers connected to the communications channel; analyzing, in the host computer, the configuration graph to identify deadlock in the CSL specification; generating, using the network graph, the plurality of workers in the plurality of free central processing units; calculating, using at least one of the network graph, the configuration graph, and user input, implementation protocols; generating the application precedence matrix and the plurality of IPC patterns as code in said host computer; sending the code from the host computer to the Distributed Process Controller and to the plurality of target computers; issuing an instruction from the host computer to activate the Distributed Process Controller; receiving the code at the distributed Process Controller; controlling, using the Distributed Process Controller the execution of the plurality of software chips; activating, using the Distributed Process Controller, the plurality of remote command interpreter daemons in the plurality of target computers, respectively; loading the plurality of software chips into respective memory spaces of each of the plurality of target computers for transferring data and instructions over the communications channel for executing the application program; sending the application program from the host computer to the plurality of target computers; and executing the application program in the plurality of target computers. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification