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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list