Brian's changes to manual prefetching for array and chase
authoradash <adash>
Thu, 12 Mar 2009 20:06:40 +0000 (20:06 +0000)
committeradash <adash>
Thu, 12 Mar 2009 20:06:40 +0000 (20:06 +0000)
Robust/src/Benchmarks/Distributed/LookUpService/dsm2/DistributedHashMap.java
Robust/src/Benchmarks/Prefetch/ManualPrefetch/Array/Array.java
Robust/src/Benchmarks/Prefetch/ManualPrefetch/Chase/Chase.java
Robust/src/Benchmarks/Prefetch/bm.txt

index 180945e405fa65e5e5750386e47ab6b357fb8e7b..c9cbdfd7588c1648e7f7ec15f8818784178a2996 100644 (file)
@@ -54,17 +54,6 @@ public class DistributedHashMap {
     if (dhe==null)
       return null;
 
-    /****** Add Manual Prefetch *****/
-    //dhe.array.next(5).key
-    Object obj1 = dhe.array;
-    short[] offsets1 = new short[4];
-    offsets1[0] = getoffset {DHashEntry, next};
-    offsets1[1] = (short) 5;
-    offsets1[2] = getoffset {DHashEntry, key};
-    offsets1[3] = (short) 0;
-    System.rangePrefetch(obj1, offsets1);
-    /********************************/
-
     DHashEntry ptr=dhe.array;
 
     while(ptr!=null) {
index 48badc4e144c97497dc2636e892b59b33f2b0713..fe8861814c73c9d62e3026b78f96a44c48f66f2c 100644 (file)
@@ -26,7 +26,13 @@ public class Array extends Thread {
     offsets[0] = getoffset{Array, array};
     offsets[1] = (short) 0;
     offsets[2] = (short) 0;
-    offsets[3] = (short) 100;
+    offsets[3] = (short) 4000;
+    System.rangePrefetch(this, offsets);
+    offsets[2] = (short) 4001;
+    offsets[3] = (short) 4000;
+    System.rangePrefetch(this, offsets);
+    offsets[2] = (short) 8002;
+    offsets[3] = (short) 1997;
     System.rangePrefetch(this, offsets);
     atomic {
       int xlength=array.length;
index b9a2574380b6f4e156a81168f23e8db21d1c9cee..176bfa0ef2cd7aef8779991fc335d3980fa7321f 100644 (file)
@@ -13,7 +13,7 @@ public class Chase extends Thread {
     
     public static void main(String [] argv) {
        Chase c;
-    int numTraverse = 10000;
+    int numTraverse = 40000;
        atomic {
            Foo fold=global new Foo();
            
@@ -31,23 +31,24 @@ public class Chase extends Thread {
     
     public void run() {
       short[] offsets = new short[4];
+      short[] offsets1 = new short[2];
+
       offsets[0] = getoffset{Chase, base};
       offsets[1] = (short) 0;
       offsets[2] = getoffset{Foo, next};
-      offsets[3] = (short) 127;
+      offsets[3] = (short) 3000;
       System.rangePrefetch(this, offsets);
       atomic {
         Foo b=base;
-        int i = 0;
+        int i = 50;
         while(b!=null) {
           b=b.next;
           i++;
-          base = base.next;
-          if((i&127) == 0) {
-            short[] offsets1 = new short[2];
+          if((i&3000) == 0) {
+             i=50;
             offsets1[0] = getoffset{Foo, next};
-            offsets1[1] = (short) 127;
-            System.rangePrefetch(base, offsets1);
+            offsets1[1] = (short) 3000;
+            System.rangePrefetch(b, offsets1);
           }
         }
       }
index a09cf18469520421c0b9284d07364c299cc297dd..fa74ed8703cbec7aa9956a76a0e2745fd8b38e15 100644 (file)
@@ -11,8 +11,8 @@ MatrixMultiply:MatrixMultiply/dsm:1 1200:2 1200:3 1200:4 1200:5 1200:6 1200:7 12
 Em3d:Em3d/dsm:-T 1 -N 4000 -d 130 -p -i 6:-T 2 -N 4000 -d 130 -p -i 6:-T 3 -N 4000 -d 130 -p -i 6:-T 4 -N 4000 -d 130 -p -i 6:-T 5 -N 4000 -d 130 -p -i 6:-T 6 -N 4000 -d 130 -p -i 6:-T 7 -N 4000 -d 130 -p -i 6:-T 8 -N 4000 -d 130 -p -i 6:em3dver40001306
 Em3d:Em3d/dsm:-T 1 -N 6000 -d 200 -p -i 10:-T 2 -N 6000 -d 200 -p -i 10:-T 3 -N 6000 -d 200 -p -i 10:-T 4 -N 6000 -d 200 -p -i 10:-T 5 -N 6000 -d 200 -p -i 10:-T 6 -N 6000 -d 200 -p -i 10:-T 7 -N 6000 -d 200 -p -i 10:-T 8 -N 6000 -d 200 -p -i 10:em3dver600020010
 Em3d:Em3d/dsm:-T 1 -N 10000 -d 1000 -i 15:-T 2 -N 10000 -d 1000 -i 15:-T 3 -N 10000 -d 1000 -i 15:-T 4 -N 10000 -d 1000 -i 15:-T 5 -N 10000 -d 1000 -i 15:-T 6 -N 10000 -d 1000 -i 15:-T 7 -N 10000 -d 1000 -i 15:-T 8 -N 10000 -d 1000 -i 15:em3dver10000100015
-Chase:Chase:::::chase
-Array:Array:::::array
+Chase:Chase:::::::::chase
+Array:Array:::::::::array
 fft2d:2DFFT/dsm:1 1600:2 1600:3 1600:4 1600:5 1600:6 1600:7 1600:8 1600:1600fft2d
 fft2d:2DFFT/dsm:1 1152:2 1152:3 1152:4 1152:5 1152:6 1152:7 1152:8 1152:1152fft2d
 fft2d:2DFFT/dsm:1 3200:2 3200:3 3200:4 3200:5 3200:6 3200:7 3200:8 3200:3200fft2d