## Tools

In order to do accurate performance evaluations it may
be useful to obtain more detailed information about a solve than the
end data the trace file gives. E.g., for a branch-and-bound based solver,
we may want to have intermediate
information about the solve for the rootnode, subnodes, and end
results.

The *solve trace* option that is implemented in some of the
GAMS solver interfaces allows users to output
solve information, e.g., primal and dual bounds, for every n
nodes or at every time step. For example, the user may be interested
in the objective value of the incumbent solution or the
best dual bound on the optimal value every 50 nodes and every five
seconds of the solve.

### Using the GAMS solve trace option

The solve trace option is invoked via a GAMS solver options file.
Usually, options to specify a filename of the trace file to be created
and options to specify time and node intervals are available.

Please refer to the GAMS solver manuals for the exact names of these options
(search for solvetrace or miptrace).

A sample solve trace file is
miptrace.mtr where the file includes statistics of
a GAMS run using the MIP model
blend2 from the Performance Library and the solver
XPRESS.

### Solve trace file format

The column headers for solve trace files are as follows:
1. lineNum: GAMS index to be able to read in the file as a table.
2. seriesID: S=start, N=Node, T=time information, E=end.
3. node:
4. seconds: time after solve start.
5. bestFound: best integer solution at a given time or node.
6. bestBound: best bound at a given time or node.