Print
Univis
Search
 
FAU-Logo
Techn. Fakultät Website deprecated and outdated. Click here for the new site. FAU-Logo

Java Parallel Optimization Package

JPOP: Java parallel optimization package

Java parallel optimization package (JPOP) is an open-source software library which allows the minimization of non-linear functions. It was developed at the Radiological Sciences Laboratory at Stanford University under the lead of Prof. Rebecca Fahrig.

The package provides interfaces to implement functions, gradients, and Hessians of arbitrary functions which can be minimized in a parallel manner. The minimization itself is based on a translation of uncmin and fmin for Java (Nonlinear Optimization Java Package). Details on the optimization algorithm of uncmin are found in this paper: Schnabel, Robert B., Koontz, John E., and Weiss, Barry E. (1985). A modular system of algorithms for unconstrained minimization. ACM Transactions on Mathematical Software, 11(4), 419-440.

The main features of JPOP are:

  • Parallel evaluation of analytical functions, gradients, and Hessians. JPOP allows multi-core optimization of computationally expensive functions.
  • Object-oriented interfaces to the solid, efficient Fortran optimization routines.
  • JPOP is employs Java array format (starting from 0). Fortran-like array access (staring from 1) is handled internally.

JPOP is available at Sourceforge for download and an online version of the API is found here. JPOP is licenced under LGPL.

JPOP is currently in alpha state. It you experience any problems, please feel free to contact the author. If you do not require a parallel optimization, i.e. if gradient computation is not expensive you may also want to have a look at Apache Commons Math.

JPOP Architecture

Flow chart of the JPOP processing pipeline. Parallelization is achieved by splitting function evaluation, gradient and Hessian computation into parallel blocks which are then combined in a FunctionAssembler.

Example Code for Multivariate Optimization

For  examples see the class "UncminTest_f77.java". More examples will follow as soon as possible. If you have questions, please send me a mail (cf. above).