next up previous contents
Next: Creating a new interface Up: Installation and usage Previous: CUTEr and automatic differentiation   Contents


Interfaces

This section describes existing CUTEr interfaces with optimization and linear algebra packages and how to create a new interface.

Information and usage of the different interfaces to existing optimization and linear algebra packages may be found in the man pages $CUTER/common/man/man1, and users should ensure that the directory $CUTER/common/man appears on their MANPATH. The man page for the generic script script may be viewed by issuing the command man script, its X interface xman, or, on LINUX systems, by executing the command less script.1. Table 1.4 shows the interfaces provided and the packages to which they correspond.


Table 1.4: Interfaces between the CUTEr tools and existing optimization and linear algebra packages as of March 24, 2005.
Interface Package
cgd/sdcgd CG_Descent (Hager and Zhang)
cgp/sdcgp CG+ (Liu, Nocedal and Waltz)
cob/sdcob COBYLA (Powell)
fil/sdfil FilterSQP (Fletcher and Leyffer)
gen/sdgen Generic Fortran 77 interface
gen90/sdgen90 Generic Fortran 90 interface
genc/sdgenc Generic C/C++ interface
hrb/sdhrb SIF-Harwell- or Rutherford-Boeing
  sparse matrix format converter (Gould)
ipopt/sdipopt IPOPT (Wächter)
knit/sdknit KNITRO (Byrd, Nocedal and Waltz)
la04/sdla04 LA04 (Reid)
lbb/sdlbb L-BFGS-B (updated) (Nocedal)
lbs/sdlbs L-BFGS (Nodedal)
lmb/sdlmb L-BFGS-B (Nocedal)
lqo/sdlqo LOQO (Benson, Shanno and Vanderbei)
mns/sdmns MINOS (Murtagh and Saunders)
nits/sdnits NITSOL (Pernice and Walker)
nps/sdnps NPSOL (Gill, Murray, Saunders and Wright)
osl/sdosl OSL (IBM)
pds/sdpds PDS (Torczon)
prx/sdprx PRAXIS (Brent and Chandler)
snp/sdsnp SNOPT (Gill, Murray and Saunders)
stn/sdstn Stenmin (Bouaricha)
tao/sdtao TAO (Benson, Curfman McInnes, Moré and Sarich)
ten/sdten Tenmin (Schnabel and Chow)
trn/sdtrn TRON (Lin and Moré)
unc/sdunc Uncmin (Koontz, Schnable and Weiss)
va15/sdva15 VA15 (Nocedal)
ve09/sdve09 VE09 (Gould)
ve12/sdve12 HSL_VE12 (Gould)
ve14/sdve14 VE14 (Gould)
vf13/sdvf13 VF13 (Powell)


For the purpose of an illustration, let us now consider the unc and sdunc interfaces to the UNCMIN unconstrained minimization package. Their calling sequences are as follows

sdunc [-s] [-h] [-k] [-o j] [-l secs] [-f] [-b] [-a j] [-show]
[-param name=value[,name=value...]] [-debug] probname[.SIF],

unc [-n] [-h] [-s] [-k] [-r] [-o j] [-l secs] [-debug].

The purpose of sdunc is to SIF-decode probname.SIF, set environment variables defining object and specification files necessary to compile the main UNCMIN executable, and launch runpackage. The script unc is simliar, except that it assumes that the problem has already been decoded by the SIF decoder. The main executable is linked, compiled and run by runpackage. An important difference with previous versions of CUTE is that runpackage is independent of any interface; only those scripts given in Table 1.4 depend on the optimization package which must be interfaced. The arguments of sdunc and unc are thoroughly described in the man pages. We briefly review them here.

-s
link, compile and run the single precision instance. Double precision is the default;
-h
prints a help message;
-k
keep the load module after use;
-r
(unc only) discourage recompilation of the test problem;
-o $j$
verbosity level: -o 0 is silent mode and -o 1 is verbose mode. The default is -o 0;
-l secs
limits the CPU running time to secs seconds;
-f
(sdunc only) generate the relevant subroutines for automatic differentiation in forward mode;
-b
(sdunc only) generate the relevant subroutines for automatic differentiation in backward mode;
-a $j$
(sdunc only) when used in conjunction with -f or -b, -a 1 uses the older HSL automatic differentiation package AD01, which -a 2 uses the newer, threadsafe, automatic differentiation package AD02;
-show
(sdunc only) displays possible parameter settings for probname[.SIF]. Other options are ignored;
-param
(sdunc only) cast probname[.SIF] against explicit parameter settings;
-debug
links the libraries and compile with -g option so as to allow debugging;
-n
(unc only) use the load module if it exists. The default is to recompile.

The main object files for the supported packages (i.e. in this case, uncmin.o) should be placed in (or symlinked to from the directory) $MYCUTER/precision/bin, while the required specification files should be placed in (or symlinked to from) the current directory.


next up previous contents
Next: Creating a new interface Up: Installation and usage Previous: CUTEr and automatic differentiation   Contents
Dominique Orban 2005-03-24