5
有一個HashMap
的實現,在Haskell
中,但我無法找到它的並行版本。有必要解決下面的問題。haskell中的並行散列表
說,我有兩個包含HashMap HashMap a b
,我想與條件的工會吧,現在我用unionWith
功能,但問題是,我a
鍵的等價很長的過程(這是一個圖)。所以我想要並行執行它。我該怎麼做?
有一個HashMap
的實現,在Haskell
中,但我無法找到它的並行版本。有必要解決下面的問題。haskell中的並行散列表
說,我有兩個包含HashMap HashMap a b
,我想與條件的工會吧,現在我用unionWith
功能,但問題是,我a
鍵的等價很長的過程(這是一個圖)。所以我想要並行執行它。我該怎麼做?
您可以創建一個newtype
周圍HashMap
,然後定義一個新的Eq
實例,它是並行,你喜歡用Control.Parallel
。不幸的是,你必須自己編寫所有的代碼,我不認爲有任何現成的並行實現。
import Control.Parallel
newtype ParHashMap k v = ParHashMap { unPar :: HashMap k v }
instance (Eq k, Eq v) => Eq (ParHashMap k v) where
ParHashMap hm1 == ParHashMap hm2 = ...
我不知道你使用(我推薦unordered-containers
)的HashMap
,所以我不能寫Eq
實例,但它應該是相當簡單的評價並行的每個節點的平等。