From 78a48c46cf3727dd06179cb1360b2f9057647042 Mon Sep 17 00:00:00 2001 From: Aleksandar Pokopec Date: Wed, 26 Jan 2011 08:37:23 +0000 Subject: Merge branch 'work' Conflicts: src/library/scala/concurrent/SyncVar.scala --- .../scala/collection/parallel/Benchmarking.scala | 5 ++++ .../parallel/benchmarks/generic/Dummy.scala | 3 +++ .../parallel/benchmarks/generic/Operators.scala | 4 ++++ .../benchmarks/generic/ParallelBenches.scala | 28 ++++++++++++++++++++++ .../benchmarks/hashtables/ParallelHashTables.scala | 18 ++++++++++++++ .../benchmarks/hashtries/ParallelHashTries.scala | 3 +++ 6 files changed, 61 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 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) -- cgit v1.2.3