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] 使得輸出