|
|
|
| United States Patent | 5381534 |
| Link to this page | http://www.wikipatents.com/5381534.html |
| Inventor(s) | Shi; Yuan (Wayne, PA) |
| 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. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5381534 |
|
|
System for automatically generating efficient application - customized
client/server operating environment for heterogeneous network computers
and operating systems |
|
|
|
|
|
| Publication Date |
January 10, 1995 |
|
|
|
|
|
| Filing Date |
February 10, 1993 |
|
|
|
|
|
|
|
|
|
|
|
| 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. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5031089 Liu 709/226 Jul,1991 |      Your vote accepted [0 after 0 votes] | | 4975836 Hirosawa 718/100 Dec,1990 |      Your vote accepted [0 after 0 votes] | | 4935870 Burk, Jr. 709/203 Jun,1990 |      Your vote accepted [0 after 0 votes] | | 4873628 Omori 717/138 Oct,1989 |      Your vote accepted [0 after 0 votes] | | 4839801 Nicely
Jun,1989 |      Your vote accepted [0 after 0 votes] | | 4825354 Agrawal 707/10 Apr,1989 |      Your vote accepted [0 after 0 votes] | | 4814970 Barbagelata 712/28 Mar,1989 |      Your vote accepted [0 after 0 votes] | | 4814975 Hirosawa 718/1 Mar,1989 |      Your vote accepted [0 after 0 votes] | | 4780821 Crossley 718/100 Oct,1988 |      Your vote accepted [0 after 0 votes] | | 4774655 Kollin 707/4 Sep,1988 |      Your vote accepted [0 after 0 votes] | | 4771376 Kamiya 703/27 Sep,1988 |      Your vote accepted [0 after 0 votes] | | 4720782 Kovalcin 700/83 Jan,1988 |      Your vote accepted [0 after 0 votes] | | 4309754 Dinwiddie, Jr. 710/307 Jan,1982 |      Your vote accepted [0 after 0 votes] | | 4253145 Goldberg 703/21 Feb,1981 |      Your vote accepted [0 after 0 votes] | | 4031512 Faber 340/825.2 Jun,1977 |      Your vote accepted [0 after 0 votes] | | 3643227 Smith 718/105 Feb,1972 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
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. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
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 | | |