Changeset: 2dc791debe2c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2dc791debe2c
Modified Files:
        monetdb5/extras/crackers/crackers_core_unordered.mx
Branch: holindex
Log Message:

Measure time using GDKusec.


diffs (141 lines):

diff --git a/monetdb5/extras/crackers/crackers_core_unordered.mx 
b/monetdb5/extras/crackers/crackers_core_unordered.mx
--- a/monetdb5/extras/crackers/crackers_core_unordered.mx
+++ b/monetdb5/extras/crackers/crackers_core_unordered.mx
@@ -185,6 +185,8 @@ typedef struct {
        BUN first;         /* offset of first value in slice */
        BUN last;          /* offset of last value in slice */
        const char *msg;   /* error message */
+       double ta;
+       double tb;
 } s_Thread_t;
 
 typedef struct {
@@ -1126,7 +1128,7 @@ static str CRKvectorized_x_@2_@1 (
        oid *src_h_local = (oid*) GDKmalloc(vector_elements * 3 * sizeof(oid));
        @1  *src_t_local = (@1 *) GDKmalloc(vector_elements * 3 * sizeof(@1));
 #ifdef NDEBUG
-        BUN lwc, uwc, fl, ll, fr, lr, i_res=0;
+        BUN lwc, uwc, ll, fr, i_res=0;
 #endif
 
        assert(buffer && src_h_local && src_t_local);
@@ -1253,18 +1255,18 @@ static str CRKvectorized_x_@2_@1 (
 #ifdef NDEBUG
        lwc = (BUN) lowerWriteCursor;
        uwc = (BUN) upperWriteCursor;
-       fl = (BUN) first_left;
+       //fl = (BUN) first_left;
        ll = (BUN) last_left;
        fr = (BUN) first_right;
-       lr = (BUN) last_right;
+       //lr = (BUN) last_right;
 
-       assert(lwc >= fl);
-       assert(lwc <= lr + 1);
-       assert((fl == 0 && uwc >= fl) || (fl !=0 && uwc >= fl - 1));
-       assert(uwc <= lr);
+       assert(lwc >= first_left);
+       assert(lwc <= last_right + 1);
+       assert((first_left == 0 && uwc >= first_left) || (first_left !=0 && uwc 
>= first_left - 1));
+       assert(uwc <= last_right);
        assert(lwc > uwc);
-       assert(uwc == fl - 1 || src_t[uwc] @7  pivot);
-       assert(lwc == lr + 1 || src_t[lwc] @8 pivot);
+       assert(uwc == first_left - 1 || src_t[uwc] @7  pivot);
+       assert(lwc == last_right + 1 || src_t[lwc] @8 pivot);
        if (ml && mr && ll + 1 < fr) {
                if (lwc <= ll || uwc >= fr) {
                        assert(lwc == uwc + 1);
@@ -1587,8 +1589,10 @@ static str CRKscan_x_@2_@1 (
        BAT* outputbuffer, /*output (array)*/
        const @1 pivot, /* pivot value for attribute*/
        BUN first,  /* first position of to-be-cracked piece */
-       BUN last  /* last position of to-be-cracked piece */
+       BUN last,  /* last position of to-be-cracked piece */
+       double *ta
 ) {
+       lng t0, t1;
        BUN ReadCursor = first;
        BUN WriteCursor = 0;
        BUN  isLessThan;
@@ -1597,11 +1601,14 @@ static str CRKscan_x_@2_@1 (
 
        assert(buffer && outputbuffer && src_t && src_t_output);
 
+       t0 = GDKusec();
        for (ReadCursor = first; ReadCursor <= last; ReadCursor++){
                src_t_output[WriteCursor] = src_t[ReadCursor];
                isLessThan = (src_t[ReadCursor] @7 pivot);
                WriteCursor += isLessThan;
        }
+       t1 = GDKusec();
+       *ta = (t1 - t0) / 1000.0;
 
        assert(WriteCursor <= last-first+1);
 
@@ -1619,11 +1626,17 @@ static str CRKscan_x_@2_@1 (
 static void*
 scan_MT_crackThread_@2_@1 ( void *arg_p )
 {
+       lng t0, t1;
+       double ta;
        s_Thread_t *arg = (s_Thread_t*) arg_p;
        @1 mval = * (@1*) arg->mval;
        
+       t0 = GDKusec();
        /* call actual cracking routine for this slice */
-       arg->msg = CRKscan_x_@2_@1 ( arg->b, arg->ob, mval, arg->first, 
arg->last);
+       arg->msg = CRKscan_x_@2_@1 ( arg->b, arg->ob, mval, arg->first, 
arg->last, &ta);
+       t1 = GDKusec();
+       arg->tb = (t1 - t0) / 1000.0;
+       arg->ta = ta;
 
        pthread_exit(NULL);
        return NULL;
@@ -1638,15 +1651,15 @@ static str CRKscan_MT_@2_@1 (const BAT *
         int i;
 #ifdef SCAN_BREAKDOWN
         FILE *ofp;
-        char *outputFilename1 = 
"/scratch/petraki/experiments_sigmod_2014/parallel_scan_analysis/parallelscan_breakdown.txt";
-        struct timeval t0,t1;
+        char *outputFilename1 = 
"/export/scratch2/petraki/experiments_sigmod_2014/parallel_scan_analysis/parallelscan_breakdown.txt";
+        lng t0, t1;
         double elapsedTimeScan,elapsedTimeMerge;
         ofp = fopen(outputFilename1,"a");
         if (ofp == NULL) {
                 fprintf(stderr, "Can't open output file!\n");
                 exit(1);
         }
-        gettimeofday(&t0, NULL);
+        t0 = GDKusec();
 #endif
 
        /* adjust nthreads */
@@ -1706,10 +1719,9 @@ static str CRKscan_MT_@2_@1 (const BAT *
                 }
        }
 #ifdef SCAN_BREAKDOWN
-        gettimeofday(&t1, NULL);
-        elapsedTimeScan = (t1.tv_sec - t0.tv_sec) * 1000.0;      // sec to ms
-        elapsedTimeScan += (t1.tv_usec - t0.tv_usec) / 1000.0;
-        gettimeofday(&t0, NULL);
+        t1 = GDKusec();
+        elapsedTimeScan = (t1 - t0) / 1000.0;      // usec to ms
+        t0 = GDKusec();
 #endif
        /*merge phase*/
        i=1;
@@ -1719,10 +1731,9 @@ static str CRKscan_MT_@2_@1 (const BAT *
                i++;
        }
 #ifdef SCAN_BREAKDOWN
-        gettimeofday(&t1, NULL);
-        elapsedTimeMerge = (t1.tv_sec - t0.tv_sec) * 1000.0;      // sec to ms
-        elapsedTimeMerge += (t1.tv_usec - t0.tv_usec) / 1000.0;
-        fprintf(ofp,"%lf\t%lf\n",elapsedTimeScan,elapsedTimeMerge);
+        t1 = GDKusec();
+        elapsedTimeMerge = (t1 - t0) / 1000.0;      // usec to ms
+        
fprintf(ofp,"%lf\t%lf\t"BUNFMT"\t"BUNFMT"\t%lf\t%lf\n",elapsedTimeScan,elapsedTimeMerge,BATcount(b),BATcount(ob),s_Thread_arg[0].ta,s_Thread_arg[0].tb);
         fclose(ofp);
 #endif
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to