next up previous contents index
Next: General Use of ARPACK Up: An Example for a Previous: Setting the Starting Vector

Trace Debugging Capability


Figure 2.5: How to initiate the trace debugging capability in ARPACK.
 	include 'debug.h'
 	ndigit = -3
 	logfil = 6
 	msgets = 0
 	msaitr = 0
 	msapps = 0
 	msaupd = 1
 	msaup2 = 0
 	mseigt = 0
 	mseupd = 0

ARPACK provides a means to trace the progress of the computation as it proceeds. Various levels of output may be specified from no output (level = 0 ) to voluminous (level = 3) . The code segment listed in Figure 2.5 gives an example of the statements that may be used within the calling program to initiate and request this output.

The include statement sets up the storage declarations that are solely associated with this trace debugging feature. The parameter ndigit  specifies the number of decimal digits and the width of the output lines. A positive or negative value of ndigit specifies that 132 or 80 columns, respectively, are used during output. The parameter logfil  specifies the logical unit number of the output file. The values of the remaining parameters indicate the output levels from the indicated routines. For example, msaitr  indicates the level of output requested from the subroutine dsaitr. The above configuration will give a breakdown of the number of matrix vector products required, the total number of iterations, the number of re-orthogonalization steps and an estimate of the time spent in each routine and phase of the computation. Figure 2.6 displays the output produced by the above settings. The user is encouraged to experiment with the other settings once some familiarity has been gained with the routines. See Appendix B for a detailed discussion of the Trace Debugging Capabilities.

Figure 2.6: Output from a Debug session for dsaupd.

     = Symmetric implicit Arnoldi update code =
     = Version Number: 2.1                    =
     = Version Date:   11/15/95               =
     = Summary of timing statistics           =

     Total number update iterations             =     8
     Total number of OP*x operations            =   125
     Total number of B*x operations             =     0
     Total number of reorthogonalization steps  =   125
     Total number of iterative refinement steps =     0
     Total number of restart steps              =     0
     Total time in user OP*x operation          =     0.020002
     Total time in user B*x operation           =     0.000000
     Total time in Arnoldi update routine       =     0.210021
     Total time in ssaup2 routine               =     0.190019
     Total time in basic Arnoldi iteration loop =     0.110011
     Total time in reorthogonalization phase    =     0.070007
     Total time in (re)start vector generation  =     0.000000
     Total time in trid eigenvalue subproblem   =     0.040004
     Total time in getting the shifts           =     0.000000
     Total time in applying the shifts          =     0.040004
     Total time in convergence testing          =     0.000000

next up previous contents index
Next: General Use of ARPACK Up: An Example for a Previous: Setting the Starting Vector
Chao Yang