next up previous contents index
Next: Check Pointing ARPACK Up: Tracking the progress of Previous: Tracking the progress of

Obtaining Trace Output

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 following statements may be used within the calling program to initiate and request this output.

      include 'debug.h'
      ndigit = -3
      logfil = 6
      msgets = 0
      msaitr = 0
      msapps = 0
      msaupd = 1
      msaup2 = 0
      mseigt = 0
      mseupd = 0
The parameter logfil  specifies the logical unit number of the output file. The parameter ndigit  specifies the number of decimal digits and the width of the output lines. A positive value of ndigit specifies that 132 columns are used during output and a negative value specifies eighty columns are to be used. The values of the remaining parameters indicate the output levels from the indicated routines.

For the above example, msaitr  indicates the level of output requested for the subroutine ssaitr or 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. The output displayed by Figure B.1 is produced.


  
 ==========================================
 = 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
Figure B.1: Sample output produced by dsaupd.

The user is encouraged to experiment with the other settings once some familiarity has been gained with the routines. The sample drivers discussed in Chapter 2 use the trace debugging capability.

The include  statement sets up the storage declarations that are solely associated with this trace debugging feature. The structure of debug.h  is displayed in Figure B.2. The parameters on the line starting with msaupd  are for the symmetric codes, while the next two lines are for the nonsymmetric and complex arithmetic codes, respectively. A comprehensive break down of each parameter is listed in Table B.1.


  
c
c\SCCS Information: @(#)
c FILE: debug.h  SID: 2.3  DATE OF SID: 11/16/95   RELEASE: 2
c
c     %---------------------------------%
c     | See debug.doc for documentation |
c     %---------------------------------%
      integer  logfil, ndigit, mgetv0,
     &         msaupd, msaup2, msaitr, mseigt, msapps, msgets,
     &         mseupd, mnaupd, mnaup2, mnaitr, mneigh, mnapps,
     &         mngets, mneupd, mcaupd, mcaup2, mcaitr, mceigh,
     &         mcapps, mcgets, mceupd
      common /debug/
     &         logfil, ndigit, mgetv0,
     &         msaupd, msaup2, msaitr, mseigt, msapps, msgets,
     &         mseupd, mnaupd, mnaup2, mnaitr, mneigh, mnapps,
     &         mngets, mneupd, mcaupd, mcaup2, mcaitr, mceigh,
     &         mcapps, mcgets, mceupd
Figure B.2: The include file debug.h.


 
Table B.1: Description of the message level settings for ARPACK.
     
1|cRoutine 1cLevel 1c|Description
     
mYaupd 1 Print the total number of iterations taken, the number
    of converged Ritz values, the Ritz values and corres-
    ponding Ritz estimates, and various timing statistics.
     
mYaup2 1 Print the current iteration and the number of converged
    Ritz values. Upon exit, print the number of converged
    Ritz values, the Ritz values and estimates.
  2 Print the length of the Arnoldi extended factorization,
    the norm of its residual vector. Print NEV and NP,
    the Ritz values and estimates at each iteration.
  3 Print the real and imaginary parts of all the Ritz
    values and associated Ritz estimates, NEV, NP, NUMCNV,
    NCONV. Print the shifts. If the exact shift strategy is
    used, also print the associated Ritz estimates of the
    shifts. Print the norm of the residual of the
    compressed factorization and the compressed upper
    Hessenberg matrix.
     
mYaitr 1 Notification of a restart.
  2 Print the number of Arnoldi vector being generated and
    the norm of the current residual.
  3 Print the columns of the Hessenberg matrix as
    they are generated, reorthogonalization and iterative
    refinement information, the final upper Hessenberg
    matrix of order K+NEV, and
     
mYeigh 2 Print the last row of the Schur matrix for , and the
    last row of the eigenvector matrix for
  3 Print the initial upper Hessenberg matrix, the computed
    eigenvalues associated Ritz estimates.
     
mYapps 1 Print information about where deflation occurred.
  2 Print sigmak, betak, order of the final Hessenberg
    matrix, and the final compressed upper Hessenberg
    matrix.
  3 Print implicit application of shift number, real and
    imaginary part of the shift, and the indices of the
    submatrix that the shift is applied.
     
mYeupd 2 Print the NCV eigenvalues. Print the final
    set of converged Ritz values.
  3 Print the reordered eigenvalues.


next up previous contents index
Next: Check Pointing ARPACK Up: Tracking the progress of Previous: Tracking the progress of
Chao Yang
11/7/1997