Next: , Previous: , Up: Grammar   [Contents][Index]

4.6 Counter and timer statements

Critical to any performance or correctness test is the ability to specify which operations represent the test itself and should be measured and which are setup or other uninteresting operations and should not. coNCePTuaL automatically maintains a number of “counters”—variables that represent message counts, byte counts, bit-error counts, and elapsed time. The complete list is presented in Predeclared variables.

Normally, a coNCePTuaL program performs some setup operations, RESETS ITS COUNTERS to zero, executes a communication pattern, and logs some function of the resulting changes in counter values (see Writing to a log file). If additional setup work needs to be performed during an experiment, a program can STORE ITS COUNTERS, perform any arbitrarily costly operations, RESTORE ITS COUNTERS, and continue the experiment as if those operations never happened.

Some coNCePTuaL statements implicitly store and restore counters. For example, the LOGS statement see Writing to a log file) takes up no time from the program’s perspective, and counted loops (see Counted loops) bracket any warmup repetitions and post-warmup synchronizations between a counter store and restore so no delays, bit errors, or messaging operations contribute to the totals measured by the experiment.

Next: , Previous: , Up: Grammar   [Contents][Index]

Scott Pakin,