在來自EPFL的並行編程課程中,提到了四種用於數據並行的抽象:Iterator
,Builder
,Combiner
和Splitter
。斯卡拉中的Builder,Combiner和Splitter是什麼?
我熟悉Iterator
,但從未使用過其他三種。我已經看到其他Builder
,Combiner
和Splitter
包scala.collection
包裝。但是,我已經知道如何在實際開發中使用它們,特別是如何將它們與List
,Array
,ParArray
等其他集合配合使用。請問誰能給我一些指導和示例?
謝謝!
不幸的是,我不認爲他們在現實世界中看到很多用處。並行收集庫處於非常尷尬的境地:對於真正的大型數據集,您可以使用分佈式處理框架(如Spark)在多臺機器上處理它們。對於單機,您需要足夠大的數據集來克服跨不同線程/內核的同步開銷(請參閱[本文])(https://www.jayway.com/2011/10/02/experimenting-with-scala -parallel-集合/))。對於這些特殊情況,使用流式方法在內存使用方面會更好。 –
並非每個庫中的每個組件都應該被使用或應該具有實際用途。一些(實際上大多數)組件應該是永遠不會與之交互的。 –