Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

System, methods and apparatus for program optimization for multi-threaded processor architectures

Patent ·
OSTI ID:1167014

Methods, apparatus and computer software product for source code optimization are provided. In an exemplary embodiment, a first custom computing apparatus is used to optimize the execution of source code on a second computing apparatus. In this embodiment, the first custom computing apparatus contains a memory, a storage medium and at least one processor with at least one multi-stage execution unit. The second computing apparatus contains at least two multi-stage execution units that allow for parallel execution of tasks. The first custom computing apparatus optimizes the code for parallelism, locality of operations and contiguity of memory accesses on the second computing apparatus. This Abstract is provided for the sole purpose of complying with the Abstract requirement rules. This Abstract is submitted with the explicit understanding that it will not be used to interpret or to limit the scope or the meaning of the claims.

Research Organization:
Reservoir Labs, Inc., New York, NY (United States)
Sponsoring Organization:
USDOE
DOE Contract Number:
FG02-08ER85149
Assignee:
Reservoir Labs, Inc. (New York, NY)
Patent Number(s):
8,930,926
Application Number:
12/762,281
OSTI ID:
1167014
Country of Publication:
United States
Language:
English

References (78)

A practical automatic polyhedral parallelizer and locality optimizer journal May 2008
Constant propagation with conditional branches journal April 1991
Towards automatic generation of vulnerability-based signatures conference January 2006
A Geometric Programming Framework for Optimal Multi-Level Tiling conference January 2004
Polyhedral Code Generation in the Real World book January 2006
Maximizing parallelism and minimizing synchronization with affine transforms conference January 1997
On the (Im)possibility of Obfuscating Programs book January 2001
Value dependence graphs: representation without taxation
  • Weise, Daniel; Crew, Roger F.; Ernst, Michael
  • Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '94 https://doi.org/10.1145/174675.177907
conference January 1994
Software pipelining: an effective scheduling technique for VLIW machines journal July 1988
Parallel Sparse Supports for Array Intrinsic Functions of Fortran 90 journal March 2001
Flow-insensitive interprocedural alias analysis in the presence of pointers book June 2005
Some efficient solutions to the affine scheduling problem. I. One-dimensional time journal October 1992
A Library for Doing Polyhedral Operations journal December 2000
Solution and Optimization of Systems of Pseudo-Boolean Constraints journal October 2007
Blocking and array contraction across arbitrarily nested loops using affine partitioning journal July 2001
Static branch frequency and program profile analysis conference January 1994
A fast algorithm for finding dominators in a flowgraph journal January 1979
Counting Integer Points in Parametric Polytopes Using Barvinok's Rational Functions journal February 2007
An experimental evaluation of tiling and shackling for memory hierarchy management conference January 1999
Semi-Automatic Composition of Loop Transformations for Deep Parallelism and Memory Hierarchies journal June 2006
Zchaff2004: An Efficient SAT Solver book January 2005
Partial dead code elimination journal June 1994
Lattice-Based Memory Allocation journal October 2005
Code Generation in the Polyhedral Model Is Easier Than You Think conference January 2004
Effective partial redundancy elimination conference January 1994
Scanning polyhedra with DO loops journal July 1991
Iterated register coalescing journal May 1996
An Efficient Inclusion-Based Points-To Analysis for Strictly-Typed Languages book January 2002
Automatic memory layout transformations to optimize spatial locality in parameterized loop nests journal March 2000
Optimal weighted loop fusion for parallel programs conference January 1997
Register tiling in nonrectangular iteration spaces journal July 2002
Normalised Givens rotations for recursive least squares processing conference January 1995
The mapping of linear recurrence equations on regular arrays
  • Quinton, Patrice; van Dongen, Vincent
  • Journal of VLSI signal processing systems for signal, image and video technology, Vol. 1, Issue 2, p. 95-113 https://doi.org/10.1007/BF02477176
journal October 1989
Scanning polyhedra without Do-loops conference January 1998
Scalable Tensor Decompositions for Multi-aspect Data Mining conference December 2008
A simple graph-based intermediate representation journal March 1995
A data locality optimizing algorithm journal June 1991
Generation of Efficient Nested Loops from Polyhedra journal October 2000
Scaling to the end of silicon with EDGE architectures journal July 2004
Synthesizing transformations for locality enhancement of imperfectly-nested loop nests conference January 2000
Solving SAT and SAT Modulo Theories: From an abstract Davis--Putnam--Logemann--Loveland procedure to DPLL( journal November 2006
Conversion of control dependence to data dependence
  • Allen, J. R.; Kennedy, Ken; Porterfield, Carrie
  • Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages - POPL '83 https://doi.org/10.1145/567067.567085
conference January 1983
Automatic mapping of nested loops to FPGAS conference January 2007
Revisiting the decomposition of Karp, Miller and Winograd conference January 1995
Manufacturing cheap, resilient, and stealthy opaque constructs
  • Collberg, Christian; Thomborson, Clark; Low, Douglas
  • Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '98 https://doi.org/10.1145/268946.268962
conference January 1998
Some efficient solutions to the affine scheduling problem. Part II. Multidimensional time journal December 1992
Configurable string matching hardware for speeding up intrusion detection journal March 2005
Two Fast Algorithms for Sparse Matrices: Multiplication and Permuted Transposition journal September 1978
An accurate cost model for guiding data locality transformations journal September 2005
The program dependence graph and its use in optimization journal July 1987
Supernode partitioning conference January 1988
Code generation for multiple mappings conference January 1994
Tiling Imperfectly-nested Loop Nests conference January 2000
Deobfuscation: Reverse Engineering Obfuscated Code conference January 2005
Cache miss equations: a compiler framework for analyzing and tuning memory behavior journal July 1999
Array-data flow analysis and its use in array privatization
  • Maydan, Dror E.; Amarasinghe, Saman P.; Lam, Monica S.
  • Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '93 https://doi.org/10.1145/158511.158515
conference January 1993
Dataflow analysis of array and scalar references journal February 1991
Symbolic array dataflow analysis for array privatization and program parallelization conference January 1995
Enabling Loop Fusion and Tiling for Cache Performance by Fixing Fusion-Preventing Data Dependences conference January 2005
Impact of memory hierarchy on program partitioning and scheduling
  • Kaplow, W. K.; Maniatty, W. A.; Szymanski, B. K.
  • Twenty-Eighth Annual Hawaii International Conference on System Sciences, Proceedings of the Twenty-Eighth Hawaii International Conference on System Sciences https://doi.org/10.1109/HICSS.1995.375473
conference January 1995
Adaptive array beamforming with fixed-point arithmetic matrix inversion using Givens rotations conference November 2001
Global code motion/global value numbering journal June 1995
Lattice-based memory allocation
  • Darte, Alain; Schreiber, Rob; Villard, Gilles
  • Proceedings of the international conference on Compilers, architectures and synthesis for embedded systems - CASES '03 https://doi.org/10.1145/951710.951749
conference January 2003
Efficient data compression methods for multidimensional sparse array operations based on the ekmr scheme journal December 2003
Efficient string matching: an aid to bibliographic search journal June 1975
Undecidability of static analysis journal December 1992
Efficient representation scheme for multidimensional array operations journal March 2002
On the Best Rank-1 and Rank-( R 1 , R 2 ,. . ., R N ) Approximation of Higher-Order Tensors journal January 2000
Memory optimization by counting points in integer transformations of parametric polytopes
  • Seghir, Rachid; Loechner, Vincent
  • Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems - CASES '06 https://doi.org/10.1145/1176760.1176771
conference January 2006
Iterative modulo scheduling: an algorithm for software pipelining loops conference January 1994
Early Control of Register Pressure for Software Pipelined Loops book January 2003
A Compiler Framework for Tiling Imperfectly-Nested Loops book January 2000
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints conference January 1977
Operator strength reduction journal September 2001
Ultra-fast aliasing analysis using CLA: a million lines of C code in a second journal May 2001
Verifying safety properties of a class of infinite-state distributed algorithms book January 1995
Distributed Microarchitectural Protocols in the TRIPS Prototype Processor
  • Sankaralingam, Karthikeyan; Nagarajan, Ramadass; McDonald, Robert
  • 2006 39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'06) https://doi.org/10.1109/MICRO.2006.19
conference December 2006
The Z-polyhedral model conference January 2007