From a3aa8993d2ed9314206c1fbd2d5b56879f91bb0f Mon Sep 17 00:00:00 2001 From: Aleksandar Pokopec Date: Thu, 23 Sep 2010 13:46:26 +0000 Subject: Adds a zip for ParIterables + a new Zipped view... Adds a zip for ParIterables + a new Zipped view for ParSeqView and ParIterableView + a bench test. No review --- .../src/scala/collection/parallel/Benchmarking.scala | 1 + .../parallel/benchmarks/generic/Dummy.scala | 4 ++++ .../parallel/benchmarks/generic/Operators.scala | 1 + .../parallel/benchmarks/generic/ParallelBenches.scala | 19 +++++++++++++++++++ 4 files changed, 25 insertions(+) (limited to 'test/benchmarks/src') diff --git a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala b/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala index f733f4154b..954ee727a0 100644 --- a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala +++ b/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala @@ -76,6 +76,7 @@ trait BenchmarkRegister { register(parallel_view.DummyViewBenchList.IterationS) register(parallel_view.DummyViewBenchList.IterationM) register(parallel_view.DummyViewBenchList.IterationA) + register(parallel_view.DummyViewBenchList.IterationZ) // parallel ranges register(parallel_range.RangeBenches.Reduce) diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala index ae93c7adf4..84cc25610b 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala @@ -56,6 +56,10 @@ object DummyOperators extends Operators[Dummy] { val eachFun: Dummy => Unit = (d: Dummy) => { d.dummy } + override val eachPairFun: ((Dummy, Dummy)) => Unit = p => { + p._1.dummy + p._2.dummy + } override def sequence(sz: Int): Seq[Dummy] = { val pa = new collection.parallel.mutable.ParArray[Dummy](sz) for (i <- 0 until sz) pa(i) = new Dummy(i) diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala index 4bd693a933..c86fe66e63 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala @@ -15,6 +15,7 @@ trait Operators[T] { def heavymapper: T => T def taker: T => Boolean def eachFun: T => Unit + def eachPairFun: ((T, T)) => Unit = error("unsupported") def sequence(sz: Int): Seq[T] = error("unsupported") } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala index fd4e87ab4c..8516b77191 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala @@ -200,6 +200,25 @@ self => def companion = IterationA } + object IterationZ extends SeqBenchCompanion { + override def defaultSize = 50000 + def benchName = "iter-z" + def apply(sz: Int, p: Int, w: String) = new IterationZ(sz, p, w) + } + + class IterationZ(val size: Int, val parallelism: Int, val runWhat: String) + extends SeqBench with SeqViewBench { + val zipped = operators.sequence(size) + def comparisonMap = collection.Map("seqview" -> runseqview _) + def runseq = { + val withzip = this.seqcoll.zip(zipped) + withzip.foreach(operators.eachPairFun) + } + def runpar = this.parcoll.zip(zipped).foreach(operators.eachPairFun) + def runseqview = this.seqview.zip(zipped).foreach(operators.eachPairFun) + def companion = IterationZ + } + object Reduce extends SeqBenchCompanion { override def defaultSize = 50000 def benchName = "reduce"; -- cgit v1.2.3