Skip to content

CSCsw/LivarH-Test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A collection of simple tests to check the consistency of the hessian computed by:

hessian() in ADOL-C and edge_hess() (which implements the edge_pushing algorithm)

edge_hess() has almost the same parameters as sparse_hess() Except edge_hess() has the dependents check but does not have a repeat flag, and a different meaning for options[2]:

options[0] = 0 (Default)     \\ Disable Preaccumulation
           = 1               \\ Enable Preaccumulation 
                             \\ (need --enable-preacc when configure ADOL-C)

options[0] = 1               \\ Deprecated

Include the header "adolc/hessian/edge_main.h" And then call edge_hess() in the same way as if sparse_hess() is called.

Configuration : adpath.sh

Change the content in adpath.sh according to your installation. The default values are:

CXX="g++" //C++ compiler

CXXFLAGS="-O3" //Optimization level

OLD_LD_PATH="${LD_LIBRARY_PATH}" //Current LD_LIBRARY_PATH, don't change

AD_LIBS_PATH="${HOME}/adolc_edge/lib64"

AD_INCL_PATH="${HOME}/adolc_edge/include" //The path to the default adolc installation with --enable-sparse. (Change this according to your installation)

PREACC_LIBS_PATH="${HOME}/adolc_preacc/lib64"

PREACC_INCL_PATH="${HOME}/adolc_preacc/include" //The path to the adolc installation with preaccumulation, --enable-preacc. (Change this according to your installation)

The setting is shared by all following scripts.

hessTest.cpp & functions/test*.cpp : simple & synthetic test functions

test1-test6: simple functionality tests, some of them may require flags "--enable-atrig-erf --enable-advanced-branching" when configure ADOL-C.

testF1-testF4: the four tests used in performance measurement.

The autotest.sh script is provided to automatically run the testF1-testF4 using the setting in the paper. (Table 6 in the paper). Simply type: ./autotest.sh

Note: only overall runtime is reported, for breakdown performance for Direct/Indirect methods in ADOL-C, please instrument sparse_hess() in "ADOL-C/src/sparse/sparsedriver.cpp".

##others/mesh/ : mesh optimization problem The three dataset used in the paper are : gear.mesh, duct12.mesh, duct8.mesh.Also a "autotest.sh" is provided to regenerate results on these cases. (Table 11 in the paper)

Note: the script only run the sparse methods in this case. Because the full hessian takes extrodinally long time to finish.

##others/random/ : random hessian generator autotestA.sh : Test the performance dependency on number of basic operations per statement. (Figure 10 in the paper)

autotestB.sh : Test the scalability with respect to function complexity. (Figure 12 in the paper)

autotestC.sh : Test the performance dependency on sparsity of the final Hessian. (Figure 13 in the paper)

About

Tests for LivarH

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors