A formal technique for the representation of tasks such that the potential concurrency of the task is detectable, and hence exploitable, during the execution of the task is described. Instructions are represented as a pair of binary vectors d and ê which completely describe the sources and sinks specified by the instruction. Tasks are represented as square matrices M called ordering matrices. The values of the elements of these matrices are used to dynamically indicate the necessary ordering of the execution of instructions. It is shown how several different types of ordering matrices, each type having the capability of exhibiting different amounts of potential concurrency, can be calculated from the d and ê vectors of the instructions of a task using ``linear algebraic-like'' operations. For example, intercycle independencies can be detected with a ternary ordering matrix. This matrix can be extended to dynamically detect opportunities for reassigning the resources specified by certain instructions to increase the amount of potential concurrency. Experimental results are presented showing the relative capability of each of these matrix types for exhibiting potential concurrency. These techniques are shown to produce somewhat greater amounts of potential concurrency than other known dynamic techniques. However, the amounts of potential concurrency found are less than those reported for preprocessing detection techniques.
[1]
J. L. Smith,et al.
Concurrently operating computer systems
,
1959,
IFIP Congress.
[2]
Edward M. Riseman,et al.
The Inhibition of Potential Parallelism by Conditional Jumps
,
1972,
IEEE Transactions on Computers.
[3]
Michael J. Flynn,et al.
Detection and Parallel Execution of Independent Instructions
,
1970,
IEEE Transactions on Computers.
[4]
Garold Stephen Tjaden.
Representation and detection of concurrency using ordering-matrices.
,
1972
.
[5]
Yoichi Muraoka,et al.
Parallelism exposure and exploitation in programs
,
1971
.
[6]
Yoichi Muraoka,et al.
On the Number of Operations Simultaneously Executable in Fortran-Like Programs and Their Resulting Speedup
,
1972,
IEEE Transactions on Computers.
[7]
Saul Aaron Volansky,et al.
Graph model analysis and implementation of computational sequences
,
1970
.
[8]
J. Yohe.
Algorithm 428: Hu-Tucker minimum redundancy alphabetic coding method [Z]
,
1972,
CACM.
[9]
John M. Chambers,et al.
Algorithm 410: Partial sorting
,
1971
.
[10]
Arthur J. Bernstein,et al.
Analysis of Programs for Parallel Processing
,
1966,
IEEE Trans. Electron. Comput..
[11]
Rosalind B. Marimont,et al.
A New Method of Checking the Consistency of Precedence Matrices
,
1959,
JACM.