summaryrefslogtreecommitdiff
path: root/test/benchmarks
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-09-23 13:46:26 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-09-23 13:46:26 +0000
commita3aa8993d2ed9314206c1fbd2d5b56879f91bb0f (patch)
tree6ba553f9842c45a40a9131a051ef9dd48739b510 /test/benchmarks
parentd7420203456f4369a490310170a2597cb4c32fe6 (diff)
downloadscala-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')
-rw-r--r--test/benchmarks/src/scala/collection/parallel/Benchmarking.scala1
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala4
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala1
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala19
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";