• No results found

DATA FLOW DESIGN ALTERNATIVES

There are several data flow projects that have special architectural approaches different from the static or dynamic machines described in previous sections. In fact, the first operational data flow machine in the USA is the Data-Driven Machine (DDM-1) designed by A. Davis and his colleagues in 1976. The program and machine organization are based on the concept of recursion, markedly different from the previous data flow systems we have examined. The computer is composed of a hierarchy of computing elements (processor-memory pairs), where each element is logically recursive and consists of further offspring elements.

Logically the DDM architecture is tree structured, with each computing element being connected to a parent clement (above) and up to eight offspring elements (below), which it supervises. The DDM project is currently located at the University of Utah. It is operational and communicates with a DEC-20/40. which is used for software support of compilers, simulators, and performance measurement programs.

In Toulouse, France, a data flow system called LAU has been constructed with 32 bit- slice microprocessors interconnected by multiple buses. The LAU

programming language is based on single assignment rule, but the computer's program organization is based on control flow concepts. In the computer, data are passed via sharable memory cells that are accessed through addresses embed¬ded in instructions. Seperate control signals are used to enable instructions.

In Newcastle, England, another data flow system is under development. This system uses both data tokens and control tokens to enable instruction execution. The Newcastle system is a combination of the data flow and control flow mechanisms in one integrated system approach. Up to 1983, only the DDM at Utah, the EDDY in Japan, the Manchester machine, and the French LAU system are operational data flow computers. There are many other research projects that are devoted to various aspects of data flow computing. Most data flow projects emphasize run-time simultaneity at the instruction level. Unless the program being executed is embedded with a high degree of parallelism, the performance of such instruction-level data-driven com¬puters could be very poor because of high system overhead in detecting the parallelism and in scheduling the available resources. Two design alternatives to the data flow approach are discussed below. These modified approaches offer higher machine compatibility and better utilization of the existing software assets.

Dependence-driven approach This approach was independently proposed by Gajski et al. (1982), and by Motooka et al. (1981). The idea is to raise the level of parallelism to compound- function (procedure) level at run time. A compound function is a collection of computational tasks that are suitable for parallel pro¬cessing by multiprocessors. Listed below are six compound functions investigated by the research group at the University of Illinois:

1) Array(vector matrix) operations 2) Linear recurrence

3) For – all loops 4) Pipeline loops

5) Block of assignment statements 6) Compound conditional staements

A program is a dependence graph connecting the compound-function nodes. Dependence-driven refers to the application of data flow principles over multiple compound-function nodes. In a sense, it is procedure driven. Instead of using data flow languages, traditional high-level language programs can be used in this depen¬dence-driven approach (Figure 10.22). Additional program transformation packages should be developed to convert ordinary language programs to

High Performance Computing

Page 33 depen¬dence graphs and to generate codes from dependence graphs. A hardware organ¬ization needed for dependence-driven computations is illustrated in Figure 10.23. Such a dependence- driven machine has a global controller for multiple processor clusters and shared memory and other resources, instead of decentral¬ized control as emphasized in a data-driven machine. A second opinion has been expressed on data flow machines and languages by the dependence- driven researchers. Two questions were raised: First, are data flow languages marketable? To date, the high-speed computer market has been dominated by conservatism and software compatibility. Can data flow languages, as currently proposed, overcome this conservatism? Second, will data flow languages enhance programmer productivity? Although data flow

researchers have made some claims to this effect, they remain unsubstantiated.

Dependence-driven researchers felt that, in small-scale parallel systems, data flow principles have been successfully demonstrated. When simultaneity is low, irregular, and run time- dependent, data flow might be the architecture of choice I n very large-scale parallel systems, data flow principles still show some potential

for high-level control. It is in medium-scale parallel systems that data flow has little chance of success. Pipelined, parallel, and multiprocessor systems are all effective in this range. For data flow processing to become established here, its inherent inefficiencies must be overcome.

High Performance Computing

Page 34 Multilevel event-driven approachThe dependence-driven was generalized to an event- driven approach by Hwang and Su (1983c). An eventis a logical activity which can be defined at the job (program) level, the procedure level, the task level, or at the instruction level after proper abstractionor engrossmentas illustrated in Figure 10.24. Hierarchical scheduling is needed in this event-driven approach. A mechanism for program abstraction needs to be developed. Such a mechanism must not require high system overhead. It could be implemented partially at compile time and partially at run time. The choice depends on the performance criteria to be used in promoting parallel processing at various levels. Hierarchical scheduling of resources is the most challenging part of research in this approach.

Heuristic algorithms are needed for scheduling multiple events to the available resources in an event-driven computer. Instead of using the first-in. first-out (FIFO) scheduling policy on all enabled activities, as in a data-driven computer, this approach considers the use of

priority queues in the event scheduling. The priority is determined by pre-run-time

estimating of the time-space complexities of all enabled events. The optimal mapping of logical events to physical resources has

High Performance Computing

Page 35 proven to be NP-complete. The heuristics using priority queues will result in nearly optimal performance, if the complexity estimations are sufficiently accurate. Intuitively, a multilevel event-driven approach should be more appealing to general-purpose computer design which uses both data flow and control flow mechanisms. Due to the complexity in hierarchical control, many research and development efforts are still needed to make this approach workable and cost effective.

For research-oriented readers, we identify below a number of important issues that demand further efforts towards the development of workable data flow

multiprocessor systems.

1. The design of a machine instruction set and high-level data flow languages

2. The design of the packet communication networks for resource arbitration and for token distribution

3. The development of data flow processing elements and the structured m/y

High Performance Computing

Related documents