| Utpal Banerjee. Dependence Analysis for Supercomputing. Kluwer, Boston, 1988. |
....(b 0 a 0 ) In the case of loop carried dependences the equation has a solution if and only if g = gcd(a; b) divides (b 0 a 0 ) i.e. if g does not divide (b 0 a 0 ) the two references are proven to be independent. The GCD test can be easily extended to loop nests and multidimensional arrays [Ban88] Other dependence tests of which some are NP complete can be found in the literature: Strong and weak SIV test [GKT91] Delta test [GKT91] Power test [WT90] Simple Loop Residue test [MHL91] Fourier Motzkin test [DE73, MHL91] Constraint Matrix test [Wal88] Omega test ....
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publisher, 1988.
....for profitable parallel execution. Efficient parallel code on a multiprocessor must instead exploit coarse grain parallelism such as is available when large, outer loops are parallelized. Vec torizing compilers relied on data dependence analysis as the sole analysis for locating parallelism [11]. A data dependence occurs when a memory location written on one iteration of a loop might be accessed (read or written) on a different iteration; in this case, we say the loop carries a dependence and cannot be safely parallelized. The previously described experiments on commercial parallelizers ....
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Pub- lishers, Boston, MA, 1988.
....not. Low order interleaving is the distribution of array elements in a round robin manner across the memory banks. That is, for a low order interleaved array A[ element A[i] is allocated on bank i mod N . A[6] A[10] A[3] A[5] A[1] A[8] A[8] A[11] A[7] A[5] A[9] A[4] . A[2] A[6] A[7] A[11] A[4] A[0] A[8] A[1] A[1] A[5] A[9] A[2] A[6] A[10] A[10] A[3] A[7] A[11] for = 0 to 99 do endfor A[ i ] A[0] A[4] A[99] c) endfor for i = 0 to 99 step 4 do A[ i 0] A[ ....
....array elements in a round robin manner across the memory banks. That is, for a low order interleaved array A[ element A[i] is allocated on bank i mod N . A[6] A[10] A[3] A[5] A[1] A[8] A[8] A[11] A[7] A[5] A[9] A[4] A[2] A[6] A[7] A[11] A[4] A[0] A[8] A[1] A[1] A[5] A[9] A[2] A[6] A[10] A[10] A[3] A[7] A[11] for = 0 to 99 do endfor A[ i ] A[0] A[4] A[99] c) endfor for i = 0 to 99 step 4 do A[ i 0] A[ i 1] A[ i 2] A[ i 3] ....
[Article contains additional citation context not shown here]
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, 1988.
....is carried out, the task now is to analyze and characterize the coupled dependences. These dependences can be characterized by Dependence Direction Vectors and Dependence Distance Vectors [3] Computing these dependence vectors for loops with uniform dependences is simple and straight forward [4, 5]. But for nested loops with non uniform dependences the dependence vector computation is an interesting problem. In such cases, it is very difficult to extract parallelism from the loops. Many approaches based on vector decomposition techniques have been presented in the literature [6, 7, 8] ....
....partitioning schemes which extract maximum parallelism from nested loops. Our approach to this problem is based on the theory of convex spaces. A set of Diophantine equations is formed from the array subscripts of the nested loops. These Diophantine equations are solved for integer solutions [4]. The loop bounds are applied to these solutions to obtain a set of inequalities. These inequalities are then used to form a dependence convex hull as an intersection of a set of half spaces. We use an extended version of the algorithm presented by Tzen and Ni [8] to construct an integer ....
[Article contains additional citation context not shown here]
U. Banerjee, Dependence Analysis for Supercomputing. Kluwer Academic Publishers, 1988.
....involving relations on such sets requires the application of linear diophantine equation theory, previous work in the field of array dependence analysis can be used to provide the answers. A large amount of work has been done on calculating dependences between arrays for loop parallelization [Ban88][Wo189] However, such works are primarily concerned with dependences within a loop body rather than dependences between separate loops that require more detailed attention to program control flow. In addition, these works are only concerned with the question of whether a dependence exists between ....
....by testing whether dependences exist between linear induction variables. For now, we consider dependence testing on one dimensional arrays. To determine dependences between linear induction variables, we can apply well known tests for detecting array dependences in nested DO loops [Wo189][Ban88]. Al though these tests are normally used to recognize whether different iterations of a DO loop can be executed in parallel, the same dependence testing mechanism can be used to detect dependences for synchronization. In general, dependence testing can be re duced to determining whether two ....
Utpal Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, Massachusetts, 1988.
.... abstractions of dependences have been defined (dependence distance [Mur71] dependence level [AK82, AK87] dependence direction vector [Wol82, Wol89] dependence polyhedron cone [IT87] and more and more accurate tests for dependence analysis have been designed (Banerjee s tests [Ban88] I test [KKP90, PKK91] Delta test [GKT91] test [LYZ89, Gru90] PIP test [Fea91] PIPS test [IJT91] Omega test [Pug92] In general, dependence abstractions and dependence tests have been introduced with some particular loop transformations in mind. For example, the dependence level ....
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Norwell, MA, 1988.
....a dependence once at each dependence level, a subset of standard memory disambiguation. In the general case, we are interested in integral solutions instead of real ones, and the matrix F is not always invertible. The extended GCD test gives us a method for solving F P = F in the general case[2]. In a process similar to LU decomposition, we decompose F t into FtU = 1) where U is a unimodular integer matrix, and 1) is an integer echelon matrix. The initial system has an integer solution if and only if there exists an integer vector such that 1) F. If such a exists, then the solution is ....
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic, 1988.
....for our algorithm are as follows. The compiler identifies regions and segments. The algorithm for defining regions and segments is not part of the presented paper. In our evaluation, regions are loops and segments are loop iterations. Furthermore, we assume that a state of theart compiler (e.g. [1, 12]) has analyzed read only and private variables, and also the data dependences of every reference in each region. Data dependences are may dependences. The following algorithm determines RFW references. 4.2.2 Analyzing Re occurring First Write References Recall that by Definition 5 a write ....
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer. Boston, MA, 1988.
....2: Induction substitution in TRFD 3.3. 1 Range Test To handle such nonlinear expressions, we have developed a symbolic dependence test called the range test [6] The range test can be viewed as an extension of a symbolic version of Triangular Banerjee s Inequalities test with direction vectors [1, 20]. In the range test, we mark a loop as parallel if we can prove that the range of elements accessed by an iteration of that loop does not overlap with the range of elements accessed by other iterations. We determine whether these ranges overlap by comparing the minimum and maximum values of these ....
Utpal Banerjee. Dependence Analysis for Supercomputing. Kluwer. Boston, MA, 1988.
....the important loops whose iterations can be run concurrently, and transform these loops into parallel ones [3] Powerful dependence tests are needed to effectively exploit the inherent parallelism in these sequential programs. There has been much research in the area of data dependence analysis [1, 20, 27, 30, 33]. Modern data dependence tests have become very accurate and efficient. However, most of these tests require the loop bounds and array subscripts to be represented as a linear (affine) function of loop index variables. That is, the expressions must be in the form c 0 P n j=1 c j i j where c j ....
....other symbolic data dependence tests in Section 7. Section 8 presents our conclusions and plans for future work. 2 Data dependence In this section we will give a brief definition of data dependences. For a more thorough description of data dependence and dependence analysis, see Banerjee et al. [3, 1, 33]. To ease the presentation of the Range Test, we will assume that we have a perfectly nested FORTRAN 77 loop nest as shown in Figure 2. We will also assume that the tested array A has only one dimension. The array access functions (f and g) the loop s lower and upper bounds (P i and Q i ) and ....
[Article contains additional citation context not shown here]
Utpal Banerjee. Dependence Analysis for Supercomputing. Kluwer, Boston, Mass., 1988.
....Space (SIS) of a loop nest is defined as the cartesian product Each point in the SIS represents the execution of an iteration of a statement of the loop body. Dependence relations between a pair of statements S i and S j (denoted S i d S j ) appear when there is an execution ordering between them [18]. We do not distinguish between different kinds of data dependences because they all impose ordering constraints in the same way. When dependence relations are uniform (i.e. invariant through the SIS) they can be characterized by distance vectors d= d 1 , d n ) expressing the number of ....
Banerjee U., Dependence Analysis for Supercomputing, Kluwer Academic Publishers, 1988.
....Space (SIS) of a loop nest is defined as the cartesian product Each point in the SIS represents the execution of an iteration of a statement of the loop body. Dependence relations between a pair of statements S and S (denoted S d S ) appear when there is an execution ordering between them [18]. We do not distinguish between different kinds of data dependences because they all impose ordering constraints in the same way. When dependence relations are uniform (i.e. invariant through the SIS) they can be characterized by distance vectors d= d 1 . d n ) expressing the number of ....
Banerjee U., Dependence Analysis for Supercomputing, Kluwer Academic Publishers, 1988.
....occurs when one statement writes a memory location that another statement later writes. Input dependence occurs when one statement reads a memory location that another statement later reads. Dependence testing is the process of determining whether a data dependence exists between two statements [5]. Dependence testing is mostly concerned with determining dependences that arise from subscripted array references that appear within loop nests, since it is not always easy to determine if such references access the same memory location. 1.3 Partition based Dependence Testing In the ....
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, MA, 1988.
....is carried out, the task now is to analyze and characterize the coupled dependences. These dependences can be characterized by Dependence Direction Vectors and Dependence Distance Vectors [2] Computing these dependence vectors for loops with uniform dependences is simple and straight forward [3, 4]. But for nested loops with non uniform dependences the dependence vector computation is an interesting problem. In such cases, it is very difficult to extract parallelism from the loops. Many approaches based on vector decomposition techniques have been presented in the literature [5, 6, 7] ....
....schemes which extract maximum parallelism from these nested loops. Our approach to this problem is based on the theory of convex spaces. A set of diophantine equations is formed from the array subscripts of the nested loops. These diophantine equations are solved for integer solutions [3]. The loop bounds are applied to these solutions to obtain a set of inequalities. These inequalities are then used to form a dependence convex hull as an intersection of a set of halfspaces. We use an extended version of the algorithm presented by Tzen and Ni [7] to construct the an integer ....
[Article contains additional citation context not shown here]
U. Banerjee, Dependence Analysis for Supercomputing. Kluwer Academic Publishers, 1988.
....occurs when one statement writes a memory location that another statement later writes. Input dependence occurs when one statement reads a memory location that another statement later reads. Dependence analysis is the process of determining whether a data dependence exists between two statements [4]. Dependence analysis is mostly concerned with determining dependences that arise from subscripted array references that appear within loop nests, since it is not always easy to determine if such references access the same memory location. Recent works [6, 7, 9] show how dependence analysis can ....
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, MA, 1988.
.... transformations range from very simple ones (i.e. changing array accesses) to very complex ones (i.e. parallelism and data locality optimizations [5, 1] Furthermore these transformations are usually based on information extracted either statically (i.e. data AEow and data dependence analysis [3]) or 1 2 dynamically (i.e. via program instrumentation [2] Most of the currently available tools, compiler, parallelizer, preprocessor, prolers, etc. cover part of the needs but they suoeer from a major drawback: they cannot be easily extended. Extensibility allows the user (i.e. an application ....
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, 1988.
....Dependences fall into two categories: data and control dependences. A statement S j is said to be data dependent on S i (denoted S i d S j ) if S i is executed in the sequential execution before S j , both statements access the same scalar variable or element of a structured variable [2], and at least one of them writes the variable. Control dependences (denoted S i d c S j ) appear when a statement S j is executed or not executed depending on a condition evaluated in a conditional statement S i . In both cases, S i is called the statement source and S j the statement sink of ....
Banerjee U., "Dependence Analysis for Supercomputing", Kluwer Academic Pub., 1988.
....parallel without synchronization only if its outcome does not depend upon the execution order of different iterations. To determine whether or not the order of iterations affects the semantics of the loop, we need to analyze the data dependences across iterations (or cross iteration dependences) [1]. There are three types of data dependences: flow (read after write) anti (write after read) and output (write after write) If there are no dependences across iterations, the loop can be executed in parallel. Such a loop is called a doall loop. If there are cross iteration dependences, we must ....
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Norwell, MA, 1988.
....jumps, with landing pads where an optimizer can insert code and still preserve control dependences. Parallelizing transformations, however, prefer the loop structure to have a unique induction variable, and an explicit representation of loop bounds. Some dependence tests (for example, extended GCD[13]) require that each index expression in a multidimensional array reference be identifiable. Linearizing these array references by combining the index expressions into one lengthy computation would limit our choice of dependence tests. SUIF has a core of small set of simple instructions with ....
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic, 1988.
....have a positive distance in the smallest non zero element due to the temporal ordering of dependent operations. There is an arc between two nodes if a dependence test results affirmative. Dependence analysis is easy when only scalar variables are involved. Various tests have been developped [Bane88, Wolf89] for the case of subscripted variables with linear subscript expressions. For subscripted variables involving arbitrary indexing expressions, the problem cannot be solved in general. In this paper we will consider data dependences with constant distance known at compile time. 2.2 Chains and ....
U. Banerjee, "Dependence Analysis for Supercomputing", Kluwer Academic Pub., Boston, 1988.
No context found.
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, MA, 1988.
No context found.
Utpal Banerjee. Dependence Analysis for Supercomputing. Kluwer, Boston, 1988.
No context found.
U. Banerjee, Dependence Analysis for Supercomputing. Boston, MA: Kluwer Academic Publishers, 1988.
No context found.
U. Banerjee. Dependence analysis for supercomputing. Kluwer Academic Publishers, Norwell, MA, 1998.
No context found.
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Norwell, Mass., 1988.
No context found.
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Publishers, 1988.
No context found.
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, USA, 1988.
No context found.
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Publishers, 1988.
No context found.
BANERJEE, U. Dependence Analysis for Supercomputing. Kluwer, Boston, 1988.
No context found.
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic, 1988.
No context found.
BANERJEE, U. 1998. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Hingham, MA.
No context found.
BANERJEE, U. Dependence Analysis for Supercomputing. Kluwer, Boston, 1988.
No context found.
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Norwell, MA, 1988.
No context found.
BANERJEE, U. Dependence Analysis for Supercomputing. Kluwer, Boston, 1988.
No context found.
Banerjee U., "Dependence Analysis for Supercomputing", Kluwer Academic Pub., 1988.
No context found.
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Norwell, 1988.
No context found.
Banerjee, U. Dependence Analysis for Supercomputing. Kluwer Academic Publisher, 1996.
No context found.
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, MA, 1988.
No context found.
# U. Banerjee, Dependence Analysis for Supercomputing. Boston, Mass.: Kluwer Academic, 1988.
No context found.
U. Banerjee, Dependence Analysis for Supercomputing. Kluwer Academic Publishers, 1988.
No context found.
Utpal Banerjee. Dependence Analysis for Super Computing. Kluwer Academic Publishers, 1988.
No context found.
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, MA, 1988.
No context found.
Utpal Banerjee, "DependenceAnalysis for Supercomputing",Kluwer Academic Publishers, 1988. 3 K.McKinliey, "Evaluation Automatic Parallelization for Efficient Execution on Shared Memory Multiprocessors", ICS'94,pp.54-63 1994.
No context found.
BANERJEE, U. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Norwell, Mass., 1988.
No context found.
U. Banerjee. DependenceAnalysis for Supercomputing.Kluwer, Boston, MA, 1988.
No context found.
Utpal Banerjee. DependenceAnalysis for Supercomputing. Kluwer. Boston, MA, 1988.
No context found.
U. Banerjee. Dependence Analysis for Supercomputing. Boston, MA: Kluwer Academic Publishers, 1988.
No context found.
BANERJEE, U. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Norwell, Mass., 1988.
No context found.
U. Banerjee. DependenceAnalysis for Supercomputing. Kluwer. Boston, MA, 1988.
No context found.
U. Banerjee, Dependence Analysis for Supercomputing, Kluwer Ac. Publ., Boston, 1988.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC