Commit 4adc85be authored by Martin Perdacher's avatar Martin Perdacher

selfjoin/join

parent f02a2a2d
......@@ -839,7 +839,7 @@ void test_ego_loop3_macro(size_t n, size_t d, double epsilon, double *array, siz
}
int test_ego_loop3_noself(const size_t nA, const size_t nB, const int d, const double epsilon, double *arrayA, double *arrayB, size_t *countresult, const int activedims, double *sortTime, double *indextime, double *loadpercent){
CUtilTimer index_timer,total_timer;
CUtilTimer index_timer,total_timer,sortTimer;
long long result = 0;
long long refinements = 0;
unsigned long long savedload[5*NUM_THREADS];
......@@ -863,7 +863,7 @@ int test_ego_loop3_noself(const size_t nA, const size_t nB, const int d, const d
*indextime = index_timer.get_time() - sortTimer.get_time();
*sortTime = sortTimer.get_time();
*loadpercent = (double)overall_load/n/(n-1)*128;
*loadpercent = ((double)overall_load/(nA/8)/(nA/8-1)*200);
#pragma omp parallel for proc_bind(close) reduction(+:result) reduction(+:refinements)
EGO_PREPARE
veci64 resultvec = _mm512_setzero_si512();
......
......@@ -404,8 +404,11 @@ extern long long * costref;
int EGO_stripes = 1; for(int i=0; i<EGO_activedim; i++) EGO_stripes*=3;\
unsigned long long usedload[NUM_THREADS]; for(int i=0; i<NUM_THREADS; i++) usedload[i]=0ull;\
omp_lock_t criticallock; omp_init_lock(&criticallock); int scritical = -1;\
CUtilTimer sortTimer;\
sortTimer.start();\
epsilonGridOrdering(EGO_nA, EGO_d, EGO_epsilon, EGO_arrayA);\
epsilonGridOrdering(EGO_nB, EGO_d, EGO_epsilon, EGO_arrayB);\
sortTimer.stop();\
int nn = ceilpowtwo(EGO_nA);\
int **lower = (int **) malloc (EGO_stripes*sizeof(int*));\
int **upper = (int **) malloc (EGO_stripes*sizeof(int*));\
......
......@@ -35,7 +35,7 @@ void parsing_args(int argc, char* argv[], size_t *n, double *epsilon, size_t *d,
*epsilon = atof(optarg);
break;
case 's':
*stripes = atoi(optarg);
*activedims = atoi(optarg);
break;
case 'f':
strcpy(filename, optarg);
......@@ -114,7 +114,7 @@ void parsing_args_join(int argc, char* argv[], size_t *n, size_t *m, double *eps
*epsilon = atof(optarg);
break;
case 's':
*stripes = atoi(optarg);
*activedims = atoi(optarg);
break;
case 'f':
strcpy(filename, optarg);
......@@ -155,6 +155,6 @@ void parsing_args_join(int argc, char* argv[], size_t *n, size_t *m, double *eps
if ( *activedims < 0 || *activedims > 6 ){
fprintf(stderr, "parameter active dimensions is typical in the range of [0-5]\n");
exit(1);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment