Changeset: 2033a11b0643 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2033a11b0643
Modified Files:
        gdk/gdk_utils.c
        gdk/gdk_utils.h
        monetdb5/optimizer/opt_accumulators.c
        monetdb5/optimizer/opt_aliases.c
        monetdb5/optimizer/opt_coercion.c
        monetdb5/optimizer/opt_commonTerms.c
        monetdb5/optimizer/opt_constants.c
        monetdb5/optimizer/opt_costModel.c
        monetdb5/optimizer/opt_dataflow.c
        monetdb5/optimizer/opt_deadcode.c
        monetdb5/optimizer/opt_emptySet.c
        monetdb5/optimizer/opt_evaluate.c
        monetdb5/optimizer/opt_garbageCollector.c
        monetdb5/optimizer/opt_groups.c
        monetdb5/optimizer/opt_history.c
        monetdb5/optimizer/opt_inline.c
        monetdb5/optimizer/opt_joinpath.c
        monetdb5/optimizer/opt_mergetable.c
        monetdb5/optimizer/opt_mitosis.c
        monetdb5/optimizer/opt_multiplex.c
        monetdb5/optimizer/opt_origin.c
        monetdb5/optimizer/opt_prejoin.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_reduce.c
        monetdb5/optimizer/opt_remap.c
        monetdb5/optimizer/opt_support.h
        monetdb5/optimizer/opt_wrapper.c
Branch: Feb2013
Log Message:

Cleanup output of --optimizers flag
It can be used in conjunction with mclient -f raw to get quick insight
in the cost and activities of the optimizers in the pipeline.


diffs (truncated from 451 to 300 lines):

diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -145,7 +145,7 @@ GDKgetenv_istrue(const char *name)
        return 0;
 }
 
-static int
+int
 GDKgetenv_int(const char *name, int def)
 {
        char *val = GDKgetenv(name);
diff --git a/gdk/gdk_utils.h b/gdk/gdk_utils.h
--- a/gdk/gdk_utils.h
+++ b/gdk/gdk_utils.h
@@ -31,6 +31,8 @@ gdk_export int GDKgetenv_isyes(const cha
 
 gdk_export int GDKgetenv_istrue(const char *name);
 
+gdk_export int GDKgetenv_int(const char *name, int def);
+
 gdk_export void GDKsetenv(str name, str value);
 
 /*
diff --git a/monetdb5/optimizer/opt_accumulators.c 
b/monetdb5/optimizer/opt_accumulators.c
--- a/monetdb5/optimizer/opt_accumulators.c
+++ b/monetdb5/optimizer/opt_accumulators.c
@@ -112,7 +112,5 @@ OPTaccumulatorsImplementation(Client cnt
                        freeInstruction(old[i]);
        GDKfree(old);
        GDKfree(span);
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_accumulators:%d 
accumulations\n",actions);
        return actions;
 }
diff --git a/monetdb5/optimizer/opt_aliases.c b/monetdb5/optimizer/opt_aliases.c
--- a/monetdb5/optimizer/opt_aliases.c
+++ b/monetdb5/optimizer/opt_aliases.c
@@ -79,7 +79,5 @@ OPTaliasesImplementation(Client cntxt, M
         */
        GDKfree(span);
        GDKfree(alias);
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_aliases: %d removed\n",actions);
        return actions;
 }
diff --git a/monetdb5/optimizer/opt_coercion.c 
b/monetdb5/optimizer/opt_coercion.c
--- a/monetdb5/optimizer/opt_coercion.c
+++ b/monetdb5/optimizer/opt_coercion.c
@@ -68,7 +68,5 @@ OPTcoercionImplementation(Client cntxt,M
         * This optimizer affects the flow, but not the type and declaration
         * structure. A cheaper optimizer is sufficient.
         */
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_coercion: %d coersions 
applied\n",actions);
        return actions;
 }
diff --git a/monetdb5/optimizer/opt_commonTerms.c 
b/monetdb5/optimizer/opt_commonTerms.c
--- a/monetdb5/optimizer/opt_commonTerms.c
+++ b/monetdb5/optimizer/opt_commonTerms.c
@@ -188,10 +188,5 @@ OPTcommonTermsImplementation(Client cntx
        GDKfree(vars);
        GDKfree(old);
        GDKfree(alias);
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_commonTerms: %d statements 
catched\n",actions);
-#ifdef DEBUG_OPT_COMMONTERMS_MORE
-               mnstr_printf(cntxt->fdout,"#opt_commonTerms: %d statements 
catched\n",actions);
-#endif
        return actions;
 }
diff --git a/monetdb5/optimizer/opt_constants.c 
b/monetdb5/optimizer/opt_constants.c
--- a/monetdb5/optimizer/opt_constants.c
+++ b/monetdb5/optimizer/opt_constants.c
@@ -93,8 +93,6 @@ OPTconstantsImplementation(Client cntxt,
                for (k=0; k < p->argc; k++)
                        getArg(p,k) = alias[getArg(p,k)];
        }
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_constants: %d constant 
duplicates removed\n", actions);
        GDKfree(alias);
        GDKfree(cst);
        GDKfree(index);
diff --git a/monetdb5/optimizer/opt_costModel.c 
b/monetdb5/optimizer/opt_costModel.c
--- a/monetdb5/optimizer/opt_costModel.c
+++ b/monetdb5/optimizer/opt_costModel.c
@@ -66,7 +66,7 @@ OPTbackpropagate(MalBlkPtr mb, int i, in
 int
 OPTcostModelImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci)
 {
-       int i, actions = 1;
+       int i;
        wrd k, c1, c2;
        InstrPtr p;
        str sortrevRef= putName("sortReverse",11);
@@ -199,7 +199,5 @@ OPTcostModelImplementation(Client cntxt,
                        }
                }
        }
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_costModel: processed\n");
        return 1;
 }
diff --git a/monetdb5/optimizer/opt_dataflow.c 
b/monetdb5/optimizer/opt_dataflow.c
--- a/monetdb5/optimizer/opt_dataflow.c
+++ b/monetdb5/optimizer/opt_dataflow.c
@@ -320,7 +320,5 @@ OPTdataflowImplementation(Client cntxt, 
        GDKfree(old);
        GDKfree(span);
        GDKfree(init);
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_dataflow: %d flow blocks 
created\n",actions);
        return actions;
 }
diff --git a/monetdb5/optimizer/opt_deadcode.c 
b/monetdb5/optimizer/opt_deadcode.c
--- a/monetdb5/optimizer/opt_deadcode.c
+++ b/monetdb5/optimizer/opt_deadcode.c
@@ -80,8 +80,6 @@ OPTdeadcodeImplementation(Client cntxt, 
        for(; i<slimit; i++)
                if( old[i])
                        freeInstruction(old[i]);
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_deadcode: %d statements 
removed\n", actions);
        GDKfree(old);
        /* we may have uncovered new use-less operations */
        if (actions) 
diff --git a/monetdb5/optimizer/opt_emptySet.c 
b/monetdb5/optimizer/opt_emptySet.c
--- a/monetdb5/optimizer/opt_emptySet.c
+++ b/monetdb5/optimizer/opt_emptySet.c
@@ -227,8 +227,6 @@ ESevaluate(Client cntxt, MalBlkPtr mb, c
                        freeInstruction(old[i]);
        GDKfree(old);
        if (actions) {
-               DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_emptyset: %d empty sets 
statements removed\n",actions);
                clrAllTypes(mb);         /* force a complete resolve */
        }
        GDKfree(constraints);
diff --git a/monetdb5/optimizer/opt_evaluate.c 
b/monetdb5/optimizer/opt_evaluate.c
--- a/monetdb5/optimizer/opt_evaluate.c
+++ b/monetdb5/optimizer/opt_evaluate.c
@@ -184,8 +184,6 @@ OPTevaluateImplementation(Client cntxt, 
                }
        }
        actions += OPTremoveUnusedBlocks(cntxt, mb);
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout, "#opt_evaluate: %d constant 
expressions\n", actions);
        GDKfree(span);
        GDKfree(alias);
        freeStack(env);
diff --git a/monetdb5/optimizer/opt_garbageCollector.c 
b/monetdb5/optimizer/opt_garbageCollector.c
--- a/monetdb5/optimizer/opt_garbageCollector.c
+++ b/monetdb5/optimizer/opt_garbageCollector.c
@@ -116,8 +116,6 @@ OPTgarbageCollectorImplementation(Client
        }
        GDKfree(span);
 
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_garbagecollector: %d variables 
reset\n",actions);
        return actions+1;
 }
 
diff --git a/monetdb5/optimizer/opt_groups.c b/monetdb5/optimizer/opt_groups.c
--- a/monetdb5/optimizer/opt_groups.c
+++ b/monetdb5/optimizer/opt_groups.c
@@ -84,7 +84,5 @@ OPTgroupsImplementation(Client cntxt, Ma
                        freeInstruction(old[i]);
        GDKfree(old);
        GDKfree(ref);
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_groups: %d statements 
glued\n",actions);
        return actions;
 }
diff --git a/monetdb5/optimizer/opt_history.c b/monetdb5/optimizer/opt_history.c
--- a/monetdb5/optimizer/opt_history.c
+++ b/monetdb5/optimizer/opt_history.c
@@ -37,7 +37,7 @@ OPTforgetPrevious(Client cntxt, MalBlkPt
 int 
 OPThistoryImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci)
 {
-       int i, limit, slimit, actions = 1;
+       int i, limit, slimit;
        InstrPtr p = 0, *old= mb->stmt, q,r;
        int argc, inblock, oublock, arg, ctime;
        int xtime=0, rtime = 0, foot=0, memory, tuples=0;
@@ -203,7 +203,5 @@ OPThistoryImplementation(Client cntxt, M
                if(old[i])
                        freeInstruction(old[i]);
        GDKfree(old);
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_history: code added\n");
        return 1;
 }
diff --git a/monetdb5/optimizer/opt_inline.c b/monetdb5/optimizer/opt_inline.c
--- a/monetdb5/optimizer/opt_inline.c
+++ b/monetdb5/optimizer/opt_inline.c
@@ -40,13 +40,12 @@ isCorrectInline(MalBlkPtr mb){
 int
 OPTinlineImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
 {
-       int i,limit;
+       int i;
        InstrPtr q,sig;
        int actions = 0;
 
        (void) p;
 
-       limit = mb->stop;
        for (i = 1; i < mb->stop; i++) {
                q = getInstrPtr(mb, i);
                if( q->blk ){
@@ -106,8 +105,6 @@ OPTinlineImplementation(Client cntxt, Ma
        OPTDEBUGinline
                mnstr_printf(cntxt->fdout,"#mal program: %d MAL instr %d vars 
(" SZFMT " K)\n",mb->stop,mb->vtop, 
                ((sizeof( MalBlkRecord) +mb->ssize * sizeof(InstrRecord)+ 
mb->vtop* sizeof(VarRecord) + mb->vsize*sizeof(VarPtr)+1023)/1024));
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_inline: actions %d MAL 
%d->%d\n",actions,limit,mb->stop);
        return actions;
 }
 
@@ -122,7 +119,6 @@ int OPTinlineMultiplex(Client cntxt, Mal
        if( (s= findSymbol(cntxt->nspace, mod,fcn)) ==0 )
                return FALSE;
        /*
-        * @-
         * Before we decide to propagate the inline request
         * to the multiplex operation, we check some basic properties
         * of the target function. Moreover, we apply the inline optimizer
diff --git a/monetdb5/optimizer/opt_joinpath.c 
b/monetdb5/optimizer/opt_joinpath.c
--- a/monetdb5/optimizer/opt_joinpath.c
+++ b/monetdb5/optimizer/opt_joinpath.c
@@ -293,7 +293,5 @@ OPTjoinPathImplementation(Client cntxt, 
        GDKfree(old);
        GDKfree(pc);
        if (varcnt ) GDKfree(varcnt);
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_joinpath: %d statements 
glued\n",actions);
        return actions;
 }
diff --git a/monetdb5/optimizer/opt_mergetable.c 
b/monetdb5/optimizer/opt_mergetable.c
--- a/monetdb5/optimizer/opt_mergetable.c
+++ b/monetdb5/optimizer/opt_mergetable.c
@@ -1402,8 +1402,6 @@ OPTmergetableImplementation(Client cntxt
                GDKfree(old);
        }
 
-       DEBUGoptimizers
-               mnstr_printf(cntxt->fdout,"#opt_mergetable: %d merge 
actions\n",actions);
        GDKfree(mat);
        return actions;
 }
diff --git a/monetdb5/optimizer/opt_mitosis.c b/monetdb5/optimizer/opt_mitosis.c
--- a/monetdb5/optimizer/opt_mitosis.c
+++ b/monetdb5/optimizer/opt_mitosis.c
@@ -20,6 +20,7 @@
 #include "opt_mitosis.h"
 #include "opt_octopus.h"
 #include "mal_interpreter.h"
+#include <gdk_utils.h>
 
 static int
 eligible(MalBlkPtr mb)
@@ -41,7 +42,7 @@ eligible(MalBlkPtr mb)
 int
 OPTmitosisImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
 {
-       int i, j, limit, estimate = 0, pieces = 1;
+       int i, j, limit, estimate = 0, pieces = 1, mito_parts = 0, mito_size = 
0, row_size = 0;
        str schema = 0, table = 0;
        wrd r = 0, rowcnt = 0;    /* table should be sizeable to consider 
parallel execution*/
        InstrPtr q, *old, target = 0;
@@ -87,6 +88,8 @@ OPTmitosisImplementation(Client cntxt, M
                 */
                r = getVarRows(mb, getArg(p, 0));
                if (r >= rowcnt) {
+                       /* the rowsize depends on the column types, assume 
void-headed */
+                       row_size = ATOMsize(getTailType(getArgType(mb,p,0)));
                        rowcnt = r;
                        target = p;
                        estimate++;
@@ -135,15 +138,26 @@ OPTmitosisImplementation(Client cntxt, M
                if (pieces > MAXSLICES)
                        pieces = MAXSLICES;
        }
+       /* to enable experimentation we introduce the option to set
+        * the number of parts required and/or the size of each chunk (in K)
+        */
+       mito_parts = GDKgetenv_int("mito_parts", 0);
+       if (mito_parts > 0) 
+               pieces = mito_parts;
+       mito_size = GDKgetenv_int("mito_size", 0);
+       if (mito_size > 0) 
+               pieces = (rowcnt * row_size)/ (mito_size * 1024);
+
+       OPTDEBUGmitosis
+       mnstr_printf(cntxt->fdout, "#opt_mitosis: target is %s.%s "
+                                                          " with " SSZFMT " 
rows of size %d into " SSZFMT 
+                                                               " rows/piece %d 
threads %d pieces"
+                                                               " fixed parts 
%d fixed size %d\n",
+                                getVarConstant(mb, getArg(target, 2)).val.sval,
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to