Prev | Next |
speed/package/speed_package test seed option_list
package
.
package
specifies one of the AD package.
The CppAD distribution comes with support for the following packages:
adolc
,
cppad
,
fadbad
,
sacado
,
cppadcg
.
You can extend this program to include other package;
see speed_xpackage
.
package
can be double
in which case
the function values (instead of derivatives) are computed
using double precision operations.
This enables one to compare the speed of computing function
values in double
to the speed of the derivative computations.
(It is often useful to divide the speed of the derivative computation by
the speed of the function evaluation in double
.)
package
is profile
,
the CppAD package is compiled and run with profiling to aid in determining
where it is spending most of its time.
test
specifies which test to run
and has the following possible values:
correct
,
speed
,
det_minor
,
det_lu
,
mat_mul
,
ode
,
poly
,
sparse_hessian
,
sparse_jacobian
.
You can experiment with changing the implementation of a
particular test for a particular package.
test
is equal to correct
,
all of the correctness tests are run.
test
is equal to speed
,
all of the speed tests are run.
seed
is an unsigned integer
(all its characters are between 0 and 9).
The random number simulator uniform_01
is initialized with
the call
uniform_01(seed)
before any of the testing routines (listed above) are called.
extern std::map<std::string, bool> global_option;The syntax
global_option["option"]
has the value true, if
option
is present,
and false otherwise.
This is true for each option that follows
seed
.
The order of the options does not matter and the list can be empty.
Each option, is be a separate command line argument to the main program.
The documentation below specifics how the
speed_cppad
program uses these options.
It is the intention that other packages use each option in a similar
way or make it invalid.
The implementation of each test should check that the option
setting are valid for that test and if not it should return false;
for example, see the source code for adolc_sparse_hessian.cpp
.
All of the tests, except det_lu
,
have the same operation sequence for each repetition.
The operation sequence for det_lu
may be different because it depends on the matrix for which the determinant
is being calculated.
For this reason, cppad_det_lu.cpp
returns false,
to indicate that the test not implemented,
when global_onetape
is true.
memory
option is present, the CppAD
hold_memory
routine will be called by
the speed test main program before any of the tests are executed
This should make the CppAD thread_alloc
allocator faster.
If it is not present, CppAD will used standard memory allocation.
Another package might use this option for a different
memory allocation method.
onetape
option.
hes2jac
is present.
boolsparsity
, revsparsity
, or colpack
is also present,
the CppAD speed tests will return false; i.e., these options are not
supported by subgraph_sparsity
.
package_test_optionlist_available = false
package_test_optionlist_ok = flag
is generated for each correctness test where
package
and
test
are as above,
optionlist
are the options (in
option_list
)
separated by the underbar _
character
(whereas they are separated by spaces in
option_list
),
and
flag
is true
or false
.
package_test_optionlist_ok = flag
test_size = [ size_1, ..., size_n ]
package_test_rate = [ rate_1, ..., rate_n ]
The values
package
,
test
,
optionlist
,
and
flag
are as in the correctness results above.
The values
size_1
, ...,
size_n
are the
size arguments used for the corresponding tests.
The values
rate_1
, ...,
rate_n
are the number of times
per second that the corresponding size problem executed.
package_sparse_test_n_color = [ n_color_1, ..., n_color_n ]
were
test
is jacobian
(hessian
).
The values
n_color_1
, ...,
n_color_n
are the number of
colors used for each sparse Jacobian (Hessian) calculation; see
n_color
for
sparse_jac
and
n_sweep
for
sparse_hessian
.
link_det_lu | Speed Testing Gradient of Determinant Using Lu Factorization |
link_det_minor | Speed Testing Gradient of Determinant by Minor Expansion |
link_mat_mul | Speed Testing Derivative of Matrix Multiply |
link_ode | Speed Testing the Jacobian of Ode Solution |
link_poly | Speed Testing Second Derivative of a Polynomial |
link_sparse_hessian | Link to Speed Test Sparse Hessian |
link_sparse_jacobian | Speed Testing Sparse Jacobians |