WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System for automatically generating efficient application - customized client/server operating environment for heterogeneous network computers and operating systems    
United States Patent5381534   
Link to this pagehttp://www.wikipatents.com/5381534.html
Inventor(s)Shi; Yuan (Wayne, PA)
AbstractA 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.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5381534
System for automatically generating efficient application - customized

     client/server operating environment for heterogeneous network computers

     and operating systems - US Patent 5381534 Drawing
System for automatically generating efficient application - customized client/server operating environment for heterogeneous network computers and operating systems
Inventor     Shi; Yuan (Wayne, PA)
Owner/Assignee     Temple University of the Commonwealth System of Higher Education (Philadelphia, PA)
Patent assignment
All assignments
Publication Date     January 10, 1995
Application Number     08/019,325
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     February 10, 1993
US Classification     709/203 717/149
Int'l Classification     G06F 009/00 G06F 013/00
Examiner     Chan; Eddie P.
Assistant Examiner    
Attorney/Law Firm     David Newman & Associates
Address
Parent Case     RELATED PATENTS This patent is from a continuation-in-part patent application, of a patent application entitled SYSTEM FOR HIGH-LEVEL VIRTUAL COMPUTER WITH HETEROGENEOUS OPERATING SYSTEMS, having Ser. No. 07/556,920 and filing date Jul. 20, 1990, now abandoned. The benefit of the earlier filing date is claimed pursuant to 35 U.S.C. .sctn.120.
Priority Data    
USPTO Field of Search     395/200 395/650 395/800 395/325 395/375 395/700
Patent Tags     automatically generating efficient application - customized client/server operating environment heterogeneous network computers operating
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5031089
Liu
709/226
Jul,1991

[0 after 0 votes]
4975836
Hirosawa
718/100
Dec,1990

[0 after 0 votes]
4935870
Burk, Jr.
709/203
Jun,1990

[0 after 0 votes]
4873628
Omori
717/138
Oct,1989

[0 after 0 votes]
4839801
Nicely

Jun,1989

[0 after 0 votes]
4825354
Agrawal
707/10
Apr,1989

[0 after 0 votes]
4814970
Barbagelata
712/28
Mar,1989

[0 after 0 votes]
4814975
Hirosawa
718/1
Mar,1989

[0 after 0 votes]
4780821
Crossley
718/100
Oct,1988

[0 after 0 votes]
4774655
Kollin
707/4
Sep,1988

[0 after 0 votes]
4771376
Kamiya
703/27
Sep,1988

[0 after 0 votes]
4720782
Kovalcin
700/83
Jan,1988

[0 after 0 votes]
4309754
Dinwiddie, Jr.
710/307
Jan,1982

[0 after 0 votes]
4253145
Goldberg
703/21
Feb,1981

[0 after 0 votes]
4031512
Faber
340/825.2
Jun,1977

[0 after 0 votes]
3643227
Smith
718/105
Feb,1972

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

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.

2. The computer system as set forth in claim 1, with said first language injection library in each of said plurality of target computers including a plurality of language injections for sending and receiving information to and from a mailbox; and

wherein said second language injection library of said host computer includes language injections adapted for operating in said host computer to operate the mailbox for sending and receiving information to and from the mailbox.

3. The computer system as set forth in claim 1, with said first language injection library of said plurality of target computers including language injections adapted for operating in said plurality of target computers to access a sequential file; and

with said second language injection library of said host computer including language injections adapted for operating in said host computer to access the sequential file.

4. The computer system as set forth in claim 1, with said first language injection library of said plurality of target computers including language injections adapted for operating in said plurality of target computers to operate at least one tuple space among said plurality of target computers; and

with said second language injection library of said host computer including language injections adapted for operating in said host computer to operate the at least one tuple space.

5. The computer system as set forth in claim 1, with said first language injection library and said second language injection library including language injections adapted for operating mailboxes, sequential files, and tuple spaces among said plurality of target computers and host computer.

6. The computer system as set forth in claim 1, with said plurality of permanent daemons of said host computer including a remote command interpreter daemon associated with the communications channel, the remote command interpreter daemon including a program for monitoring the communications channel for instructions from said plurality of target computers, for branching upon an external request and for executing the external request, and for interrupting the communications channel in the computer system for subsequent use in the application program.

7. The computer system as set forth in claim 1, with said host computer including software, embodied within at least one of said plurality of target computers, for operating the hose computer.

8. The computer system as set forth in claim 1, with a subset of said host computer and of said plurality of target computers forming a virtual computer for executing the application program.

9. The computer system as set forth in claim 1, with said first language injection library of said plurality of target computers and said second language injection library of said host computer including software means adapted for creating the plurality of dynamic daemons incidental to executing the application program, and for transferring data among said plurality of target computers.

10. The computer system as set forth in claim 9, with the software means including means for creating a mailbox.

11. The computer system as set forth in claim 9, with the software means including means for creating a tuple space.

12. The computer system as set forth in claim 12, with the software means including means for creating a sequential file.

13. The computer system as set forth in claim 1, with a subset of said plurality of target computers using port abstraction;

with a subset of said plurality of target computers using name abstraction; and

with said plurality of target computers including software chips, responsive to IPC control commands, for reconciling the port abstraction and the name abstraction among the plurality of target computers.

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.

15. The method as set forth in claim 14 further comprising the steps of:

running a port identifier management daemon on a plurality of target computers having port abstraction;

binding, using the port identifier management daemon unique port numbers to user defined objects; and

registering, using the port identifier management daemon, a symbolic name assigned by a user to a particular port having a unique port number.

16. The method as set forth in claim 15, further comprising the step of:

reconciling, for a network including a first subset of the plurality of target computers using port abstraction and including a second subset of a plurality of target computers using name abstraction, the port abstraction and the name abstraction among the plurality of target computers in the network.

17. The method as set forth in claim 14 further comprising the step of:

running a sequential file daemon on the plurality of target computers for operating and accessing sequential files on the plurality of target computers.

18. The method as set forth in claim 14 further comprising the step of:

running a mailbox daemon on the plurality of target computers for operating and accessing mailboxes on the plurality of target computers.

19. The method as set forth in claim 14 further comprising the step of:

running a tuple space daemon on the plurality of target computers for operating and accessing tuple spaces on the plurality of target computers.

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.

21. The method as set forth in claim. 20 further comprising the steps of:

running a port identifier management daemon on a plurality of target computers having port abstraction;

binding, using the port identifier management daemon unique port numbers to user defined objects; and

registering, using the port identifier management daemon, a symbolic name assigned by a user to a particular port having a unique port number.

22. The method as set forth in claim 20, further comprising the step of:

reconciling, for a network including a first subset of the plurality of target computers using port abstraction and including a second subset of a plurality of target computers using name abstraction, the port abstraction and the name abstraction among the plurality of target computers.

23. The method as set forth in claim 22 further comprising the step of:

running a sequential file daemon on the plurality of target computers for operating and accessing sequential files on the plurality of target computers.

24. The method as set forth in claim 20 further comprising the step of:

running a mailbox daemon on the, plurality of target computers for operating and accessing mailboxes on the plurality of target computers.

25. The method as set forth in claim 20 further comprising the step of:

running a tuple space daemon on the plurality of target computers for operating and accessing tuple spaces on the plurality of target computers.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

This invention relates to a system and method for creating high-level virtual computers (HLVC's), and more particularly, for creating high-level virtual computers for a computing system employing a set of computers having various languages, communication protocols, and operating systems.

DESCRIPTION OF THE RELEVANT ART

Computer applications typically require the ability to execute programs involving several separate computers simultaneously. The simultaneous use of several computers may be required for a parallel-processing application, where the labor of carrying out a large number of calculations within a single application is divided among several computers to increase total processing speed. Alternatively, a corporate user may have at his/her disposal several different computers in use by various parts of the corporation. Each of the personnel, accounting, and production departments, for example, may employ a different computer system. The corporate user may wish to use or execute a program without having to be concerned with the locations of data for the program. A convenient ability, for example, would be to direct the data in the production department computer to the accounting computer without changing programs.

A significant problem arises, however, if the various computers at an operator's disposal are of different protocols and/or operating systems. A variety of operating systems are in popular use; for example, UNIX.TM., VMS.TM., or VM.TM.. Similarly, a variety of protocols for inter-processor communication are in common use; for example, TCP/IP, DECNET, SNA, and OSI. Typically, a computer having operating system A and protocol B may not readily share or be able to share data with or to receive instructions from another computer with operating system C and protocol D.

In order to convey information between distributed programs, appropriate communication protocols and operating system commands are used in the distributed programs according to the runtime execution locations of the distributed programs. In using the appropriate communications protocols and operating system commands, the distributed programs must be modified and recompiled if the execution locations of the distributed programs are altered.

FIG. 1 is a schematic diagram showing how a prior art network of different computers of various operating systems may be combined to form various HLVC's. The nine computers shown in the diagram are physically connected by a common network. Various applications may require the use of subsets of the computers on the network, or may require all of the computers. By initiating the flow of data or instructions among various computers in the system, various HLVC's may be created, with multiple HLVC's sharing the same distributed networking environment. For example, HLVC 1 in FIG. 1 may include the three computers in the dotted circle, while HLVC 2 may include the computers in the dashed circle, and so forth. HLVC's are defined by the interaction and flow of data and/or instructions among a certain set of computers for a particular application.

In addition to physical connections of various computers in an HLVC, the coordination in parallel of different program modules called software chips, embodied in various computers, within the HLVC is essential. Software chips may also be referred to as modules, subroutines, or sub-programs. Thus, an HLVC is marked not only by different types of hardware, but by a cooperation of software spread among various locations. As illustratively shown in FIG. 2, a software chip interconnection network in the prior art is symbolically rendered as an interaction of different software chips in an HLVC. Each software chip is considered as a set of program instructions suitable for a particular type of computer in the HLVC with the software chip producing an output in response to a data input.

As shown in FIG. 2, in an HLVC, the output from one software chip may also be the input to another software chip through, for example, data buses. The use of data buses facilitate the formation of parallel computing elements using the heterogeneous computers. The execution locations of the software chips are transparent to the internals of the software chips. The operation of an HLVC is to be understood as a transfer of data and/or instructions from one computer to another, as well as the parallel execution of a large body of software spread over the various computers in the system.

A distributed user application is defined herein as a set of partitioned sub-programs or software chips, with each software chip assigned to a physical processor in the network for execution. Also, data buses provide interconnections between the partitioned software chips, with a data bus herein defined as a distributed data object with predefined operations. For example, a generic queue may be a data bus with the predefined operations of READ/WRITE/POST/SELECT, while a tuple space may be a data bus with the predefined operations of PUT/READ/GET. A user may also define and implement application programs having other data buses; for example, a relational database can be a data bus with the predefined operations of READ/WRITE/UPDATE/PROJECT/JOIN, with the relational database being used with any application program requiring the supporting relational database. In addition, a prioritized tuple space may be a data bus for heuristic search applications with the predefined operations OPEN/CLOSE/READMAX/GETMAX/PUT.

OBJECTS OF THE INVENTION

An general object of the invention is a system for efficiently coordinating heterogeneous computer systems, particularly for large applications.

Another object of the invention is to enable a user at a host computer to create a high-level virtual computer, or HLVC, having high efficiency out of a network of heterogeneous computers.

An additional object of the invention is a system for facilitating the development, execution and maintenance of large application programs.

SUMMARY OF THE INVENTION

According to the present invention, as embodied and broadly described herein, a system and method are provided for efficient communication and computing using a plurality of target computers, and for developing, executing and maintaining an application program. The target computers may include a variety of heterogeneous computing and communication devices. The application program may include a plurality of software chips.

An interprocess communication pattern is used for each distributed program. Distributed programs are initialized using interprocessor communication (IPC) patterns to determine the destinations of later communications for facilitating location independent programming and for allowing compiled programs to be relocated within a distributed environment without program modification and re-compilation.

The IPC patterns are generated by a configurator according to a user specified distributed program allocation map using a configuration specification language (CSL). The CSL provides centralized means for distributed application control. The distributed programs interact with each other through a set of customizable data bus objects to provide parallel performance of the distributed programs. The data bus objects facilitate the formation of single instruction, multiple data (SIMD) parallel processing computing systems; multiple instruction, multiple data (MIMD) parallel processing computing systems; and pipeline parallel processing computing systems using the distributed heterogeneous computers.

The implementation of the data bus objects is divided into two parts: a customizable language injection library (LIL), and a customizable set of object daemons. The customizable LIL interfaces with all distributed programs for SEND, INJECT, RECEIVE, and EXTRACT type operations. A customizable set of object daemons, for example, may include a tuple space daemon (TSD), a mailbox daemon (MBXD), and a sequential daemon (SEQD). The daemons may implement various runtime behavior of the designated objects.

The development, execution and maintenance of a distributed application program may employ a plurality of software chips, with execution of the application program being accomplished among a plurality of target computers.

The system of the present invention includes a plurality of target computers and at least one host computer. The target computers are operatively connected in a network. Each of the target computers has at least one communication protocol, at least one operating system, and memory means. The memory means is coupled to the network for storing a library of language injections. Each language injection may be a software chip for transferring data and instructions to develop, execute, and maintain the application program.

Each host computer is operatively coupled to the plurality of target computers. Each host computer includes means for processing a computing environment specification and a configuration specification, for generating a plurality of IPC patterns and for generating an application precedence matrix; means for processing the application precedence matrix and the plurality of IPC patterns, for controlling a sequence of execution of the plurality of software chips, and for activating daemons in the plurality of target computers; and a library of language injections. Each language injection may be a software chip for transferring data and instructions to develop, execute, and maintain the application program. The language injections are preferably in object code form, and each language injection may be executed by a target computer in response to an external IPC control command.

Additional objects and advantages of the invention are set forth in part in the description which follows, and in part are obvious from the description, or may be learned by practice of the invention. The objects and advantages of the invention also may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate preferred embodiments of the invention, and together with the description serve to explain the principles of the invention.

FIG. 1 is a general diagram showing the operation of a virtual computer;

FIG. 2 is a diagram generally showing the function of software chips within a virtual computer;

FIG. 3 is a block diagram showing one host computer connected to a plurality of target computers;

FIG. 4 is an informational flowchart illustrating the function of the CSL compiler/configurator;

FIG. 5 illustrates the building of a network graph;

FIG. 6 illustrates the building of a configuration graph:

FIG. 7 illustrates the propagation and calculation of defaults;

FIG. 8 illustrates the performance of deadlock analysis of the CSL specification;

FIG. 9 illustrates the calculation of the best protocols to implement;

FIG. 10 shows the generation of code by the configurator;

FIG. 11 is an informational flowchart illustrating the function of the DPC;

FIG. 12 shows the generation of a system graph;

FIG. 13 illustrates a search procedure to find a candidate combination of target computers in the network as being the most efficient combination of target computers;

FIG. 14 is a block diagram showing the intersection of the present invention with two target computers;

FIG. 15 is a flowchart illustrating the function of the Remote Command Interpreter Daemon;

FIG. 16 is a flowchart illustrating the function of the Port ID Management Daemon;

FIG. 17 is a flowchart illustrating the function of the Sequential File Daemon;

FIG. 18 is a flowchart illustrating the function of the Mailbox Daemon;

FIG. 19 is a flowchart illustrating the function of the Tuple Space Daemon;

FIG. 20 is a simplified flowchart showing an example application;

FIG. 21 shows an exemplary CSL specification;

FIG. 22 shows an exemplary CESL specification;

FIG. 23 is a diagram illustrating the function of hierarchical programming using the present invention;

FIG. 24 is a diagram illustrating a SIMD using a tuple space;

FIG. 25 is a diagram illustrating a MIMD using mailbox objects; and

FIG. 26 is a diagram illustrating a pipeline MIMD, and pipeline parallel computing elements using a tuple space and mailbox objects.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference is now made in detail to the present preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals indicate like elements throughout the several views.

The system and method of the present invention operates on application programs including sub-programs or software chips for execution by at least one of a subset of target computers, with the application programs further including at least one IPC control command for activating one of the language injections in a target computer.

The system a