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
|