diff options
author | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2010-09-23 13:46:26 +0000 |
---|---|---|
committer | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2010-09-23 13:46:26 +0000 |
commit | a3aa8993d2ed9314206c1fbd2d5b56879f91bb0f (patch) | |
tree | 6ba553f9842c45a40a9131a051ef9dd48739b510 /test/benchmarks/src | |
parent | d7420203456f4369a490310170a2597cb4c32fe6 (diff) | |
download | scala-a3aa8993d2ed9314206c1fbd2d5b56879f91bb0f.tar.gz scala-a3aa8993d2ed9314206c1fbd2d5b56879f91bb0f.tar.bz2 scala-a3aa8993d2ed9314206c1fbd2d5b56879f91bb0f.zip |
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
Diffstat (limited to 'test/benchmarks/src')
4 files changed, 25 insertions, 0 deletions
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"; |