Changeset: da7578b49268 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=da7578b49268
Modified Files:
MonetDB5/src/optimizer/opt_tarantula.mx
Branch: default
Log Message:
Just textual
diffs (41 lines):
diff -r d4f39a8bca27 -r da7578b49268 MonetDB5/src/optimizer/opt_tarantula.mx
--- a/MonetDB5/src/optimizer/opt_tarantula.mx Fri Nov 12 22:28:11 2010 +0100
+++ b/MonetDB5/src/optimizer/opt_tarantula.mx Sat Nov 13 10:31:46 2010 +0100
@@ -170,6 +170,17 @@
an upcall to that context (=dangerous).
The solution is that any variable context should be
passed through a relation.
+
+[The hard world] The way plans are generated by mitosis leads to a large
number of
+mat.pack() operations, whose result is subsequently spread out over the legs
again
+for continual processing. This leads to a lot of transport, from
leg->head->all-legs.
+This situation can be circumvented by allowing each leg to call upon all
tarantula legs
+to solve the problem at hand. With recycling enabled in each leg, duplicate
work will
+be avoided and a direct copy of the data is obtained.
+
+To make this work, we have to keep track of what input variables for a leg
+are effectively the result of a tarantula call and inject its materialisation
+in the leg upon first use.
@{
@mal
module tarantula;
@@ -931,14 +942,17 @@
int otop[MAXSLICES], output[MAXSLICES][MAXSHARE];
InstrPtr *list;
int *needed;
- char *done, *msg= MAL_SUCCEED;
+ char *done;
- /* merge table may leave some mat.new() dead code */
+ /* merge table may leave some mat.new() dead code
+ should be handled by the pipes
+ char *msg= MAL_SUCCEED;
msg = OPTdeadcode(cntxt, mb, stk, 0);
if ( msg){
GDKfree(msg);
return 0;
}
+ */
if( cntxt == 0){
/* confuscate, delay for later activation */
TARinitcode(cntxt, mb);
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list