/* * Copyright 1997, Regents of the University of Minnesota * * timing.c * * This file contains routines that deal with timing Metis * * Started 7/24/97 * George * * $Id: timing.c,v 1.1 1998/11/27 17:59:32 karypis Exp $ * */ #include /************************************************************************* * This function clears the timers **************************************************************************/ void InitTimers(CtrlType *ctrl) { cleartimer(ctrl->TotalTmr); cleartimer(ctrl->InitPartTmr); cleartimer(ctrl->MatchTmr); cleartimer(ctrl->ContractTmr); cleartimer(ctrl->CoarsenTmr); cleartimer(ctrl->UncoarsenTmr); cleartimer(ctrl->RefTmr); cleartimer(ctrl->ProjectTmr); cleartimer(ctrl->SplitTmr); cleartimer(ctrl->SepTmr); cleartimer(ctrl->AuxTmr1); cleartimer(ctrl->AuxTmr2); cleartimer(ctrl->AuxTmr3); cleartimer(ctrl->AuxTmr4); cleartimer(ctrl->AuxTmr5); cleartimer(ctrl->AuxTmr6); } /************************************************************************* * This function prints the various timers **************************************************************************/ void PrintTimers(CtrlType *ctrl) { printf("\nTiming Information -------------------------------------------------"); printf("\n Multilevel: \t\t %7.3f", gettimer(ctrl->TotalTmr)); printf("\n Coarsening: \t\t %7.3f", gettimer(ctrl->CoarsenTmr)); printf("\n Matching: \t\t\t %7.3f", gettimer(ctrl->MatchTmr)); printf("\n Contract: \t\t\t %7.3f", gettimer(ctrl->ContractTmr)); printf("\n Initial Partition: \t %7.3f", gettimer(ctrl->InitPartTmr)); printf("\n Construct Separator: \t %7.3f", gettimer(ctrl->SepTmr)); printf("\n Uncoarsening: \t\t %7.3f", gettimer(ctrl->UncoarsenTmr)); printf("\n Refinement: \t\t\t %7.3f", gettimer(ctrl->RefTmr)); printf("\n Projection: \t\t\t %7.3f", gettimer(ctrl->ProjectTmr)); printf("\n Splitting: \t\t %7.3f", gettimer(ctrl->SplitTmr)); printf("\n AUX1: \t\t %7.3f", gettimer(ctrl->AuxTmr1)); printf("\n AUX2: \t\t %7.3f", gettimer(ctrl->AuxTmr2)); printf("\n AUX3: \t\t %7.3f", gettimer(ctrl->AuxTmr3)); printf("\n********************************************************************\n"); } /************************************************************************* * This function returns the seconds **************************************************************************/ double seconds(void) { return((double) clock()/CLOCKS_PER_SEC); }