ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/loops/LU.java
(Generate patch)

Comparing jsr166/src/test/loops/LU.java (file contents):
Revision 1.1 by dl, Sun Sep 19 12:55:37 2010 UTC vs.
Revision 1.2 by jsr166, Mon Sep 20 20:42:37 2010 UTC

# Line 20 | Line 20 | public final class LU {
20      static final long NPS = (1000L * 1000 * 1000);
21  
22      // granularity is hard-wired as compile-time constant here
23 <    static final int BLOCK_SIZE = 16;
23 >    static final int BLOCK_SIZE = 16;
24      static final boolean CHECK = false; // set true to check answer
25  
26      public static void main(String[] args) throws Exception {
# Line 35 | Line 35 | public final class LU {
35                  procs = Integer.parseInt(args[0]);
36              if (args.length > 1)
37                  n = Integer.parseInt(args[1]);
38 <            if (args.length > 2)
38 >            if (args.length > 2)
39                  runs = Integer.parseInt(args[2]);
40          } catch (Exception e) {
41              System.out.println(usage);
# Line 46 | Line 46 | public final class LU {
46              System.out.println(usage);
47              return;
48          }
49 <        ForkJoinPool pool = procs == 0? new ForkJoinPool() :
49 >        ForkJoinPool pool = procs == 0? new ForkJoinPool() :
50              new ForkJoinPool(procs);
51 <        System.out.println("procs: " + pool.getParallelism() +
51 >        System.out.println("procs: " + pool.getParallelism() +
52                             " n: " + n + " runs: " + runs);
53          for (int run = 0; run < runs; ++run) {
54              double[][] m = new double[n][n];
# Line 161 | Line 161 | public final class LU {
161                  Block W01 = new Block(W.m, W.loRow,   W.loCol+h);
162                  Block W10 = new Block(W.m, W.loRow+h, W.loCol);
163                  Block W11 = new Block(W.m, W.loRow+h, W.loCol+h);
164 <        
164 >
165                  Seq2 s3 = seq(new Schur(h, V10, W01, M11),
166                                new Schur(h, V11, W11, M11));
167                  s3.fork();
# Line 219 | Line 219 | public final class LU {
219                  Block L10 = new Block(L.m, L.loRow+h, L.loCol);
220                  Block L11 = new Block(L.m, L.loRow+h, L.loCol+h);
221  
222 <                
223 <                Seq3 s1 =
222 >
223 >                Seq3 s1 =
224                      seq(new Lower(h, L00, M00),
225                          new Schur(h, L10, M00, M10),
226                          new Lower(h, L11, M10));
227 <                Seq3 s2 =
227 >                Seq3 s2 =
228                      seq(new Lower(h, L00, M01),
229                          new Schur(h, L10, M01, M11),
230                          new Lower(h, L11, M11));
# Line 277 | Line 277 | public final class LU {
277                  Block U10 = new Block(U.m, U.loRow+h, U.loCol);
278                  Block U11 = new Block(U.m, U.loRow+h, U.loCol+h);
279  
280 <                Seq3 s1 =
280 >                Seq3 s1 =
281                      seq(new Upper(h, U00, M00),
282                          new Schur(h, M00, U01, M01),
283                          new Upper(h, U11, M01));
284 <                Seq3 s2 =
284 >                Seq3 s2 =
285                      seq(new Upper(h, U00, M10),
286                          new Schur(h, M10, U01, M11),
287                          new Upper(h, U11, M11));
# Line 291 | Line 291 | public final class LU {
291              }
292          }
293      }
294 <    
294 >
295  
296      static final class LowerUpper extends RecursiveAction {
297          final int size;
# Line 339 | Line 339 | public final class LU {
339          }
340      }
341  
342 <    static Seq2 seq(RecursiveAction task1,
343 <                               RecursiveAction task2) {
344 <        return new Seq2(task1, task2);
342 >    static Seq2 seq(RecursiveAction task1,
343 >                               RecursiveAction task2) {
344 >        return new Seq2(task1, task2);
345      }
346  
347      static final class Seq2 extends RecursiveAction {
# Line 357 | Line 357 | public final class LU {
357          }
358      }
359  
360 <    static Seq3 seq(RecursiveAction task1,
360 >    static Seq3 seq(RecursiveAction task1,
361                      RecursiveAction task2,
362 <                    RecursiveAction task3) {
363 <        return new Seq3(task1, task2, task3);
362 >                    RecursiveAction task3) {
363 >        return new Seq3(task1, task2, task3);
364      }
365  
366      static final class Seq3 extends RecursiveAction {
367          final RecursiveAction fst;
368          final RecursiveAction snd;
369          final RecursiveAction thr;
370 <        public Seq3(RecursiveAction task1,
370 >        public Seq3(RecursiveAction task1,
371                      RecursiveAction task2,
372                      RecursiveAction task3) {
373              fst = task1;
# Line 384 | Line 384 | public final class LU {
384  
385  
386   }
387 <  
387 >

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines