Source-to-Source Automatic Differentiation of OpenMP Parallel Loops

被引:7
|
作者
Hueckelheim, Jan [1 ]
Hascoet, Laurent [2 ]
机构
[1] Argonne Natl Lab, 9700 South Cass Ave, Lemont, IL 60439 USA
[2] Inria Sophia Antipolis, 2004 Route Lucioles, F-06902 Biot, France
来源
关键词
Automatic differentiation; OpenMP; shared-memory parallel; multicore;
D O I
10.1145/3472796
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This article presents our work toward correct and efficient automatic differentiation of OpenMP parallel worksharing loops in forward and reverse mode. Automatic differentiation is a method to obtain gradients of numerical programs, which are crucial in optimization, uncertainty quantification, and machine learning. The computational cost to compute gradients is a common bottleneck in practice. For applications that are parallelized for multicore CPUs or GPUs using OpenMP, one also wishes to compute the gradients in parallel. We propose a framework to reason about the correctness of the generated derivative code, from which we justify our OpenMP extension to the differentiation model. We implement this model in the automatic differentiation tool Tapenade and present test cases that are differentiated following our extended differentiation procedure. Performance of the generated derivative programs in forward and reverse mode is better than sequential, although our reverse mode often scales worse than the input programs.
引用
收藏
页数:32
相关论文
共 50 条
  • [1] Source-to-source compilation targeting OpenMP-based automatic parallelization of C applications
    Hamid Arabnejad
    João Bispo
    João M. P. Cardoso
    Jorge G. Barbosa
    The Journal of Supercomputing, 2020, 76 : 6753 - 6785
  • [2] Source-to-source compilation targeting OpenMP-based automatic parallelization of C applications
    Arabnejad, Hamid
    Bispo, Joao
    Cardoso, Joao M. P.
    Barbosa, Jorge G.
    JOURNAL OF SUPERCOMPUTING, 2020, 76 (09): : 6753 - 6785
  • [3] Using Source-to-Source Transformation Tools to Provide Distributed Parallel Applications from OpenMP Source Code
    Renault, Eric
    PROCEEDINGS OF THE INTERNATIONAL SYMPOSIUM ON PARALLEL AND DISTRIBUTED COMPUTING, 2008, : 197 - 204
  • [4] Source-to-source instrumentation for the optimization of an automatic reading system
    Pereira, P
    Heutte, L
    Lecourtier, Y
    JOURNAL OF SUPERCOMPUTING, 2001, 18 (01): : 89 - 104
  • [5] From OpenMP to MPI: first experiments of the STEP source-to-source transformation tool
    Millot, Daniel
    Muller, Alain
    Parrot, Christian
    Silber-Chaussumier, Frederique
    PARALLEL COMPUTING: FROM MULTICORES AND GPU'S TO PETASCALE, 2010, 19 : 669 - 676
  • [6] Automatic Sparsity Detection implemented as a source-to-source transformation
    Giering, Ralf
    Kaminski, Thomas
    COMPUTATIONAL SCIENCE - ICCS 2006, PT 4, PROCEEDINGS, 2006, 3994 : 591 - 598
  • [7] Source-to-Source Instrumentation for the Optimization of an Automatic Reading System
    P. Pereira
    L. Heutte
    Y. Lecourtier
    The Journal of Supercomputing, 2001, 18 : 89 - 104
  • [8] Automatic Selection and Insertion of HLS Directives Via a Source-to-Source Compiler
    Santos, Tiago
    Cardoso, Joao M. P.
    2020 INTERNATIONAL CONFERENCE ON FIELD-PROGRAMMABLE TECHNOLOGY (ICFPT 2020), 2020, : 227 - 232
  • [9] Automatic Source-to-Source Error Compensation of Floating-Point Programs
    Thevenoux, Laurent
    Langlois, Philippe
    Martel, Matthieu
    2015 IEEE 18TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE AND ENGINEERING (CSE), 2015, : 9 - 16
  • [10] Polyhedral Source-to-Source Compiler
    Adamski, Dominik
    Jablonski, Grzegorz
    Perek, Piotr
    Napieralski, Andrzej
    PROCEEDINGS OF THE 23RD INTERNATIONAL CONFERENCE ON MIXED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS (MIXDES 2016), 2016, : 458 - 463