From 492b22576f2ad46b300ce8dc31c5b672aaf517e4 Mon Sep 17 00:00:00 2001 From: Aleksandar Pokopec Date: Thu, 9 Dec 2010 10:08:16 +0000 Subject: Fixed parallel ranges to use the same range log... Fixed parallel ranges to use the same range logic under the hood, and not introduce code duplication. Slight fix in Tasks. No review. --- .../parallel/benchmarks/parallel_array/MatrixMultiplication.scala | 2 +- .../parallel/benchmarks/parallel_range/RangeBenches.scala | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'test/benchmarks') diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MatrixMultiplication.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MatrixMultiplication.scala index e4eb51d83b..3c1cc47088 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MatrixMultiplication.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MatrixMultiplication.scala @@ -38,7 +38,7 @@ extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { } def assignProduct(a: Matrix[T], b: Matrix[T]) = { - val range = new ParRange(0, n * n, 1, false) + val range = ParRange(0, n * n, 1, false) range.tasksupport.environment = forkjoinpool for (i <- range) this(i / n, i % n) = calcProduct(a, b, i / n, i % n); } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_range/RangeBenches.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_range/RangeBenches.scala index 6cd1d74c5e..4f32d366a4 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_range/RangeBenches.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_range/RangeBenches.scala @@ -20,7 +20,7 @@ object RangeBenches extends StandardParIterableBenches[Int, ParRange] { val forkJoinPool = new scala.concurrent.forkjoin.ForkJoinPool def createSequential(sz: Int, p: Int) = new collection.immutable.Range(0, sz, 1) def createParallel(sz: Int, p: Int) = { - val pr = new collection.parallel.immutable.ParRange(0, sz, 1, false) + val pr = collection.parallel.immutable.ParRange(0, sz, 1, false) forkJoinPool.setParallelism(p) pr.tasksupport.environment = forkJoinPool pr @@ -79,7 +79,10 @@ object RangeBenches extends StandardParIterableBenches[Int, ParRange] { def comparisonMap = collection.Map() def runseq = for (n <- this.seqcoll) modify(n) - def runpar = for (n <- this.parcoll) modify(n) + def runpar = for (n <- this.parcoll.asInstanceOf[ParRange]) { + modify(n) + () + } def companion = ForeachModify } -- cgit v1.2.3