Results 1 
7 of
7
2002. Automatic generation of efficient adjoint code for a parallel NavierStokes solver. Pp. 1,019–1,028
 in Proceedings of the International Conference on Computational ScienceICCS 2002
"... ..."
(Show Context)
Cheaper Adjoints by Reversing Address Computations, in "Scientific Programming
, 2007
"... The reverse mode of automatic differentiation is widely used in science and engineering. A severe bottleneck for the performance of the reverse mode, however, is the necessity to recover certain intermediate values of the program in reverse order. Among these values are computed addresses, which tr ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
(Show Context)
The reverse mode of automatic differentiation is widely used in science and engineering. A severe bottleneck for the performance of the reverse mode, however, is the necessity to recover certain intermediate values of the program in reverse order. Among these values are computed addresses, which traditionally are recovered through forward recomputation and storage in memory. We propose an alternative approach for recovery that uses inverse computation based on dependency information. Address storage constitutes a significant portion of the overall storage requirements. An example illustrates substantial gains that the proposed approach yields and we show use cases in practical applications.
Development and first applications of TAC++, in
 Utke (Eds.), Advances in Automatic Differentiation
, 2008
"... Summary. The paper describes the development of the software tool Transformation of Algorithms in C++ (TAC++) for automatic differentiation (AD) of C(++) codes by sourcetosource translation. We have transferred to TAC++ a subset of the algorithms from its wellestablished Fortran equivalent, Transf ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
Summary. The paper describes the development of the software tool Transformation of Algorithms in C++ (TAC++) for automatic differentiation (AD) of C(++) codes by sourcetosource translation. We have transferred to TAC++ a subset of the algorithms from its wellestablished Fortran equivalent, Transformation of Algorithms in Fortran (TAF). TAC++ features forward and reverse as well as scalar and vector modes of AD. Efficient higher order derivative code is generated by multiple application of TAC++. High performance of the generated derivate code is demonstrated for five examples from application fields covering remote sensing, computer vision, computational finance, and aeronautics. For instance, the run time of the adjoints for simultaneous evaluation of the function and its gradient is between 1.9 and 3.9 times slower than that of the respective function codes. Options for further enhancement are discussed.
Automatic sparsity detection implemented as a sourcetosource transformation
 Computational Science – ICCS 2006, Proceedings of the 6th International Conference, Reading, UK, May 28–31, 2006. Part IV, volume 3994 of Lecture Notes in Computer Science
, 2006
"... as a new sourcetosource transformation is presented. Given a code for evaluation of a function, ASD generates code to evaluate the sparsity pattern of the function’s Jacobian by operations on bitvectors. Similar to Automatic Differentiation (AD), there are forward and reverse modes of ASD. As ASD ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
as a new sourcetosource transformation is presented. Given a code for evaluation of a function, ASD generates code to evaluate the sparsity pattern of the function’s Jacobian by operations on bitvectors. Similar to Automatic Differentiation (AD), there are forward and reverse modes of ASD. As ASD code has significantly fewer required variables than AD, ASD should be operated in pure mode, i.e. without an evaluation of the underlying function included in the ASD code. In a performance comparison of ASD to AD on five small test problems, ASD is about two orders of magnitude faster than AD. Hence, for a particular class of sparse Jacobians, it is efficient to determine first the sparsity patten via ASD. In a subsequent AD step, this allows to reduce the effective dimension for the evaluation of the Jacobian by avoiding the evaluation of zero elements via a selection of seed matrices according to the sparsity pattern. 1
Reversal Strategies for Adjoint Algorithms
, 2007
"... Adjoint Algorithms are a powerful way to obtain the gradients that are needed in Scientific Computing. Automatic Differentiation can build Adjoint Algorithms automatically by source transformation of the direct algorithm. The specific structure of Adjoint Algorithms strongly relies on reversal of th ..."
Abstract
 Add to MetaCart
(Show Context)
Adjoint Algorithms are a powerful way to obtain the gradients that are needed in Scientific Computing. Automatic Differentiation can build Adjoint Algorithms automatically by source transformation of the direct algorithm. The specific structure of Adjoint Algorithms strongly relies on reversal of the sequence of computations made by the direct algorithm. This reversal problem is at the same time difficult and interesting. This paper makes a survey of the reversal strategies formalizations used to justify these strategies. 1 Why build Adjoint Algorithms? Gradients are a powerful tool for mathematical optimization. The Newton method for example uses the gradient to find a zero of a function, iteratively, with an excellent accuracy that grows quadratically with the number of iterations. In the context of optimization, the optimum is a zero of the
Using Task Recomputation During Application Mapping in Parallel Embedded Architectures *
"... Abstract Many memorysensitive embedded applications can tolerate small performance degradations if doing so can reduce the memory space requirements significantly. This paper explores this tradeoff by proposing and evaluating an algorithm for performing recomputations in select program points to r ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract Many memorysensitive embedded applications can tolerate small performance degradations if doing so can reduce the memory space requirements significantly. This paper explores this tradeoff by proposing and evaluating an algorithm for performing recomputations in select program points to reduce memory space occupation of data. Our algorithm targets heterogeneous computing platforms and operates with two userspecified parameters that bound performance degradation of the resulting code and its memory space demand. It explores the solution space, performing recomputations (instead of memory stores) for select tasks to reduce memory space demand. Keywords: Heterogeneous Chip Multiprocessors, recomputation, memory minimization.
Towards a tool for forward and reverse mode source to source transformation in C++
"... The paper presents a feasibility study for TAC++, the C++equivalent of Transformation of Algorithm in Fortran (TAF). The goal of this study is to design an ADtool capable of generating the adjoint of a simple but nontrivial C code. The purpose of this new tool is threefold: First, we demonstrate ..."
Abstract
 Add to MetaCart
(Show Context)
The paper presents a feasibility study for TAC++, the C++equivalent of Transformation of Algorithm in Fortran (TAF). The goal of this study is to design an ADtool capable of generating the adjoint of a simple but nontrivial C code. The purpose of this new tool is threefold: First, we demonstrate the feasibility of reverse mode di#erentiation in C. Second, the tool serves as a starting point for development of TAC++. Third, the tool is valuable in itself, as it can di#erentiate simple C codes and can support handcoders of large adjoint C/C++ codes. We have transfered a subset of TAF algorithms to the new tool, including the E#cient Recomputation Algorithm (ERA). Our test code is a C version of the Roe solver in the CFD code EULSOLDO. For a gradient evaluation, the automatically generated adjoint takes the CPU time of about 3.6 to 4.3 function evaluations.