Changeset: 054d98a88600 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=054d98a88600 Added Files: monetdb5/scheduler/mut_aggr.c monetdb5/scheduler/mut_aggr.h monetdb5/scheduler/mut_join.c monetdb5/scheduler/mut_join.h Removed Files: monetdb5/scheduler/mut_transforms.c monetdb5/scheduler/mut_transforms.h Modified Files: monetdb5/scheduler/Makefile.ag monetdb5/scheduler/Tests/All monetdb5/scheduler/Tests/mutation00.mal monetdb5/scheduler/Tests/mutation00.stable.out monetdb5/scheduler/Tests/query00.mal monetdb5/scheduler/mut_leftjoin.c monetdb5/scheduler/mut_policy.c monetdb5/scheduler/mut_util.c monetdb5/scheduler/run_multicore.c Branch: mutation Log Message:
Further code cleanup and reorganization diffs (truncated from 1043 to 300 lines): diff --git a/monetdb5/scheduler/Makefile.ag b/monetdb5/scheduler/Makefile.ag --- a/monetdb5/scheduler/Makefile.ag +++ b/monetdb5/scheduler/Makefile.ag @@ -31,10 +31,11 @@ lib_scheduler = { run_adder.c run_adder.h \ run_isolate.c run_isolate.h \ run_multicore.c run_multicore.h \ - mut_transforms.c mut_transforms.h \ mut_util.c mut_util.h \ mut_select.c mut_select.h \ + mut_join.c mut_join.h \ mut_leftjoin.c mut_leftjoin.h \ + mut_aggr.c mut_aggr.h \ mut_matpack.c mut_matpack.h \ mut_policy.c mut_policy.h \ run_memo.c run_memo.h \ diff --git a/monetdb5/scheduler/Tests/All b/monetdb5/scheduler/Tests/All --- a/monetdb5/scheduler/Tests/All +++ b/monetdb5/scheduler/Tests/All @@ -2,4 +2,4 @@ sched00 memo01 memo02 mutation00 -query00 +#query00 diff --git a/monetdb5/scheduler/Tests/mutation00.mal b/monetdb5/scheduler/Tests/mutation00.mal --- a/monetdb5/scheduler/Tests/mutation00.mal +++ b/monetdb5/scheduler/Tests/mutation00.mal @@ -36,7 +36,7 @@ barrier z:= language.dataflow(); exit z; t1:= alarm.usec(); t2 := t1-t0; - io.printf("#%d\n",t2); + io.printf("# total running time %d\n",t2); end query; #multiple calls should produce more parallel plans. diff --git a/monetdb5/scheduler/Tests/mutation00.stable.out b/monetdb5/scheduler/Tests/mutation00.stable.out --- a/monetdb5/scheduler/Tests/mutation00.stable.out +++ b/monetdb5/scheduler/Tests/mutation00.stable.out @@ -47,7 +47,7 @@ barrier z := language.dataflow(); exit z; t1 := alarm.usec(); t2 := calc.-(t1,t0); - io.printf("#%d\n",t2); + io.printf("# total running time %d\n",t2); end query; function user.main():void; # example framework for a mutation based execution stack @@ -60,18 +60,20 @@ function user.main():void; user.query(); user.query(); end main; -#1164605 -#mutation candidate 4 cost 6666 -#mutation candidate 5 cost 5806 -#mutation candidate 6 cost 6703 -#mutation calls 1 cost 1000 -#mutation target instruction 6 cost 6703 +# total running time 1059805 +# call 1 invocation Time 1066216 +#mutation candidate 5 calls 1 cost 8857 -&1 0 17 1 17 +#mutation candidate 6 calls 1 cost 10045 + +#mutation candidate 7 calls 1 cost 10086 + +#mutation winner 7 calls 1 cost 10086 +&1 0 20 1 20 % .explain # table_name % mal # name % clob # type -% 210 # length +% 207 # length @@ -89,49 +91,20 @@ end main; -#1209270 -#mutation candidate 4 cost 3800 -#mutation candidate 5 cost 3804 -#mutation candidate 8 cost 3416 -#mutation candidate 9 cost 3475 -#mutation calls 1 cost 2000 -#mutation target instruction 5 cost 3804 -&1 0 21 1 21 -% .explain # table_name -% mal # name -% clob # type -% 210 # length +# total running time 1072186 +# call 1 invocation Time 1072280 +#mutation candidate 6 calls 1 cost 1938 +#mutation candidate 8 calls 1 cost 1980 +#mutation candidate 11 calls 1 cost 8447 +#mutation candidate 12 calls 1 cost 8468 - - - - - - - - - - - - - - - -#1212455 -#mutation candidate 4 cost 12739 -#mutation candidate 7 cost 1872 -#mutation candidate 8 cost 1877 -#mutation candidate 12 cost 1837 -#mutation candidate 13 cost 1843 -#mutation calls 1 cost 3000 -#mutation target instruction 4 cost 12739 - +#mutation winner 12 calls 1 cost 8468 &1 0 25 1 25 % .explain # table_name % mal # name @@ -162,17 +135,58 @@ end main; -#1215574 -#mutation candidate 6 cost 1853 -#mutation candidate 7 cost 1858 -#mutation candidate 11 cost 1839 -#mutation candidate 12 cost 1802 -#mutation candidate 16 cost 1816 -#mutation candidate 17 cost 1840 -#mutation calls 1 cost 4000 -#mutation target instruction 7 cost 1858 +# total running time 1096429 +# call 1 invocation Time 1096501 +#mutation candidate 6 calls 1 cost 2050 -&1 0 28 1 28 +#mutation candidate 11 calls 1 cost 8476 + +#mutation winner 11 calls 1 cost 8476 +&1 0 30 1 30 +% .explain # table_name +% mal # name +% clob # type +% 210 # length + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# total running time 1086935 +# call 1 invocation Time 1087026 +#mutation candidate 6 calls 1 cost 1937 + +#mutation candidate 8 calls 1 cost 1973 + +#mutation candidate 12 calls 1 cost 1976 + +#mutation winner 12 calls 1 cost 1976 +&1 0 34 1 34 % .explain # table_name % mal # name % clob # type diff --git a/monetdb5/scheduler/Tests/query00.mal b/monetdb5/scheduler/Tests/query00.mal --- a/monetdb5/scheduler/Tests/query00.mal +++ b/monetdb5/scheduler/Tests/query00.mal @@ -59,6 +59,6 @@ end testrun; # runs based on sizes testrun(100000:lng); #400K -testrun(1000000:lng); #4MB -testrun(10000000:lng); #40MB -testrun(100000000:lng); #400MB +#testrun(1000000:lng); #4MB +#testrun(10000000:lng); #40MB +#testrun(100000000:lng); #400MB diff --git a/monetdb5/scheduler/mut_aggr.c b/monetdb5/scheduler/mut_aggr.c new file mode 100644 --- /dev/null +++ b/monetdb5/scheduler/mut_aggr.c @@ -0,0 +1,56 @@ +/* + * The contents of this file are subject to the MonetDB Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.monetdb.org/Legal/MonetDBLicense + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + * License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is the MonetDB Database System. + * + * The Initial Developer of the Original Code is CWI. + * Portions created by CWI are Copyright (C) 1997-July 2008 CWI. + * Copyright August 2008-2013 MonetDB B.V. + * All Rights Reserved. + */ + +/* + * (c) M. Kersten, M. Gawade + * The infrastructure to adapatively create multi-processor parallel plans. + * Be careful in handling the stk, because it is also used by the caller functions. + */ +#include "monetdb_config.h" +#include "mut_util.h" +#include "mut_aggr.h" +#include "mal_interpreter.h" +#include "opt_prelude.h" + +/* Sample plan mutation actions + * The aggr.sum operation performs parallel sums and consolidates the result + */ +void +mutationSum(Client cntxt, Mutant m){ + int pc = m->target, i, limit; + InstrPtr p=0, *old= m->src->stmt; + + (void) cntxt; + limit= m->src->stop; + if ( newMalBlkStmt(m->src, m->src->ssize) < 0) + return; + + pushInstruction(m->src, old[0]); + for (i = 1; i < limit; i++) { + p= old[i]; + if ( i == pc){ + /* replace the instruction, e.g. with a partioned one */ + pushInstruction(m->src,p); + m->comment = GDKstrdup("mutationSum"); + } else + pushInstruction(m->src,p); + } + GDKfree(old); +} + diff --git a/monetdb5/scheduler/mut_aggr.h b/monetdb5/scheduler/mut_aggr.h new file mode 100644 --- /dev/null +++ b/monetdb5/scheduler/mut_aggr.h @@ -0,0 +1,30 @@ +/* + * The contents of this file are subject to the MonetDB Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.monetdb.org/Legal/MonetDBLicense + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + * License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is the MonetDB Database System. + * + * The Initial Developer of the Original Code is CWI. + * Portions created by CWI are Copyright (C) 1997-July 2008 CWI. + * Copyright August 2008-2013 MonetDB B.V. + * All Rights Reserved. _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list