annotate Problems/private/ompprof.h @ 51:217a33ac374e

(none)
author idamnjanovic
date Mon, 14 Mar 2011 16:52:27 +0000
parents
children
rev   line source
idamnjanovic@51 1 /**************************************************************************
idamnjanovic@51 2 *
idamnjanovic@51 3 * File name: ompprof.h
idamnjanovic@51 4 *
idamnjanovic@51 5 * Ron Rubinstein
idamnjanovic@51 6 * Computer Science Department
idamnjanovic@51 7 * Technion, Haifa 32000 Israel
idamnjanovic@51 8 * ronrubin@cs
idamnjanovic@51 9 *
idamnjanovic@51 10 * Last Updated: 18.8.2009
idamnjanovic@51 11 *
idamnjanovic@51 12 * Collection of definitions and functions for profiling the OMP method.
idamnjanovic@51 13 *
idamnjanovic@51 14 *************************************************************************/
idamnjanovic@51 15
idamnjanovic@51 16
idamnjanovic@51 17 #ifndef __OMP_PROF_H__
idamnjanovic@51 18 #define __OMP_PROF_H__
idamnjanovic@51 19
idamnjanovic@51 20 #include "mex.h"
idamnjanovic@51 21 #include <time.h>
idamnjanovic@51 22
idamnjanovic@51 23
idamnjanovic@51 24
idamnjanovic@51 25 /**************************************************************************
idamnjanovic@51 26 *
idamnjanovic@51 27 * Constants and data types.
idamnjanovic@51 28 *
idamnjanovic@51 29 **************************************************************************/
idamnjanovic@51 30
idamnjanovic@51 31
idamnjanovic@51 32 /* constants denoting the various parts of the algorithm */
idamnjanovic@51 33
idamnjanovic@51 34 enum { DtX_TIME, XtX_TIME, DtR_TIME, MAXABS_TIME, DtD_TIME, LCHOL_TIME, COMPCOEF_TIME,
idamnjanovic@51 35 UPDATE_DtR_TIME, UPDATE_RESNORM_TIME, COMPRES_TIME, INDEXSORT_TIME };
idamnjanovic@51 36
idamnjanovic@51 37
idamnjanovic@51 38
idamnjanovic@51 39 /* profiling data container with counters for each part of the algorithm */
idamnjanovic@51 40
idamnjanovic@51 41 typedef struct profdata
idamnjanovic@51 42 {
idamnjanovic@51 43 clock_t prevtime; /* the time when last initialization/call to addproftime() was performed */
idamnjanovic@51 44
idamnjanovic@51 45 clock_t DtX_time;
idamnjanovic@51 46 clock_t XtX_time;
idamnjanovic@51 47 clock_t DtR_time;
idamnjanovic@51 48 clock_t maxabs_time;
idamnjanovic@51 49 clock_t DtD_time;
idamnjanovic@51 50 clock_t Lchol_time;
idamnjanovic@51 51 clock_t compcoef_time;
idamnjanovic@51 52 clock_t update_DtR_time;
idamnjanovic@51 53 clock_t update_resnorm_time;
idamnjanovic@51 54 clock_t compres_time;
idamnjanovic@51 55 clock_t indexsort_time;
idamnjanovic@51 56
idamnjanovic@51 57 /* flags indicating whether profiling data was gathered */
idamnjanovic@51 58 int DtX_time_counted;
idamnjanovic@51 59 int XtX_time_counted;
idamnjanovic@51 60 int DtR_time_counted;
idamnjanovic@51 61 int DtD_time_counted;
idamnjanovic@51 62 int update_DtR_time_counted;
idamnjanovic@51 63 int resnorm_time_counted;
idamnjanovic@51 64 int compres_time_counted;
idamnjanovic@51 65 int indexsort_time_counted;
idamnjanovic@51 66
idamnjanovic@51 67 } profdata;
idamnjanovic@51 68
idamnjanovic@51 69
idamnjanovic@51 70
idamnjanovic@51 71 /**************************************************************************
idamnjanovic@51 72 *
idamnjanovic@51 73 * Initialize a profdata structure, zero all counters, and start its timer.
idamnjanovic@51 74 *
idamnjanovic@51 75 **************************************************************************/
idamnjanovic@51 76 void initprofdata(profdata *pd);
idamnjanovic@51 77
idamnjanovic@51 78
idamnjanovic@51 79 /**************************************************************************
idamnjanovic@51 80 *
idamnjanovic@51 81 * Add elapsed time from last call to addproftime(), or from initialization
idamnjanovic@51 82 * of profdata, to the counter specified by comptype. comptype must be one
idamnjanovic@51 83 * of the constants in the enumeration above.
idamnjanovic@51 84 *
idamnjanovic@51 85 **************************************************************************/
idamnjanovic@51 86 void addproftime(profdata *pd, int comptype);
idamnjanovic@51 87
idamnjanovic@51 88
idamnjanovic@51 89 /**************************************************************************
idamnjanovic@51 90 *
idamnjanovic@51 91 * Print the current contents of the counters in profdata.
idamnjanovic@51 92 *
idamnjanovic@51 93 * Parameters:
idamnjanovic@51 94 * pd - the profdata to print
idamnjanovic@51 95 * erroromp - indicates whether error-based (nonzero) or sparsity-based (zero)
idamnjanovic@51 96 * omp was performed.
idamnjanovic@51 97 * batchomp - indicates whether batch-omp (nonzero) or omp-cholesky (zero)
idamnjanovic@51 98 * omp was performed.
idamnjanovic@51 99 * signum - number of signals processed by omp
idamnjanovic@51 100 *
idamnjanovic@51 101 **************************************************************************/
idamnjanovic@51 102 void printprofinfo(profdata *pd, int erroromp, int batchomp, int signum);
idamnjanovic@51 103
idamnjanovic@51 104
idamnjanovic@51 105 #endif
idamnjanovic@51 106