[Up] [Previous] [Next] [Index]

A The Meanings of ACE's output messages


  1. Progress Messages
  2. Results Messages

In this chapter, we discuss the meanings of the messages that appear in output from the ACE binary, the verbosity of which is determined by the messages option (see option messages). Actually our aim here is to concentrate on describing those ``messages'' that are controlled by the messages option, namely the progress and results messages; other output from ACE is fairly self-explanatory. (We describe some other output to give points of reference.)

Both interactively and non-interactively, ACE output is Info-ed at InfoACE level 3. To see the Info-ed ACE output, set the InfoLevel of InfoACE to at least 3, e.g.

gap> SetInfoACELevel(3);

This causes each line of ACE output to be prepended with ``#I ''. Below, we describe the Info-ed output observed when each of ACECosetTableFromGensAndRels, ACECosetTable, ACEStats or ACEStart is called with three arguments, and presume that users will be able to extend the description to explain output observed from other ACE interface functions. The first-observed (Info-ed) output from ACE, is ACE's banner, e.g.

#I  ACE 3.001        Sat Feb 27 11:44:12 2016
#I  =========================================
#I  Host information:
#I    name = banksia
#I  ***

If there were any errors in the directives put to ACE, or output from the options described in Appendix Other ACE Options, they will appear next. Then, the next observed output is a row of three asterisks:

#I  ***

Guru note: The three asterisks are generated by a ``text:***'' (see option text) directive, emitted to ACE, so that ACE's response can be used as a sentinel to flush out any user errors, or any output from a user's use of Appendix Other ACE Options options.

Next, if the messages option (see option messages) is set to a non-zero value, what is observed is a heading like:

#I    #--- ACE 3.001: Run Parameters ---

(where 3.001 may be replaced be some later version number of the ACE binary) followed by the ``input parameters'' developed from the arguments and options passed to ACECosetTableFromGensAndRels, ACEStats or ACEStart. After these appears a separator:

#I    #---------------------------------

followed by any progress messages (progress messages only occur if messages is non-zero; recall that by default messages = 0), followed by a results message.

In the case of ACECosetTableFromGensAndRels, the results message is followed by a compaction (CO or co) progress message and a coset table.

ACE's exit banner which should look something like:

ACE 3.001        Sat Feb 27 11:44:17 2016

is only seen when running ACE as a standalone.

Both progress messages and the results message consist of an initial tag followed by a list of statistics. All messages have values for the statistics a, r, h, n, h, l and c (excepting that the second h, the one following the n statistic, is only given if hole monitoring has been turned on by setting messages < 0, which as noted above is expensive and should be avoided unless really needed). Additionally, there may appear the statistics: m and t (as for the results message); d; or s, d and c (as for the DS progress message). The meanings of the various statistics and tags will follow later. The following is a sample progress message:

#I  AD: a=2 r=1 h=1 n=3; h=66.67% l=1 c=+0.00; m=2 t=2

with tag AD and values for the statistics a, r, h, n, h (appears because messages < 0), l, c, m and t. The following is a sample results message:

#I  INDEX = 12 (a=12 r=16 h=1 n=16; l=3 c=0.01; m=14 t=15)

which, in this case, declares a successful enumeration of the coset numbers of a subgroup of index 12 within a group, and, as it turns out, values for the same statistics as the sample progress message.

You should see all the above (and a little more), except that your dates and host information will no doubt differ, by running:

gap> ACEExample("A5-C5" : echo:=0, messages:=-1);

In the following table we list the statistics that can follow a progress or results message tag, in order:

statistic   meaning
a           number of active coset numbers
r           number of applied coset numbers
h           first (potentially) incomplete row
n           next coset number definition
h           percentage of holes in the table (if `messages'$ \< 0$) 
l           number of main loop passes
c           total CPU time
m           maximum number of active coset numbers
t           total number of coset numbers defined
s           new deduction stack size (with DS tag)
d           current deduction stack size, or
              no. of non-redundant deductions retained (with DS tag)
c           no. of redundant deductions discarded (with DS tag)

Now that we have discussed the various meanings of the statistics, it's time to discuss the various types of progress and results messages possible. First we describe progress messages.

A.1 Progress Messages

A progress message (and its tag) indicates the function just completed by the enumerator. In the following table, the possible message tags appear in the first column. In the action column, a y indicates the function is aggregated and counted. Every time this count reaches the value of messages, a message line is printed and the count is zeroed. Those tags flagged with a y* are only present if the appropriate option was included when the ACE binary was compiled (a default compilation includes the appropriate options; so normally read y* as y). Tags with an n in the action column indicate the function is not counted, and cause a message line to be output every time they occur. They also cause the action count to be reset.

tag   action      meaning
AD         y      coset 1 application definition (`SG'/`RS' phase)
RD         y      R-style definition
RF         y      row-filling definition
CG         y      immediate gap-filling definition
CC         y*     coincidence processed
DD         y*     deduction processed
CP         y      preferred list gap-filling definition
CD         y      C-style definition
Lx         n      lookahead performed (type `x')
CO         n      table compacted
co         n      compaction routine called, but nothing recovered
CL         n      complete lookahead (table as deduction stack)
UH         n      updated completed-row counter
RA         n      remaining coset numbers applied to relators
SG         n      subgroup generator phase
RS         n      relators in subgroup phase
DS         n      stack overflowed (compacted and doubled)

A.2 Results Messages

The possible results are given in the following table; any result not listed represents an internal error and should be reported to the ACE authors.

result tag           meaning 
INDEX = x            finite index of `x' obtained
OVERFLOW             out of table space
SG PHASE OVERFLOW    out of space (processing subgroup generators)
ITERATION LIMIT      `loop' limit triggered
TIME LIMT            `ti' limit triggered
HOLE LIMIT           `ho' limit triggered
INCOMPLETE TABLE     all coset numbers applied, but table has holes
MEMORY PROBLEM       out of memory (building data structures)

Notes: Recall that hole monitoring is switched on by setting a negative value for the messages (see option messages) option, but note that hole monitoring is expensive, so don't turn it on unless you really need it. If you wish to print out the presentation and the options, but not the progress messages, then set messages non-zero, but very large. (You'll still get the SG, DS, etc. messages, but not the RD, DD, etc. ones.) You can set messages to 1, to monitor all enumerator actions, but be warned that this can yield very large output files.

[Up] [Previous] [Next] [Index]

ACE manual
February 2020