Exploiting parallelism in automatic differentiation
Exploiting parallelism in automatic differentiation
复制标题
在自动微分中利用并行性
DOI:
--
复制
发表时间:
1991
期刊:
影响因子:
--
通讯作者:
D. Juedes
中科院分区:
文献类型:
--
作者:
C. Bischof;A. Griewank;D. Juedes
The numerical methods employed in the solution of many scientific computing problems require the computation of first or second order derivatives of a function f:R{sup n} {yields} R{sup m}. We present an approach that, given a serial C program for the computation of f(x), derives a parallel execution schedule for the computation of f and its derivatives in a completely automatic fashion. This is achieved by overloading the computation of f(x) in C++ to obtain a trace of the computations to be performed and then transforming this trace into a data flow graph for the computation of f(x). In addition to the computation f(x), this graph also allows us to exactly and inexpensively compute derivates of f by the repeated use of the chain rule. Parallelism is exploited in two ways: Rows or Columns of derivative matrices can be computed by independent passes through the computational graph, and parallelism within the processing of this computational graph can be exploited by processing independent subgraphs concurrently. We present experimental results that show that good performance on shared-memory machines can be obtained by using a graph interpreter approach. We then present some ideas that are currently under development for regulating computational granularity, andmore » to allow for the derivation of a compiled program for the parallel computation of f and its derivatives, using the PCN (Parallel Composition Notation) parallel language environment. 28 refs., 5 figs.« less