Dimitris Papageorgiou Dept. of Materials Science and Engineering
University of Ioannina, Greece
   

NDL: A numerical differentiation library exploiting parallel architectures


Description

NDL is a software library for numerically estimating first and second order partial derivatives of a function by finite differencing. It offers various truncation schemes resulting in corresponding formulas that are accurate to order O(h), O(h2), and O(h4), h being the differencing step. The derivatives are calculated via forward, backward and central differences. Care has been taken that only feasible points are used in the case where bound constraints are imposed on the variables. The Hessian may be approximated either from function or from gradient values. There are three versions of the software: a sequential version, an OpenMP version for shared memory architectures and an MPI version for distributed systems (clusters). The parallel versions exploit the multiprocessing capability offered by computer clusters, as well as modern multicore systems and due to the independent character of the derivative computation, the speedup scales almost linearly with the number of available processors/cores.

NDL is described in the following articles:

  • A numerical differentiation library exploiting parallel architechtures
    C. Voglis, P.E. Hadjidoukas, I.E. Lagaris, D.G. Papageorgiou
    Comput. Phys. Commun. 180 (2009) 1404-1415.
    Associated software in the CPC Program Library: AEDG_v1_0
    DOI: 10.1016/j.cpc.2009.02.004
  • NDL-v2.0: A new version of the numerical differentiation library for parallel architectures
    P.E. Hadjidoukas, P. Angelikopoulos, C. Voglis, D.G. Papageorgiou, I.E. Lagaris
    Comput. Phys. Commun. 185 (2014) 2217-2219.
    Associated software in the CPC Program Library: AEDG_v2_0
    DOI: 10.1016/j.cpc.2014.04.002

Downloads

The complete distribution: ndl-1.0.1.tar.gz
  ndl-2.0.tar.gz
HTML-4.01-Transitional       CSS-2.1 Last update: Sep 23, 2015 22:48:55