summaryrefslogtreecommitdiff
path: root/test/benchmarks
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2011-01-26 08:37:23 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2011-01-26 08:37:23 +0000
commit78a48c46cf3727dd06179cb1360b2f9057647042 (patch)
tree01f418fab8ee1cd61c5a6a891bdce09cde142098 /test/benchmarks
parent78007ac467c9d6e88ae183a9126772829072704c (diff)
downloadscala-78a48c46cf3727dd06179cb1360b2f9057647042.tar.gz
scala-78a48c46cf3727dd06179cb1360b2f9057647042.tar.bz2
scala-78a48c46cf3727dd06179cb1360b2f9057647042.zip
Merge branch 'work'
Conflicts: src/library/scala/concurrent/SyncVar.scala
Diffstat (limited to 'test/benchmarks')
-rw-r--r--test/benchmarks/src/scala/collection/parallel/Benchmarking.scala5
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala3
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala4
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala28
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTables.scala18
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala3
6 files changed, 61 insertions, 0 deletions
diff --git a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala b/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala
index e413fb537e..c3811601e3 100644
--- a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala
+++ b/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala
@@ -119,6 +119,9 @@ trait BenchmarkRegister {
register(hashtables.RefParHashTableBenches.Map)
register(hashtables.RefParHashTableBenches.Map2)
register(hashtables.RefParHashTableBenches.HeavyMap)
+ register(hashtables.RefParHashTableBenches.Filter)
+ register(hashtables.RefParHashTableBenches.FlatMap)
+ register(hashtables.RefParHashTableBenches.FlatMap2)
// parallel hash table set benchmarks
register(hashtables.RefParHashTableSetBenches.Reduce)
@@ -128,6 +131,8 @@ trait BenchmarkRegister {
register(hashtables.RefParHashTableSetBenches.Map)
register(hashtables.RefParHashTableSetBenches.Map2)
register(hashtables.RefParHashTableSetBenches.HeavyMap)
+ register(hashtables.RefParHashTableSetBenches.Filter)
+ register(hashtables.RefParHashTableSetBenches.FlatMap)
// general examples
register(misc.Coder)
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 7cb3641622..3b5308f8c2 100644
--- a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala
+++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala
@@ -58,6 +58,9 @@ object DummyOperators extends Operators[Dummy] {
}
a
}
+ val flatmapper = (a: Dummy) => {
+ List(a, a, a, a, a)
+ }
val taker = (a: Dummy) => {
a.in >= 0
}
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 84f69239f6..4fb76542e1 100644
--- a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala
+++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala
@@ -14,6 +14,7 @@ trait Operators[T] {
def mapper: T => T
def mapper2: T => T = error("unsupported")
def heavymapper: T => T
+ def flatmapper: T => Seq[T]
def taker: T => Boolean
def eachFun: T => Unit
def eachPairFun: ((T, T)) => Unit = error("unsupported")
@@ -44,6 +45,9 @@ trait IntOperators extends Operators[Int] {
}
n + sum
}
+ val flatmapper: Int => Seq[Int] = (n: Int) => {
+ List(n, n, n, n, n)
+ }
val taker: Int => Boolean = _ < 10000
val eachFun: Int => Unit = { n =>
n % 2 == 0
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 c0545aff52..b14a0b3aab 100644
--- a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala
+++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala
@@ -117,6 +117,34 @@ trait StandardParIterableBenches[T, Coll <: ParIterable[T]] extends ParIterableB
def companion = Map
}
+ object Filter extends IterableBenchCompanion {
+ override def defaultSize = 5000
+ def benchName = "filter";
+ def apply(sz: Int, p: Int, w: String) = new Filter(sz, p, w)
+ }
+
+ class Filter(val size: Int, val parallelism: Int, val runWhat: String)
+ extends IterableBench {
+ def comparisonMap = collection.Map()
+ def runseq = this.seqcoll.filter(operators.filterer)
+ def runpar = this.parcoll.filter(operators.filterer)
+ def companion = Filter
+ }
+
+ object FlatMap extends IterableBenchCompanion {
+ override def defaultSize = 5000
+ def benchName = "flatmap";
+ def apply(sz: Int, p: Int, w: String) = new FlatMap(sz, p, w)
+ }
+
+ class FlatMap(val size: Int, val parallelism: Int, val runWhat: String)
+ extends IterableBench {
+ def comparisonMap = collection.Map()
+ def runseq = this.seqcoll.flatMap(operators.flatmapper)
+ def runpar = this.parcoll.flatMap(operators.flatmapper)
+ def companion = FlatMap
+ }
+
}
diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTables.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTables.scala
index cf0e53e47d..bdb1dff56d 100644
--- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTables.scala
+++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTables.scala
@@ -57,6 +57,21 @@ trait ParHashTableBenches[K, V] extends StandardParIterableBenches[(K, V), ParHa
}
}
+ object FlatMap2 extends IterableBenchCompanion {
+ override def defaultSize = 5000
+ def benchName = "flatmap2";
+ def apply(sz: Int, p: Int, w: String) = new FlatMap2(sz, p, w)
+ }
+
+ class FlatMap2(val size: Int, val parallelism: Int, val runWhat: String)
+ extends IterableBench {
+ def comparisonMap = collection.Map()
+ override def repetitionsPerRun = 25
+ def runseq = this.seqcoll.flatMap(operators.flatmapper)
+ def runpar = this.parcoll.flatMap(operators.flatmapper)
+ def companion = FlatMap2
+ }
+
object HeavyMap extends IterableBenchCompanion {
override def defaultSize = 5000
override def comparisons = List()
@@ -177,6 +192,9 @@ object RefParHashTableBenches extends ParHashTableBenches[Dummy, Dummy] {
a.num = a.in % 2
(a, p._2)
}
+ val flatmapper = (p: DPair) => {
+ for (i <- 0 until 20) yield p
+ }
override val mapper2 = (p: DPair) => {
val a = 1 //heavy(p._1.in)
(new Dummy(p._1.in * -2 + a), p._2)
diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala
index 81d4f095da..3976b72d1a 100644
--- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala
+++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala
@@ -135,6 +135,9 @@ object RefParHashTrieBenches extends ParHashTrieBenches[Dummy, Dummy] {
a.num = a.in % 2
(a, p._2)
}
+ val flatmapper = (p: DPair) => {
+ List(p, p, p, p, p)
+ }
override val mapper2 = (p: DPair) => {
val a = 1 //heavy(p._1.in)
(new Dummy(p._1.in * -2 + a), p._2)