parallel-collections

    2热度

    1回答

    以下进程函数是我的工作函数。我需要让它访问一些创建/获取成本很高的类。在库中有没有针对线程局部变量的标准机制?或者我必须自己编写一个对象池管理器? object Start extends App { def progress { val current = counter.getAndIncrement if(current % 100 == 0) {

    8热度

    1回答

    根据平行收藏和互联网上搜索的文件,并行收集应该与意见的工作,但我不是 coll.par.view.someChainedIterations 和 coll.view.par.someChainedIterations 看来之间的差别清晰像coll.view.par失去了收藏的viewness: scala> val coll = 1 to 3 coll: scala.collection

    1热度

    1回答

    我试图使它可选运行map操作顺序或并行,例如使用下面的代码调用上的并行集合图: val runParallel = true val theList = List(1,2,3,4,5) (if(runParallel) theList.par else theList) map println //Doesn't run in parallel 什么我注意到的是“地图”操作并不像我预期的那

    5热度

    2回答

    The easiest way to convert a Java Collection to a Scala equivalent is using JavaConversions, since Scala 2.8.创建Scala的并行集合。这些隐式defs返回包含Java Collection的包装器。 的Scala 2.9引入平行集合,其中在收集操作可并行执行,其结果后收集。这是很容易实现的

    0热度

    1回答

    我注意到,自从Scala 2.9。*以来,setMaximumPoolSize方法似乎从ForkJoinPool消失了,它看起来像是我想要的。大多数关于限制Scala平行集合中并行性的讨论围绕着同一个类的setParallelism方法(它也消失了,但对我来说不是那么严重),但在我的情况下,并行任务可以执行外部IO,并且经常会阻止它。 ForkJoinPool然后在这种情况下启动更多的线程,并有效

    14热度

    2回答

    是否斯卡拉提供一种方式来执行并行映射操作为标准语言的一部分? 例如,给定: scala> val a = List((1,2), (3,4), (3,6)) a: List[(Int, Int)] = List((1,2), (3,4), (3,6)) 我可以这样做: scala> a.map(tup => tup._1 + tup._2) res0: List[Int] = List(3

    0热度

    1回答

    假设我有一个〜10K元素的数组,我需要处理数组中的所有元素。我想以这种方式处理它们,只有K元素被并行处理。我使用Scala 2.9。我试过平行收集(见下文),但我看到更多比K元素并行处理。 import collection.parallel.ForkJoinTasks.defaultForkJoinPool._ val old = getParallelism setParallelis

    11热度

    2回答

    是否是一个好主意?假设我有一个比较大的(几百万项左右的)字符串列表。运行是这样的: val updatedList = myList.par.map(someAction).toList 还是会运行...par.map(,这样之前的列表是组一个更好的主意: val numberOfCores = Runtime.getRuntime.availableProcessors val updat

    1热度

    1回答

    ParMap(在Scala 2.9中)似乎没有.values方法。为什么会这样,如果我特别热衷于维护并行处理链,如何能够解决这个问题? myParSeq.collect{case i: Interesting => i}.groupBy(_.content).values. ...

    3热度

    1回答

    我有一个Iterable需要执行的“工作单元”,没有特定的顺序,并且可以很容易地并行运行而不会相互干扰。 不幸的是,一次运行太多的内​​存将超过我的可用内存,所以我需要确保在任何给定的时间只有少数人同时运行。 在最基本的,我想这种类型签名的功能: parMap[A, B](xs: Iterator[A], f: A => B, chunkSize: Int): Iterator[B] 使得输出