53 |
|
Rand[] array = new Rand[n]; |
54 |
|
for (int i = 0; i < n; ++i) |
55 |
|
array[i] = new Rand(i+1); |
56 |
< |
ForkJoinPool fjp = new ForkJoinPool(1); |
56 |
> |
ForkJoinPool fjp = new ForkJoinPool(); |
57 |
|
ParallelArray<Rand> pa = ParallelArray.createUsingHandoff(array, fjp); |
58 |
|
final GetNext getNext = new GetNext(); |
59 |
|
final Accum accum = new Accum(); |
78 |
|
for (int i = 2; i <= NCPU; i <<= 1) { |
79 |
|
resetSeeds(array, rseed); |
80 |
|
long sum = 0; |
81 |
< |
fjp.setParallelism(i); |
81 |
> |
// fjp.setParallelism(i); |
82 |
|
last = System.nanoTime(); |
83 |
|
for (int k = 0; k < reps; ++k) { |
84 |
|
sum += pa.withMapping(getNext).reduce(accum, zero); |
89 |
|
now = System.nanoTime(); |
90 |
|
elapsed = (double)(now - last) / NPS; |
91 |
|
last = now; |
92 |
< |
System.out.printf("poolSize %3d: %7.3f\n", i, elapsed); |
92 |
> |
System.out.printf("poolSize %3d: %7.3f\n", fjp.getParallelism(), elapsed); |
93 |
|
if (sum != seqsum) throw new Error("checksum"); |
94 |
|
} |
95 |
|
for (int i = NCPU; i >= 1; i >>>= 1) { |
96 |
|
resetSeeds(array, rseed); |
97 |
|
long sum = 0; |
98 |
< |
fjp.setParallelism(i); |
98 |
> |
// fjp.setParallelism(i); |
99 |
|
last = System.nanoTime(); |
100 |
|
for (int k = 0; k < reps; ++k) { |
101 |
|
sum += pa.withMapping(getNext).reduce(accum, zero); |
106 |
|
now = System.nanoTime(); |
107 |
|
elapsed = (double)(now - last) / NPS; |
108 |
|
last = now; |
109 |
< |
System.out.printf("poolSize %3d: %7.3f\n", i, elapsed); |
109 |
> |
System.out.printf("poolSize %3d: %7.3f\n", fjp.getParallelism(), elapsed); |
110 |
|
if (sum != seqsum) throw new Error("checksum"); |
111 |
|
} |
112 |
|
} |