Changeset: 92896b832593 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=92896b832593
Added Files:
        monetdb5/scheduler/Tests/gmon.out
        monetdb5/scheduler/Tests/query00.mal.orig
        monetdb5/scheduler/Tests/queryJoin.err
        monetdb5/scheduler/Tests/queryJoin.mal
        monetdb5/scheduler/Tests/queryJoinShort.mal
        monetdb5/scheduler/Tests/querySelect.mal
Modified Files:
        monetdb5/scheduler/Tests/query00.mal
        monetdb5/scheduler/run_multicore.c
Branch: mutation
Log Message:

join mutation operator and minor fixes


diffs (truncated from 315 to 300 lines):

diff --git a/monetdb5/scheduler/Tests/gmon.out 
b/monetdb5/scheduler/Tests/gmon.out
new file mode 100644
index 
0000000000000000000000000000000000000000..cfc50b0a393a2ad755bab031fa4318d521314cf0
GIT binary patch
literal 5659
zc%1E#F$)1<7{_0WGN@Zfp@c&^GFa7p0E4nnhAU*ka36rlq+B+Od;v1ZU@{tggfm-w
z1nzxKcc*8u|9{JK@2}re@7s;W(@9ADV8wMgI}Mtrh!BI%G>84^WMF<X^LGyb00000
z00000008hmp;uCuAM4)o_LzNyBds*aXq~2%_Y55}DWBA{bZ9R2-n!w+XUivFuGG#x
zDRN9Xcja(&@T8I_c}<XvIkJ`yu1l$?!7?mMHCRfi6iCK4zPH<j;5yy2$lbHZlsm4h
zm6)<sV#;foDeW>-8XC!cmoA@JJ3mfi){h#qu2-1Ss4%6?m7>a&mMga_Mz$}Wd;>f$
Bj@1AF

diff --git a/monetdb5/scheduler/Tests/query00.mal.orig 
b/monetdb5/scheduler/Tests/query00.mal.orig
new file mode 100644
--- /dev/null
+++ b/monetdb5/scheduler/Tests/query00.mal.orig
@@ -0,0 +1,44 @@
+# example framework for a multicore based execution stack
+# illustrate how it would appear after an optimizer call.
+
+function initialize{unsafe}():bat[:oid,:lng];
+       b:= bat.new(:oid,:lng);
+
+       r:= mmath.srand(0);
+       barrier i:= 0:lng;
+               k:= mmath.rand();
+               l:= calc.lng(k);
+               bat.append(b,l);
+               redo i:= iterator.next(1:lng,1000000:lng);
+       exit i;
+
+       return b;
+end initialize;
+
+function query(b:bat[:oid,:lng]);
+       t0:= alarm.usec();
+barrier z:= language.dataflow();
+       s1 := algebra.subselect(b,1:lng,99:lng,true,false,false);
+       s2 := algebra.subselect(b,1:lng,999:lng,true,false,false);
+       s3 := algebra.subselect(b,1:lng,9999:lng, true,false,false);
+exit z;
+       t1:= alarm.usec();
+       t2 := t1-t0;
+       io.printf("#%d\n",t2);
+end query;
+
+optimizer.multicore("user","query");
+function testrun();
+       b:= initialize();
+       user.query(b);
+       user.query(b);
+       user.query(b);
+       user.query(b);
+       user.query(b);
+       user.query(b);
+       user.query(b);
+       user.query(b);
+       user.query(b);
+       user.query(b);
+end testrun;
+testrun();
diff --git a/monetdb5/scheduler/Tests/queryJoin.err 
b/monetdb5/scheduler/Tests/queryJoin.err
new file mode 100644
diff --git a/monetdb5/scheduler/Tests/queryJoin.mal 
b/monetdb5/scheduler/Tests/queryJoin.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/scheduler/Tests/queryJoin.mal
@@ -0,0 +1,86 @@
+# example framework for a multicore based execution stack
+# illustrate how it would appear after an optimizer call.
+
+function initializeFirst{unsafe}():bat[:oid,:lng];
+        b:= bat.new(:oid,:lng);
+
+        INT_MAX := 2147483647;
+        dbgmsk_restore := mdb.getDebug();
+        dbgmsk_unset := 8+8388608;
+        dbgmsk_keep := calc.xor(INT_MAX,dbgmsk_unset);
+        dbgmsk_set := calc.and(dbgmsk_restore,dbgmsk_keep);
+        mdb.setDebug(dbgmsk_set);
+
+        r:= mmath.srand(0);
+        barrier i:= 0:lng;
+                k:= mmath.rand();
+                l:= calc.lng(k);
+                bat.append(b,l);
+                redo i:= iterator.next(1:lng,1000000:lng);
+        exit i;
+        mdb.setDebug(dbgmsk_set);
+
+        return b;
+end initializeFirst;
+
+function initializeNext{unsafe}():bat[:oid,:lng];
+        b:= bat.new(:oid,:lng);
+       
+       INT_MAX := 2147483647;
+        dbgmsk_restore := mdb.getDebug();
+        dbgmsk_unset := 8+8388608;
+        dbgmsk_keep := calc.xor(INT_MAX,dbgmsk_unset);
+        dbgmsk_set := calc.and(dbgmsk_restore,dbgmsk_keep);
+        mdb.setDebug(dbgmsk_set);
+
+        r:= mmath.srand(0);
+        barrier i:= 0:lng;
+                k:= mmath.rand();
+                l:= calc.lng(k);
+                bat.append(b,l);
+                redo i:= iterator.next(1:lng,1000000:lng);
+        exit i;
+        mdb.setDebug(dbgmsk_set);
+
+        return b;
+end initializeNext;
+
+
+function query(run:int, a:bat[:oid,:lng], b:bat[:oid,:lng]);
+        t0:= alarm.usec();
+barrier z:= language.dataflow();
+       (s1,s2) := algebra.join(a,b);
+exit z;
+        t1:= alarm.usec();
+        t2 := t1-t0;
+        io.printf("#run %d %d\n",run,t2);
+end query;
+
+optimizer.multicore("user","query");
+function testrun();
+        
+       a:= initializeFirst();
+       b:= initializeNext();
+        user.query(0,a,b);
+        user.query(1,a,b);
+#        user.query(2,a,b);
+#        user.query(3,a,b);
+#        user.query(4,a,b);
+#        user.query(5,a,b);
+#        user.query(6,a,b);
+#        user.query(7,a,b);
+#        user.query(8,a,b);
+#        user.query(9,a,b);
+#        user.query(10,a,b);
+#        user.query(11,a,b);
+#        user.query(12,a,b);
+#        user.query(13,a,b);
+#        user.query(14,a,b);
+#        user.query(15,a,b);
+#        user.query(16,a,b);
+#        user.query(17,a,b);
+#        user.query(18,a,b);
+#        user.query(19,a,b);
+#        user.query(20,a,b);
+end testrun;
+testrun();
diff --git a/monetdb5/scheduler/Tests/queryJoinShort.mal 
b/monetdb5/scheduler/Tests/queryJoinShort.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/scheduler/Tests/queryJoinShort.mal
@@ -0,0 +1,72 @@
+function initializeFirst{unsafe}():bat[:oid,:lng];
+        b:= bat.new(:oid,:lng);
+       k := 0:lng;
+        barrier i:= 0:lng;
+                k:= k+1;
+                l:= calc.lng(k);
+                bat.append(b,l);
+                redo i:= iterator.next(1:lng,4:lng);
+        exit i;
+       io.print(b);
+
+        return b;
+end initializeFirst;
+
+function initializeNext{unsafe}():bat[:oid,:lng];
+        b:= bat.new(:oid,:lng);
+       k := 1:lng;
+        barrier i:= 0:lng;
+                k:= 2:lng;
+                l:= calc.lng(k);
+                bat.append(b,l);
+                redo i:= iterator.next(1:lng,4:lng);
+        exit i;
+       io.print(b);
+
+        return b;
+end initializeNext;
+
+
+function query(run:int, a:bat[:oid,:lng], b:bat[:oid,:lng]);
+        t0:= alarm.usec();
+       sql.init();
+barrier z:= language.dataflow();
+        (s1,s2) := algebra.join(a,b);
+       io.print(s1);
+#      X_46 := sql.resultSet(1,1,s1);
+#        X_53 := io.stdout();
+#      sql.exportResult(X_53,X_46);         
+exit z;
+        t1:= alarm.usec();
+        t2 := t1-t0;
+        io.printf("#run %d %d\n",run,t2);
+end query;
+
+optimizer.multicore("user","query");
+function testrun();
+
+        a:= initializeFirst();
+        b:= initializeNext();
+        user.query(0,a,b);
+#       user.query(1,a,b);
+#       user.query(2,a,b);
+#        user.query(3,a,b);
+#        user.query(4,a,b);
+#        user.query(5,a,b);
+#        user.query(6,a,b);
+#        user.query(7,a,b);
+#        user.query(8,a,b);
+#        user.query(9,a,b);
+#        user.query(10,a,b);
+#        user.query(11,a,b); 
+#        user.query(12,a,b);
+#        user.query(13,a,b);
+#        user.query(14,a,b); 
+#        user.query(15,a,b);
+#        user.query(16,a,b);
+#        user.query(17,a,b);
+#        user.query(18,a,b);
+#        user.query(19,a,b);
+#        user.query(20,a,b); 
+end testrun;
+testrun();
diff --git a/monetdb5/scheduler/Tests/querySelect.mal 
b/monetdb5/scheduler/Tests/querySelect.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/scheduler/Tests/querySelect.mal
@@ -0,0 +1,56 @@
+# example framework for a multicore based execution stack
+# illustrate how it would appear after an optimizer call.
+
+function initialize{unsafe}():bat[:oid,:lng];
+        b:= bat.new(:oid,:lng);
+
+        r:= mmath.srand(0);
+        barrier i:= 0:lng;
+                k:= mmath.rand();
+                l:= calc.lng(k);
+                bat.append(b,l);
+                redo i:= iterator.next(1:lng,1000000:lng);
+        exit i;
+
+        return b;
+end initialize;
+
+function query(run:int, b:bat[:oid,:lng]);
+        t0:= alarm.usec();
+barrier z:= language.dataflow();
+        s1 := algebra.subselect(b,1:lng,99:lng,true,false,false);
+        #s2 := algebra.subselect(b,1:lng,999:lng,true,false,false);
+        #s3 := algebra.subselect(b,1:lng,9999:lng, true,false,false);
+exit z;
+        t1:= alarm.usec();
+        t2 := t1-t0;
+        io.printf("#run %d %d\n",run,t2);
+end query;
+
+optimizer.multicore("user","query");
+function testrun();
+        b:= initialize();
+        user.query(0,b);
+        user.query(1,b);
+        user.query(2,b);
+        user.query(3,b);
+        user.query(4,b);
+        user.query(5,b);
+        user.query(6,b);
+        user.query(7,b);
+        user.query(8,b);
+        user.query(9,b);
+        user.query(10,b);
+        user.query(11,b);
+        user.query(12,b);
+        user.query(13,b);
+        user.query(14,b);
+        user.query(15,b);
+        user.query(16,b);
+        user.query(17,b);
+        user.query(18,b);
+        user.query(19,b);
+        user.query(20,b);
+end testrun;
+testrun();
+
diff --git a/monetdb5/scheduler/run_multicore.c 
b/monetdb5/scheduler/run_multicore.c
--- a/monetdb5/scheduler/run_multicore.c
+++ b/monetdb5/scheduler/run_multicore.c
@@ -35,7 +35,7 @@
 void
 multicorePrint(Client cntxt, Mutant m)
 {
-       mnstr_printf(cntxt->fdout,"#mutant: %s %d calls %d runtime" LLFMT"\n", 
m->comment,m->target, m->calls, m->runtime);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to