rewritten SOR benchmark
authorbdemsky <bdemsky>
Mon, 11 Aug 2008 20:13:42 +0000 (20:13 +0000)
committerbdemsky <bdemsky>
Mon, 11 Aug 2008 20:13:42 +0000 (20:13 +0000)
Robust/src/Benchmarks/Prefetch/SOR/dsm/SORRunner.java

index d1f4a4b8aef62ab681d2d003a31d7eda924657c3..9846a33f88a8f8002a4f18931accbd4c664a8359 100644 (file)
@@ -99,6 +99,29 @@ class SORRunner extends Thread {
             }
           } else if (i == Mm1) {
 
+          } else {
+
+            double [] Gip1 = G[i+1];
+
+            for (int j=1; j<Nm1; j=j+2){
+              Gi[j] = omega_over_four * (Gim1[j] + Gip1[j] + Gi[j-1]
+                  + Gi[j+1]) + one_minus_omega * Gi[j];
+
+            }
+          }
+        }
+      } //close atomic
+
+      Barrier.enterBarrier(barr);
+      atomic {
+        for (int i=ilow+(p%2); i<iupper; i=i+2) {
+
+          double [] Gi = G[i];
+          double [] Gim1 = G[i-1];
+
+          if(i == 1) { 
+          } else if (i == Mm1) {
+
             double [] Gim2 = G[i-2];
 
             for (int j=1; j<Nm1; j=j+2){
@@ -110,13 +133,9 @@ class SORRunner extends Thread {
 
           } else {
 
-            double [] Gip1 = G[i+1];
             double [] Gim2 = G[i-2];
 
             for (int j=1; j<Nm1; j=j+2){
-              Gi[j] = omega_over_four * (Gim1[j] + Gip1[j] + Gi[j-1]
-                  + Gi[j+1]) + one_minus_omega * Gi[j];
-
               if((j+1) != Nm1) {
                 Gim1[j+1]=omega_over_four * (Gim2[j+1] + Gi[j+1] + Gim1[j]
                     + Gim1[j+2]) + one_minus_omega * Gim1[j+1];