Previous: Debugging and Status Options, Up: Invoking Cold


1.7 Technical Options

These options should only be used if understood, many are just useful for debugging or dealing with any bugs that might be present.

-P number

[Not yet implemented] precision - controls how close to zero numbers have to be before being treated as zero. Too small a precision can lead to unstable results.

-b number

[Not yet implemented] buffer size - controls sizes of internal buffers for loading data from files. There should be little reason to change this, but could be useful if there seem to be problems with saved data being corrupted.

-T number Number of threads. In order to make more efficient use of multiple processors, computations for different sites are performed by different threads. The number of threads should usually be equal to the number of 'cores' on the machine (or twice the number if hyperthreading is possible). This should be set as the default when compiling. However, if other processes are also running on the machine, it may be better to use fewer threads. Single threaded mode is less likely to have bugs (though the program has been well tested for threading bugs and seems OK). [Note that for large models or trees, each thread can take up a lot of memory, so it may be faster to run fewer threads than there are processes available in this case.]

Single-threaded mode (i.e. option -T1) may also be appropriate for submitting jobs to servers, since the scheduling program may expect single-threaded programs.

-o operation Operation - the default operation 1 is to maximise, this option can be used to attempt to minimise the likelihood, when set with value 0.

--testderivs For debugging. Tests whether the hessian and derivatives calculated by the program are correct (by comparing to values approximated by comparing two nearby points).

-e number For use with the –testderivs option. This sets the distance between points for testing derivatives. The default is 1e-6. If the derivatives are small relative to the values, this can cause rounding errors to make the test inaccurate. In such a case, setting a larger value can improve the testing.