Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aedg_v1_0.tar.gz(616 Kbytes)
Manuscript Title: A Numerical Differentiation Library Exploiting Parallel Architectures
Authors: C. Voglis, P. E. Hadjidoukas, I. E. Lagaris, D. G. Papageorgiou
Program title: NDL (Numerical Differentiation Library)
Catalogue identifier: AEDG_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 180(2009)1404
Programming language: ANSI FORTRAN-77, ANSI C, MPI. OPENMP.
Computer: Distributed systems (clusters), shared memory systems.
Operating system: Linux, Solaris.
Has the code been vectorised or parallelized?: Yes
RAM: The library uses O(N) internal storage, N being the dimension of the problem
Keywords: Numerical differentiation, finite differences, optimization, nonlinear equations, OpenMP, MPI, parallel processing, distributed computing.
PACS: 02.60.Jh, 02.60.Pn, 02.70.Bf.
Classification: 4.9, 4.14, 6.5.

Nature of problem:
The numerical estimation of derivatives at several accuracy levels is a common requirement in many computational tasks, such as optimization, solution of nonlinear systems, etc. The parallel implementation that exploits systems with multiple CPUs is very important for large scale and computationally expensive problems.

Solution method:
Finite differencing is used with carefully chosen step that minimizes the sum of the truncation and round-off errors. The parallel versions employ both OpenMP and MPI libraries.

The library uses only double precision arithmetic.

Unusual features:
The software takes into account bound constraints, in the sense that only feasible points are used to evaluate the derivatives, and given the level of the desired accuracy, the proper formula is automatically employed.

Running time:
Running time depends on the function's complexity. The test run took 15ms for the serial distribution, 0.6 seconds for the openmp and 4.2 seconds for the MPI parallel distribution on 2 processors.