25 |
|
int iters = 1000000; |
26 |
|
int replications = 1; |
27 |
|
|
28 |
< |
if (args.length > 0) |
28 |
> |
if (args.length > 0) |
29 |
|
maxThreads = Integer.parseInt(args[0]); |
30 |
|
|
31 |
< |
if (args.length > 1) |
31 |
> |
if (args.length > 1) |
32 |
|
iters = Integer.parseInt(args[1]); |
33 |
|
|
34 |
< |
if (args.length > 2) |
34 |
> |
if (args.length > 2) |
35 |
|
replications = Integer.parseInt(args[2]); |
36 |
|
|
37 |
|
rng.setSeed(3122688L); |
142 |
|
v = initialValue; |
143 |
|
this.iters = iters; |
144 |
|
barrier = new CyclicBarrier(nthreads+1, timer); |
145 |
< |
for (int i = 0; i < nthreads; ++i) |
145 |
> |
for (int i = 0; i < nthreads; ++i) |
146 |
|
pool.execute(this); |
147 |
|
barrier.await(); |
148 |
|
barrier.await(); |
150 |
|
if (print) { |
151 |
|
long tpi = time / (iters * nthreads); |
152 |
|
System.out.print("\t" + LoopHelpers.rightJustify(tpi) + " ns per update"); |
153 |
< |
// double secs = (double)(time) / 1000000000.0; |
153 |
> |
// double secs = (double) time / 1000000000.0; |
154 |
|
// System.out.print("\t " + secs + "s run time"); |
155 |
|
System.out.println(); |
156 |
|
} |
161 |
|
abstract int loop(int n); |
162 |
|
public final void run() { |
163 |
|
try { |
164 |
< |
barrier.await(); |
164 |
> |
barrier.await(); |
165 |
|
result += loop(iters); |
166 |
|
barrier.await(); |
167 |
|
} |
168 |
< |
catch (Exception ie) { |
169 |
< |
return; |
168 |
> |
catch (Exception ie) { |
169 |
> |
return; |
170 |
|
} |
171 |
|
} |
172 |
|
|
176 |
|
final int loop(int n) { |
177 |
|
int sum = 0; |
178 |
|
while (n-- > 0) { |
179 |
< |
synchronized(this) { |
179 |
> |
synchronized (this) { |
180 |
|
v = LoopHelpers.compute1(v); |
181 |
|
} |
182 |
|
sum += LoopHelpers.compute2(v); |