據我了解,建議在運行具有彼此獨立的亂數生成器的并行行程時使用 numpy.random.SeedSequence() 。使用 python 多處理庫時,這似乎很容易。但是,我想不出一種方法來將此功能與 GNU 并行使用。有沒有一種巧妙的方法來確保使用 GNU 并行運行 python 腳本生成獨立的亂數?
uj5u.com熱心網友回復:
您在評論中關于使用行程 ID 的想法確實是一個有效的想法。問題是您希望種子中有足夠的熵 -偽亂數生成器的輸出完全由其種子定義。使用開始時間作為種子會隨著時間的推移給出不同的輸出,但對于并行作業來說通常是相同的輸出。
僅使用行程 ID 也不是一個好主意,因為它通常是一個相當小的數字。那里通常只有 16 或 32 位資料。將它與時間相結合會增加熵。
現在您提到行程 ID 可能是“線性相關的”——在 Linux 上具有遞增的行程 ID 是很常見的。這本身并不是一個真正的問題。任何體面的 PRNG 都應該足夠強大來處理這些種子。
一個值得注意的例外是密碼學。在這種情況下,各種 PRNG 的獨立性可能是一個更大的問題,但我們需要更多細節來確定。這就是為什么常見的建議是使用現有的加密庫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/424171.html
標籤:Python 麻木的 并行处理 随机种子 gnu 并行
上一篇:回圈遍歷numpy陣列產生typerror輸出:只有整數標量陣列可以轉換為標量索引
下一篇:在python中合并資料類
