src/pbe/pbedefs.h File Reference

#include <assert.h>
#include <sys/times.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>

Include dependency graph for pbedefs.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pbeparameter
struct  timer
struct  benchmark

Defines

#define CLK_TCK   100
#define pbe_start_noname(handle)   writestart_noname( (handle) )
#define pbe_start(handle, parname)   if (( (handle) >0) && ( (handle) <= pbe_data->slots)) writestart( (handle) , (parname) )
#define pbe_stop(handle)   if (( (handle) >0) && ( (handle) <= pbe_data->slots)) writestop( (handle) )
#define pbe_resetcounter(handle)
#define pbe_getrealtime(handle)   (pbe_data->timers[(handle)].realtimes[1] / ((float) CLK_TCK))
#define pbe_getsystime(handle)
#define pbe_getusrtime(handle)
#define pbe_getsysusrtime(handle)   (pbe_getsystime(handle) + pbe_getusrtime(handle))
#define pbe_getcounter(handle)   (pbe_data->timers[handle].counter)
#define writestart(handle, parname)
#define writestart_noname(handle)   pbe_data->timers[(handle)].realtimes[0]=times(&(pbe_data->timers[(handle)].times[0]))
#define writestop(handle)

Functions

int pbe_init (const char *name, int numofslots, int argparametercount, struct pbeparameter *argparameters)
void pbe_dump ()
int pbe_finalize (int numofiterations)

Variables

benchmarkpbe_data
tms _tms_aid
benchmarkpbe_data


Define Documentation

#define CLK_TCK   100

Definition at line 25 of file pbedefs.h.

Referenced by pbe_finalize().

#define pbe_getcounter ( handle   )     (pbe_data->timers[handle].counter)

Definition at line 98 of file pbedefs.h.

Referenced by pbe_dump(), and pbe_finalize().

#define pbe_getrealtime ( handle   )     (pbe_data->timers[(handle)].realtimes[1] / ((float) CLK_TCK))

Definition at line 88 of file pbedefs.h.

Referenced by pbe_dump(), and pbe_finalize().

#define pbe_getsystime ( handle   ) 

Value:

((pbe_data->timers[(handle)].times[1].tms_stime + \
                                      pbe_data->timers[(handle)].times[1].tms_cstime) \
                                      / ((float) CLK_TCK))

Definition at line 90 of file pbedefs.h.

Referenced by pbe_dump(), and pbe_finalize().

#define pbe_getsysusrtime ( handle   )     (pbe_getsystime(handle) + pbe_getusrtime(handle))

Definition at line 96 of file pbedefs.h.

Referenced by pbe_dump(), and pbe_finalize().

#define pbe_getusrtime ( handle   ) 

Value:

((pbe_data->timers[(handle)].times[1].tms_utime + \
                                      pbe_data->timers[(handle)].times[1].tms_cutime) \
                                      / ((float) CLK_TCK))

Definition at line 93 of file pbedefs.h.

Referenced by pbe_dump(), and pbe_finalize().

#define pbe_resetcounter ( handle   ) 

Value:

if (( (handle) >0) && ( (handle) <= pbe_data->slots))\
    { pbe_data->timers[(handle)].realtimes[1] = 0;         \
      pbe_data->timers[(handle)].times[1].tms_utime = 0;   \
      pbe_data->timers[(handle)].times[1].tms_stime = 0;   \
      pbe_data->timers[(handle)].times[1].tms_cutime = 0;  \
      pbe_data->timers[(handle)].times[1].tms_cstime = 0;  \
      pbe_data->timers[(handle)].counter = 0;              \
    }

Definition at line 79 of file pbedefs.h.

#define pbe_start ( handle,
parname   )     if (( (handle) >0) && ( (handle) <= pbe_data->slots)) writestart( (handle) , (parname) )

Definition at line 75 of file pbedefs.h.

Referenced by Projector::Apply(), HierarchicalBasisPrec::Apply(), HierarchicalBasisPrec::ApplyInverse(), LinearEigsolvOperators::buildPreconditioner(), FemaxxDriver::calculate_eigenfields(), FemaxxDriver::FemaxxDriver(), QuadraticEigsolvOperators::getAsigmaPrec(), LinearEigsolvOperators::getAsigmaPrec(), QuadraticEigsolvOperators::getHPrec(), LinearEigsolvOperators::getHPrec(), QuadraticEigsolvOperators::getHSolver(), LinearEigsolvOperators::getHSolver(), HierarchicalBasisPrec::HierarchicalBasisPrec(), FemaxxDriver::load_mesh(), main(), QuadraticEigsolvOperators::matrixAssembly(), LinearEigsolvOperators::matrixAssembly(), and FemaxxDriver::postprocess().

#define pbe_start_noname ( handle   )     writestart_noname( (handle) )

Definition at line 73 of file pbedefs.h.

#define pbe_stop ( handle   )     if (( (handle) >0) && ( (handle) <= pbe_data->slots)) writestop( (handle) )

Definition at line 77 of file pbedefs.h.

Referenced by Projector::Apply(), HierarchicalBasisPrec::Apply(), HierarchicalBasisPrec::ApplyInverse(), LinearEigsolvOperators::buildPreconditioner(), FemaxxDriver::calculate_eigenfields(), QuadraticEigsolvOperators::getAsigmaPrec(), LinearEigsolvOperators::getAsigmaPrec(), QuadraticEigsolvOperators::getHPrec(), LinearEigsolvOperators::getHPrec(), QuadraticEigsolvOperators::getHSolver(), LinearEigsolvOperators::getHSolver(), HierarchicalBasisPrec::HierarchicalBasisPrec(), FemaxxDriver::load_mesh(), main(), QuadraticEigsolvOperators::matrixAssembly(), LinearEigsolvOperators::matrixAssembly(), FemaxxDriver::postprocess(), and FemaxxDriver::~FemaxxDriver().

#define writestart ( handle,
parname   ) 

Value:

{ \
    if(parname!=NULL) {sprintf(pbe_data->timers[(handle)].name,"%s",(parname));}  \
    pbe_data->timers[(handle)].realtimes[0]=times(&(pbe_data->timers[(handle)].times[0])); }

Definition at line 100 of file pbedefs.h.

#define writestart_noname ( handle   )     pbe_data->timers[(handle)].realtimes[0]=times(&(pbe_data->timers[(handle)].times[0]))

Definition at line 104 of file pbedefs.h.

#define writestop ( handle   ) 

Value:

{ \
    pbe_data->timers[(handle)].counter += 1; \
    pbe_data->timers[(handle)].realtimes[1]+=times(&_tms_aid) - pbe_data->timers[(handle)].realtimes[0]; \
    pbe_data->timers[(handle)].times[1].tms_utime += _tms_aid.tms_utime - pbe_data->timers[(handle)].times[0].tms_utime; \
    pbe_data->timers[(handle)].times[1].tms_stime += _tms_aid.tms_stime - pbe_data->timers[(handle)].times[0].tms_stime; \
    pbe_data->timers[(handle)].times[1].tms_cutime += _tms_aid.tms_cutime - pbe_data->timers[(handle)].times[0].tms_cutime; \
    pbe_data->timers[(handle)].times[1].tms_cstime += _tms_aid.tms_cstime - pbe_data->timers[(handle)].times[0].tms_cstime; }

Definition at line 106 of file pbedefs.h.


Function Documentation

void pbe_dump (  ) 

Print timing statistics for all timers to stdout

Definition at line 138 of file pbe.h.

References benchmark::have_mpi, benchmark::mpirank, timer::name, pbe_data, pbe_getcounter, pbe_getrealtime, pbe_getsystime, pbe_getsysusrtime, pbe_getusrtime, pbe_reduce(), benchmark::slots, and benchmark::timers.

Referenced by main(), and FemaxxDriver::~FemaxxDriver().

Here is the call graph for this function:

int pbe_finalize ( int  numofiterations  ) 

Dumps timing stats (maximised over all CPUs) to a file and frees all memory.

Parameters:
numofiterations all times are divided by this number of they are dumped to the output file. If this parameter is zero, no output file is created.

Definition at line 168 of file pbe.h.

References CLK_TCK, benchmark::have_mpi, benchmark::mpirank, benchmark::mpisize, timer::name, pbeparameter::name, benchmark::name, benchmark::parametercount, benchmark::parameters, pbe_data, pbe_getcounter, pbe_getrealtime, pbe_getsystime, pbe_getsysusrtime, pbe_getusrtime, pbe_reduce(), pbeparameter::shortname, benchmark::slots, benchmark::timers, and pbeparameter::value.

Referenced by main(), and FemaxxDriver::~FemaxxDriver().

Here is the call graph for this function:

int pbe_init ( const char *  name,
int  numofslots,
int  argparametercount,
struct pbeparameter argparameters 
)

Definition at line 41 of file pbe.h.

References benchmark::have_mpi, benchmark::mpirank, benchmark::mpisize, benchmark::name, timer::name, benchmark::parametercount, benchmark::parameters, pbe_data, benchmark::slots, and benchmark::timers.

Referenced by FemaxxDriver::FemaxxDriver(), and main().


Variable Documentation

struct tms _tms_aid

Definition at line 11 of file pbe.h.

struct benchmark* pbe_data

Definition at line 12 of file pbe.h.

Referenced by pbe_dump(), pbe_finalize(), and pbe_init().

struct benchmark* pbe_data

Definition at line 12 of file pbe.h.


Generated on Fri Oct 26 13:35:14 2007 for FEMAXX (Finite Element Maxwell Eigensolver) by  doxygen 1.4.7