Changeset: aa718a27d27a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aa718a27d27a
Added Files:
        monetdb5/scheduler/Tests/matpack00.mal
        monetdb5/scheduler/Tests/matpack01.mal
        monetdb5/scheduler/Tests/matpack02.mal
Branch: mutation
Log Message:

Add micro tests for matpack propagation


diffs (167 lines):

diff --git a/monetdb5/scheduler/Tests/matpack00.mal 
b/monetdb5/scheduler/Tests/matpack00.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/scheduler/Tests/matpack00.mal
@@ -0,0 +1,49 @@
+# example framework to obtain insight in behavior of
+# a single MAL primitive
+
+function initialize{unsafe}(limit:lng):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,limit);
+       exit i;
+       return b;
+end initialize;
+
+function query(b:bat[:oid,:lng],c:bat[:oid,:lng],d:bat[:oid,:lng]):lng;
+       t0:= alarm.usec();
+       m:= mat.pack(b,c,d);
+       s:= algebra.subselect(m,1:lng,99:lng,true,false,false);
+       t1:= alarm.usec();
+       return query := t1-t0;
+end query;
+
+optimizer.multicore("user","query");
+function testrun(limit:lng);
+       t0:= alarm.usec();
+       b:= initialize(limit);
+       bat.setReadMode(b);
+       t1:= alarm.usec();
+       t1:= t1-t0;
+       max:= aggr.max(b);
+       min:= aggr.min(b);
+       step := max-min;
+       step := step/10;
+       io.printf(" max %d min %d step %d\n",max,min,step);
+
+       barrier i:=0;
+               t2:= user.query(b,b,b);
+               mdb.list("user","query");
+               io.printf("#run %d %d %d\n",limit,i,t2);
+               redo i:= iterator.next(1,8);
+       exit i;
+
+end testrun;
+
+# runs based on sizes
+testrun(100000:lng);   #400K
+#testrun(1000000:lng);  #4MB
diff --git a/monetdb5/scheduler/Tests/matpack01.mal 
b/monetdb5/scheduler/Tests/matpack01.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/scheduler/Tests/matpack01.mal
@@ -0,0 +1,49 @@
+# example framework to obtain insight in behavior of
+# a single MAL primitive
+
+function initialize{unsafe}(limit:lng):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,limit);
+       exit i;
+       return b;
+end initialize;
+
+function query(b:bat[:oid,:lng],c:bat[:oid,:lng],d:bat[:oid,:lng]):lng;
+       t0:= alarm.usec();
+       m:= mat.pack(b,c,d);
+       (s,t):= algebra.join(b,m);
+       t1:= alarm.usec();
+       return query := t1-t0;
+end query;
+
+optimizer.multicore("user","query");
+function testrun(limit:lng);
+       t0:= alarm.usec();
+       b:= initialize(limit);
+       bat.setReadMode(b);
+       t1:= alarm.usec();
+       t1:= t1-t0;
+       max:= aggr.max(b);
+       min:= aggr.min(b);
+       step := max-min;
+       step := step/10;
+       io.printf(" max %d min %d step %d\n",max,min,step);
+
+       barrier i:=0;
+               t2:= user.query(b,b,b);
+               mdb.list("user","query");
+               io.printf("#run %d %d %d\n",limit,i,t2);
+               redo i:= iterator.next(1,8);
+       exit i;
+
+end testrun;
+
+# runs based on sizes
+testrun(100000:lng);   #400K
+#testrun(1000000:lng);  #4MB
diff --git a/monetdb5/scheduler/Tests/matpack02.mal 
b/monetdb5/scheduler/Tests/matpack02.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/scheduler/Tests/matpack02.mal
@@ -0,0 +1,54 @@
+# example framework to obtain insight in behavior of
+# a single MAL primitive
+
+function initialize{unsafe}(limit:lng):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,limit);
+       exit i;
+       return b;
+end initialize;
+
+function query(b:bat[:oid,:lng],c:bat[:oid,:lng],d:bat[:oid,:lng]):lng;
+       t0:= alarm.usec();
+       m:= mat.pack(b,c,d);
+       b1:= bat.partition(b,2,0);
+       b2:= bat.partition(b,2,1);
+       (s1,v1):= algebra.join(b1,m);
+       (s2,v2):= algebra.join(b2,m);
+       s:= mat.pack(s1,s2);
+       t:= mat.pack(v1,v2);
+       t1:= alarm.usec();
+       return query := t1-t0;
+end query;
+
+optimizer.multicore("user","query");
+function testrun(limit:lng);
+       t0:= alarm.usec();
+       b:= initialize(limit);
+       bat.setReadMode(b);
+       t1:= alarm.usec();
+       t1:= t1-t0;
+       max:= aggr.max(b);
+       min:= aggr.min(b);
+       step := max-min;
+       step := step/10;
+       io.printf(" max %d min %d step %d\n",max,min,step);
+
+       barrier i:=0;
+               t2:= user.query(b,b,b);
+               mdb.list("user","query");
+               io.printf("#run %d %d %d\n",limit,i,t2);
+               redo i:= iterator.next(1,8);
+       exit i;
+
+end testrun;
+
+# runs based on sizes
+testrun(100000:lng);   #400K
+#testrun(1000000:lng);  #4MB
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to