.TH BSlog.h h "10/17/1996" " " "BlockSolve95" .SH NAME BSlog.h \- This file defines the type of logging done in the BlockSolve package. It is hoped that this will eventually be converted to use more general logging routines. Therefore, the user should probably not attempt to use this package in their own code. It would be reasonable to print out the information gathered by this logging facility using BSprint_log(), however. .SH SYSTEM DESCRIPTION This logging system allows for two kinds of phases: one time occurences whose time of occurence and duration must be recorded and things that are executed many times for which we want aggregate information (this are accumulated events). The facility is initialized in BSinit() if MLOG is defined. The facility is terminated by BSfinalize() and statistics printed by calling the BSprint_log(). A one-time occurence is recorded by calling the macro MLOG_ELM to signal the beginning of the event and MLOG_IT to signal the end. An accumulated event is signaled by calling MLOG_ELM to signal the beginning and MLOG_ACC to signal the end. BlockSolve95 no longer requires global variables to be defined in the users' program; the logging variables are all internal to the library. .SH SYNOPSIS .nf #ifndef __BSlogh #define __BSlogh #ifdef MLOG #define MCOUNT /* define the clock to use */ #define Mclock() MPI_Wtime(); /* We allow a maximum of 300 events and 75 accumulated events */ /* The 300 events is only necessary if one calls BSmain_perm many times */ /* otherwise, a much smaller number would be fine */ #define MLOG_MAX_EVNTS 300 #define MLOG_MAX_ACCUM 75 /* define a structure that contains all information regarding an event */ typedef struct __MLOG_log_type .fi .SH LOCATION BlockSolve95/include/BSlog.h