annotate DL/RLS-DLA/private/ompprof.h @ 60:ad36f80e2ccf

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