1 | /* |
---|
2 | * Copyright 1997, Regents of the University of Minnesota |
---|
3 | * |
---|
4 | * timing.c |
---|
5 | * |
---|
6 | * This file contains routines that deal with timing Metis |
---|
7 | * |
---|
8 | * Started 7/24/97 |
---|
9 | * George |
---|
10 | * |
---|
11 | * $Id: timing.c,v 1.1 1998/11/27 17:59:32 karypis Exp $ |
---|
12 | * |
---|
13 | */ |
---|
14 | |
---|
15 | #include <metis.h> |
---|
16 | |
---|
17 | |
---|
18 | /************************************************************************* |
---|
19 | * This function clears the timers |
---|
20 | **************************************************************************/ |
---|
21 | void InitTimers(CtrlType *ctrl) |
---|
22 | { |
---|
23 | cleartimer(ctrl->TotalTmr); |
---|
24 | cleartimer(ctrl->InitPartTmr); |
---|
25 | cleartimer(ctrl->MatchTmr); |
---|
26 | cleartimer(ctrl->ContractTmr); |
---|
27 | cleartimer(ctrl->CoarsenTmr); |
---|
28 | cleartimer(ctrl->UncoarsenTmr); |
---|
29 | cleartimer(ctrl->RefTmr); |
---|
30 | cleartimer(ctrl->ProjectTmr); |
---|
31 | cleartimer(ctrl->SplitTmr); |
---|
32 | cleartimer(ctrl->SepTmr); |
---|
33 | cleartimer(ctrl->AuxTmr1); |
---|
34 | cleartimer(ctrl->AuxTmr2); |
---|
35 | cleartimer(ctrl->AuxTmr3); |
---|
36 | cleartimer(ctrl->AuxTmr4); |
---|
37 | cleartimer(ctrl->AuxTmr5); |
---|
38 | cleartimer(ctrl->AuxTmr6); |
---|
39 | } |
---|
40 | |
---|
41 | |
---|
42 | |
---|
43 | /************************************************************************* |
---|
44 | * This function prints the various timers |
---|
45 | **************************************************************************/ |
---|
46 | void PrintTimers(CtrlType *ctrl) |
---|
47 | { |
---|
48 | printf("\nTiming Information -------------------------------------------------"); |
---|
49 | printf("\n Multilevel: \t\t %7.3f", gettimer(ctrl->TotalTmr)); |
---|
50 | printf("\n Coarsening: \t\t %7.3f", gettimer(ctrl->CoarsenTmr)); |
---|
51 | printf("\n Matching: \t\t\t %7.3f", gettimer(ctrl->MatchTmr)); |
---|
52 | printf("\n Contract: \t\t\t %7.3f", gettimer(ctrl->ContractTmr)); |
---|
53 | printf("\n Initial Partition: \t %7.3f", gettimer(ctrl->InitPartTmr)); |
---|
54 | printf("\n Construct Separator: \t %7.3f", gettimer(ctrl->SepTmr)); |
---|
55 | printf("\n Uncoarsening: \t\t %7.3f", gettimer(ctrl->UncoarsenTmr)); |
---|
56 | printf("\n Refinement: \t\t\t %7.3f", gettimer(ctrl->RefTmr)); |
---|
57 | printf("\n Projection: \t\t\t %7.3f", gettimer(ctrl->ProjectTmr)); |
---|
58 | printf("\n Splitting: \t\t %7.3f", gettimer(ctrl->SplitTmr)); |
---|
59 | printf("\n AUX1: \t\t %7.3f", gettimer(ctrl->AuxTmr1)); |
---|
60 | printf("\n AUX2: \t\t %7.3f", gettimer(ctrl->AuxTmr2)); |
---|
61 | printf("\n AUX3: \t\t %7.3f", gettimer(ctrl->AuxTmr3)); |
---|
62 | printf("\n********************************************************************\n"); |
---|
63 | } |
---|
64 | |
---|
65 | |
---|
66 | /************************************************************************* |
---|
67 | * This function returns the seconds |
---|
68 | **************************************************************************/ |
---|
69 | double seconds(void) |
---|
70 | { |
---|
71 | return((double) clock()/CLOCKS_PER_SEC); |
---|
72 | } |
---|
73 | |
---|
74 | |
---|