Efficient computation of derivatives for solving optimization problems in R and Python using SWIG-generated interfaces to ADOL-C†. (2nd November 2018)
- Record Type:
- Journal Article
- Title:
- Efficient computation of derivatives for solving optimization problems in R and Python using SWIG-generated interfaces to ADOL-C†. (2nd November 2018)
- Main Title:
- Efficient computation of derivatives for solving optimization problems in R and Python using SWIG-generated interfaces to ADOL-C†
- Authors:
- Kulshreshtha, K.
Narayanan, S.H.K.
Bessac, J.
MacIntyre, K. - Abstract:
- Abstract : Scripting languages are gaining acceptance because of their ease of use and value for rapid prototyping in many fields, including machine learning and statistics. In the context of algorithmic differentiation, however, the main development effort continues to be concentrated on traditional compiled languages such as Fortran and C/C++, whether source transformation tools or operator overloading tools. There is therefore a need for AD tools for computing derivatives efficiently within scripting languages. ADOL-C is an operator overloading-based C++ library that provides accurate first- and higher order derivatives for applications in C++. SWIG is a preprocessor that uses the C/C++ header files to wrap the API of a library to be callable from scripting languages such as R and Python and several other high-level programming languages. Although every language has its caveats, the overall process of making the C/C++ API available via SWIG is the same for all scripting languages. After an initial effort required per language, because SWIG is an automated interface generator based on the library's actual header files, only minimal effort is required to maintain the scripting interface in sync with upstream developments in the original C/C++ library. In addition to achieving our original goal of creating an interface for R, we were able to generate an interface for Python that proved an order of magnitude faster than the previously implemented interface. This paper givesAbstract : Scripting languages are gaining acceptance because of their ease of use and value for rapid prototyping in many fields, including machine learning and statistics. In the context of algorithmic differentiation, however, the main development effort continues to be concentrated on traditional compiled languages such as Fortran and C/C++, whether source transformation tools or operator overloading tools. There is therefore a need for AD tools for computing derivatives efficiently within scripting languages. ADOL-C is an operator overloading-based C++ library that provides accurate first- and higher order derivatives for applications in C++. SWIG is a preprocessor that uses the C/C++ header files to wrap the API of a library to be callable from scripting languages such as R and Python and several other high-level programming languages. Although every language has its caveats, the overall process of making the C/C++ API available via SWIG is the same for all scripting languages. After an initial effort required per language, because SWIG is an automated interface generator based on the library's actual header files, only minimal effort is required to maintain the scripting interface in sync with upstream developments in the original C/C++ library. In addition to achieving our original goal of creating an interface for R, we were able to generate an interface for Python that proved an order of magnitude faster than the previously implemented interface. This paper gives an overview of the interface generation process, the challenges we encountered with both scripting languages and some numerical results to demonstrate both usefulness and efficiency. … (more)
- Is Part Of:
- Optimization methods and software. Volume 33:Number 4/6(2018)
- Journal:
- Optimization methods and software
- Issue:
- Volume 33:Number 4/6(2018)
- Issue Display:
- Volume 33, Issue 4/6 (2018)
- Year:
- 2018
- Volume:
- 33
- Issue:
- 4/6
- Issue Sort Value:
- 2018-0033-NaN-0000
- Page Start:
- 1173
- Page End:
- 1191
- Publication Date:
- 2018-11-02
- Subjects:
- algorithmic differentiation -- autodiff -- machine learning -- stochastic optimization -- data analysis -- ADOL-C -- scripting -- R -- Python -- SWIG
Mathematical optimization -- Periodicals
Algorithms -- Periodicals
519.7 - Journal URLs:
- http://www.tandfonline.com/toc/goms20/current ↗
http://www.tandfonline.com/ ↗ - DOI:
- 10.1080/10556788.2018.1425861 ↗
- Languages:
- English
- ISSNs:
- 1055-6788
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 6275.120000
British Library DSC - BLDSS-3PM
British Library HMNTS - ELD Digital store - Ingest File:
- 7352.xml