- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/mike_brooks_MMath/benchmarks/list/driver.c
rfa6ca1a rb0be909f 17 17 18 18 #if defined(NDEBUG) || (defined(__cforall) && !defined(__CFA_DEBUG__)) 19 enum { DefaultNumNodes = 1000, DefaultExperimentDurSec = 1, DefaultCheck ClockFreq = 1000, DefaultExperimentDurOpCount = -1 };19 enum { DefaultNumNodes = 1000, DefaultExperimentDurSec = 1, DefaultCheckDoneFreq = 1000, DefaultExperimentDurOpCount = -1 }; 20 20 #define TRACE(tp) 21 21 #else 22 enum { DefaultNumNodes = 10, DefaultExperimentDurSec = 1, DefaultCheck ClockFreq = 2, DefaultExperimentDurOpCount = 20 };22 enum { DefaultNumNodes = 10, DefaultExperimentDurSec = 1, DefaultCheckDoneFreq = 2, DefaultExperimentDurOpCount = 20 }; 23 23 static const char * tp_filter 24 24 // = ""; … … 72 72 ) 73 73 74 unsigned int uDefaultPreemption() { 75 return 0; 76 } 77 74 78 int main(int argc, const char *argv[]) { 75 79 76 80 77 const char * usage_args = "[ExperimentDurSec [Check ClockFreq [NumNodes [ExperimentDurOpCount]]]]";81 const char * usage_args = "[ExperimentDurSec [CheckDoneFreq [NumNodes [ExperimentDurOpCount]]]]"; 78 82 const int static_arg_posns = 4; 79 83 80 84 unsigned int ExperimentDurSec = DefaultExperimentDurSec; 81 unsigned int Check ClockFreq = DefaultCheckClockFreq;85 unsigned int CheckDoneFreq = DefaultCheckDoneFreq; 82 86 unsigned int NumNodes = DefaultNumNodes; 83 87 size_t ExperimentDurOpCount = DefaultExperimentDurOpCount; 84 88 85 switch (( argc < static_arg_posns) ? argc: static_arg_posns) {86 case 5: ExperimentDurOpCount = atoi(argv[4]);87 case 4: NumNodes = atoi(argv[3]);88 case 3: CheckClockFreq = atoi(argv[2]);89 case 2: ExperimentDurSec = atoi(argv[1]);89 switch (((argc - 1) < static_arg_posns) ? (argc - 1) : static_arg_posns) { 90 case 4: ExperimentDurOpCount = atol(argv[4]); 91 case 3: NumNodes = atoi(argv[3]); 92 case 2: CheckDoneFreq = atoi(argv[2]); 93 case 1: ExperimentDurSec = atoi(argv[1]); 90 94 } 91 95 92 if (ExperimentDurSec == 0 || Check ClockFreq == 0 || NumNodes == 0 || ExperimentDurOpCount == 0 ) {96 if (ExperimentDurSec == 0 || CheckDoneFreq == 0 || NumNodes == 0 || ExperimentDurOpCount == 0 ) { 93 97 printf("usage: %s %s\n", argv[0], usage_args); 94 98 return -1; 95 99 } 100 101 #ifdef DISABLE_CLOCK_RECHECK 102 if (ExperimentDurSec != -1) { 103 printf("Error: experiment compiled as fixed-work only. ExperimentDurSec (currently %d) must be set to -1.\nUsage: %s %s\n", ExperimentDurSec, argv[0], usage_args); 104 return -1; 105 } 106 #endif 96 107 97 108 ui = (B_UserItem*) malloc( NumNodes * sizeof(B_UserItem) ); … … 130 141 131 142 while (elapsed_sec <= (double) ExperimentDurSec && bobs_ops_completed < ExperimentDurOpCount) { 132 for ( int t = 0; t < Check ClockFreq; t += 1 ) {143 for ( int t = 0; t < CheckDoneFreq; t += 1 ) { 133 144 TRACE('a') 134 145 listedItems[0] = … … 166 177 TRACE('g') 167 178 } 179 #ifndef DISABLE_CLOCK_RECHECK 180 clock_t end = clock(); 181 elapsed_sec = ((double)(end - start)) / ((double)CLOCKS_PER_SEC); 182 #endif 183 } 184 #ifdef DISABLE_CLOCK_RECHECK 185 { 168 186 clock_t end = clock(); 169 187 elapsed_sec = ((double)(end - start)) / ((double)CLOCKS_PER_SEC); 170 188 } 189 #endif 171 190 172 191 double mean_op_dur_ns = elapsed_sec / ((double)bobs_ops_completed) * 1000 * 1000 * 1000;
Note: See TracChangeset
for help on using the changeset viewer.