DMCA
High Performance Numerical Computing in Java: Language and Compiler Issues (1999)
Venue: | 12th International Workshop on Languages and Compilers for Parallel Computing |
Citations: | 20 - 6 self |
Citations
7004 |
Design Patterns: Elements of Reusable Object-Oriented Software
- Gamma, Helm, et al.
- 1995
(Show Context)
Citation Context ...key feature exploited in our optimization techniques. Obviously, by making the Array classes final we prevent application programmers from extending those classes directly. A decorator design pattern =-=[15] can be us-=-ed if programmers want to "extend" Array classes. In contrast to Java arrays discussed in the previous section, an Array defined by the Array package has a nonragged rectangular shape and co... |
220 | An implementation of interprocedural bounded regular section analysis”,
- Havlak, Kennedy
- 1991
(Show Context)
Citation Context ...cess information for each array with respect to the intervals (i.e., the loops and the overall procedure) in a method. This information is represented using a bounded regular section descriptor (RSD) =-=[8, 19]-=-, which provides information about 9 the lower bound and the upper bound on (read and write) accesses in each array axis. The procedure for computing the bounded RSDs uses a combination of standard ar... |
176 | ªUnifying Data and Control Transformations for Distributed Shared Memory
- Cierniak, Li
- 1995
(Show Context)
Citation Context ...is not specified). While this may prevent the programmer from doing certain optimizations, we believe this is beneficial in the longer term because it facilitates data layout optimizations for Arrays =-=[10, 18, 21, 22, 14]-=-. The compiler has fewer constraints on ensuring the correctness of the program in the presence of data layout transformations, and can avoid copy operations otherwise needed to restore the data layou... |
134 | Data Transformations for Eliminating Conflict Misses,
- Rivera, Tseng
- 1998
(Show Context)
Citation Context ...is not specified). While this may prevent the programmer from doing certain optimizations, we believe this is beneficial in the longer term because it facilitates data layout optimizations for Arrays =-=[10, 18, 21, 22, 14]-=-. The compiler has fewer constraints on ensuring the correctness of the program in the presence of data layout transformations, and can avoid copy operations otherwise needed to restore the data layou... |
132 |
Recursion Leads to Automatic Variable Blocking for Dense Linear Algebra Algorithms.
- Gustavson
- 1997
(Show Context)
Citation Context ...is not specified). While this may prevent the programmer from doing certain optimizations, we believe this is beneficial in the longer term because it facilitates data layout optimizations for Arrays =-=[10, 18, 21, 22, 14]-=-. The compiler has fewer constraints on ensuring the correctness of the program in the presence of data layout transformations, and can avoid copy operations otherwise needed to restore the data layou... |
112 |
Analysis of interprocedural side-effects in a parallel programming environment
- Callahan, Kennedy
- 1988
(Show Context)
Citation Context ...cess information for each array with respect to the intervals (i.e., the loops and the overall procedure) in a method. This information is represented using a bounded regular section descriptor (RSD) =-=[8, 19]-=-, which provides information about 9 the lower bound and the upper bound on (read and write) accesses in each array axis. The procedure for computing the bounded RSDs uses a combination of standard ar... |
74 | Marmot: an optimizing compiler for java.
- Fitzgerald, Knoblock, et al.
- 2000
(Show Context)
Citation Context ...ives. Semantic expansion was used to reduce the overhead of handling complex numbers in Java (in particular, the overhead associated with creating a large number of temporary objects) in [31]. Marmot =-=[13]-=- is an optimizing static Java compiler being developed at Microsoft Research. It implements both standard scalar (Fortran and C style) optimizations and basic object oriented optimizations. It also pe... |
73 | Highperformance parallel programming in Java: Exploiting native libraries, in:
- Getov, Flynn-Hummel, et al.
- 1998
(Show Context)
Citation Context ...jects to develop such libraries entirely in Java. In addition, there are approaches in which access to existing numerical libraries (typically coded in C and Fortran) is provided to Java applications =-=[3, 9, 16]-=-. All of these approaches shift the burden of delivering high performance entirely to the libraries. 13 JDK116 HPCJ HPCJ+SE BOUNDS FMA FORTRAN 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 17.5 26.5 3.6 111.0... |
56 | Parallel Programming using C - Wilson, Lu - 1996 |
52 | From flop to megaflops: Java for technical computing.
- Moreira, Midkiff, et al.
- 1998
(Show Context)
Citation Context ...rams. On many architectures, the direct cost of the checks is quite low for valid references. The real problem arises from the combined effects of the required checks and Java precise exception model =-=[24]-=-. Because Java strictly specifies the order of evaluation of expressions -- including accesses of expression operands -- an exception must appear to have been thrown exactly after previous accesses an... |
35 | ªA Matrix-Based Approach to the Global Locality Optimization Problem,º
- Kandemir, Choudhary, et al.
- 1998
(Show Context)
Citation Context ...is not specified). While this may prevent the programmer from doing certain optimizations, we believe this is beneficial in the longer term because it facilitates data layout optimizations for Arrays =-=[10, 18, 21, 22, 14]-=-. The compiler has fewer constraints on ensuring the correctness of the program in the presence of data layout transformations, and can avoid copy operations otherwise needed to restore the data layou... |
35 | M.: Efficient support for complex numbers in java. In: Java Grande
- Wu, Midkiff, et al.
- 1999
(Show Context)
Citation Context ...is semantic expansion, which involves substituting calls to methods with known semantics by equivalent code that implements the same semantics (i.e., treating standard methods as language primitives) =-=[31]-=-. Semantic expansion is discussed further in Section 3.2. Array references and null-pointer checks: The Java language specification requires that references through a pointer first check that the poin... |
31 |
Optimizing Java: Theory and practice, Concurrency: Practice and Experience
- Budimlic, Kennedy
- 1997
(Show Context)
Citation Context ...idimensional Arrays in the Array package. We differ in that we do not need global analysis: Arrays from the Array package are intrinsically rectangular and can always be stored in a dense form. 14 In =-=[6]-=-, a project begun at the JavaSoft division of Sun Microsystems and its follow-on at Rice University are outlined. The work was aimed at a dynamic (or just-in-time) compilation system, and focused on l... |
30 | POOMA: A Framework for Scientific Simulation on Parallel Architectures, Supercomputing 95. See more info about POOMA: Parallel Object-Oriented Methods and Applications at http://www.acl.lanl.gov/pooma/ - Reynders, Hinker, et al. - 1995 |
27 | Just-in-time optimizations for high-performance Java programs,”
- Cierniak, Li
- 1997
(Show Context)
Citation Context ...tly. We have shown that with semantic expansion and other compiler optimizations, Java code built on top of the most basic set and get operations of the Array package can achieve high performance. In =-=[11]-=-, Cierniak and Li describe a global analysis technique for determining that the shape of a Java array of arrays (e.g., double[][]) is indeed rectangular and not modified. The array representation is t... |
26 | An evaluation of Java for numerical computing
- Blount, Chatterjee
- 1998
(Show Context)
Citation Context ...he compilers (not even by the Fortran compiler). 5 Related work The importance of having high-performance libraries for numerical computing in Java has been recognized by many authors. In particular, =-=[4, 5, 29]-=- describe projects to develop such libraries entirely in Java. In addition, there are approaches in which access to existing numerical libraries (typically coded in C and Fortran) is provided to Java ... |
21 | Automatic parallelization of recursive procedures
- Gupta, Mukhopadhyay, et al.
- 2000
(Show Context)
Citation Context ...and write) accesses in each array axis. The procedure for computing the bounded RSDs uses a combination of standard array analysis techniques and sophisticated symbolic analysis, described further in =-=[17]-=-. However, an important difference in the context of applying this analysis for the bounds checking optimization is that we can ignore certain aliasing information while identifying the section of an ... |
17 | Java access to numerical libraries
- Casanova, Dongarra, et al.
- 1997
(Show Context)
Citation Context ...jects to develop such libraries entirely in Java. In addition, there are approaches in which access to existing numerical libraries (typically coded in C and Fortran) is provided to Java applications =-=[3, 9, 16]-=-. All of these approaches shift the burden of delivering high performance entirely to the libraries. 13 JDK116 HPCJ HPCJ+SE BOUNDS FMA FORTRAN 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 17.5 26.5 3.6 111.0... |
16 | Enhancing spatial locality via data layout optimizations
- Kandemir, Choudhary, et al.
- 1998
(Show Context)
Citation Context ...is not specified). While this may prevent the programmer from doing certain optimizations, we believe this is beneficial in the longer term because it facilitates data layout optimizations for Arrays =-=[10, 18, 21, 22, 14]-=-. The compiler has fewer constraints on ensuring the correctness of the program in the presence of data layout transformations, and can avoid copy operations otherwise needed to restore the data layou... |
16 |
Automatic selection of high-order transformations in the IBM XL Fortran compilers,”
- Sarkar
- 1997
(Show Context)
Citation Context ... been performed in strict program order. This prohibits the reordering of accesses and operations that are the foundation of the aggressive optimizations that make Fortran a high performance language =-=[28]-=-. Our general solution is to create different static instances of the loop body, with and without bounds and null-pointer exceptions. The proper static instance is dynamically selected to execute the ... |
15 | Developing numerical libraries in Java
- Boisvert, Dongarra, et al.
- 1998
(Show Context)
Citation Context ...he compilers (not even by the Fortran compiler). 5 Related work The importance of having high-performance libraries for numerical computing in Java has been recognized by many authors. In particular, =-=[4, 5, 29]-=- describe projects to develop such libraries entirely in Java. In addition, there are approaches in which access to existing numerical libraries (typically coded in C and Fortran) is provided to Java ... |
14 |
Fortran 90 Handbook: Complete ANSI/ISO Reference, Intertext Publications,
- Adams, Brainerd, et al.
- 1992
(Show Context)
Citation Context ...rk, and show the gains that can be made in Java performance. The technique of semantic expansion we use is similar to the approach taken by Fortran compilers in implementing some intrinsic procedures =-=[1]-=-. Intrinsic procedures can be treated by the Fortran compiler as language primitives, just as we treated the get and set methods in various classes of the Array package. Semantic expansion differs fro... |
10 | Prospects for scientific computing in polymorphic, object-oriented style
- Budimlic, Kennedy
- 1999
(Show Context)
Citation Context ...and compilations using a technique called object inlining achieved up to a 7-fold speedup on an Oopack routine (an object oriented version of Linpack). Continuing work by the same group, described in =-=[7]-=-, discusses additional compiler optimizations to enhance the performance of polymorphic, object oriented numerical code in Java. These projects are complementary to our work, and show the gains that c... |
8 |
Fortran 90 in CSE: A case study
- Moreira, Midkiff
- 1998
(Show Context)
Citation Context ...ield in a microstrip structure. It solves the equation r 2 \Phi = \Gamma ae ffl on a discretized domain using Jacobi relaxation [26]. For this benchmark, we use the problem configuration described in =-=[23]-=-, with a 1000 \Theta 1000 grid and four parallel microstrips of cross section 100 \Theta 10. TOMCATV is part of the SPECfp95 suite (www.spec.org). It is a vectorized mesh generation with Thompson solv... |
8 | Algebraic Java classes for numerical optimization
- Schwab, Schroeder
- 1998
(Show Context)
Citation Context ...he compilers (not even by the Fortran compiler). 5 Related work The importance of having high-performance libraries for numerical computing in Java has been recognized by many authors. In particular, =-=[4, 5, 29]-=- describe projects to develop such libraries entirely in Java. In addition, there are approaches in which access to existing numerical libraries (typically coded in C and Fortran) is provided to Java ... |
6 |
Dependence Analysis. Loop Transformations for Restructuring Compilers
- Banerjee
- 1997
(Show Context)
Citation Context ...re read from memory), the computation is performed (i.e., A + C is evaluated), and only then the result is stored (i.e., A is modified). The Array package uses a form of 5 dynamic dependence analysis =-=[2]-=- to determine when to use a temporary array to hold intermediate data and when it is safe to avoid using temporaries. ffl Array manipulation: methods in this group include section, permuteAxes and res... |
4 | Run time recognition of task parallelism within the P++ parallel array class library - Parsons, Quinlan - 1993 |
3 |
A note on level 1 BLAS in Java
- Bik, Gannon
- 1997
(Show Context)
Citation Context ...jects to develop such libraries entirely in Java. In addition, there are approaches in which access to existing numerical libraries (typically coded in C and Fortran) is provided to Java applications =-=[3, 9, 16]-=-. All of these approaches shift the burden of delivering high performance entirely to the libraries. 13 JDK116 HPCJ HPCJ+SE BOUNDS FMA FORTRAN 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 17.5 26.5 3.6 111.0... |