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