Распределено случайным образом по кластеру - PullRequest
0 голосов
/ 27 июля 2010

Мне нужен детерминированный генератор случайных чисел, который поддерживает какое-то распределение (например, равномерное или нормальное), которое работает в кластере.

Boost :: Random удовлетворяет большинству этих требований.Можно ли как-нибудь использовать его в кластере, поддерживая распределение?

Если бы существовал эффективный способ продвижения генератора чисел, это было бы идеально, однако я не могу найти такую ​​функцию.Очевидно, что я могу вызывать функцию несколько раз в цикле, но мне нужно будет делать это несколько тысяч раз (возможно, намного больше) на каждом узле.

Любая рекомендация о том, как мне этого добиться?

Ответы [ 2 ]

2 голосов
/ 27 июля 2010

Я могу упустить что-то очевидное здесь, но не могли бы вы просто дать RNG каждого кластера различное (псевдо) случайно выбранное начальное число?Я думаю, что это даст вам равномерное распределение по всем кластерам.

Альтернативой может быть распределение всех случайных чисел с одного компьютера, который действует как сервер ГСЧ, но это, вероятно, будет медленным.

0 голосов
/ 15 ноября 2011

В зависимости от того, насколько вам нужен ваш PRNG, вам, возможно, придется осторожно наступить; есть определенно подводные камни в использовании нескольких PRNG.

В частности, есть специалисты по статистике, которые специализируются на исследовании параллельных алгоритмов для PRNG.

Чтобы начать думать о некоторых из этих проблем, вы можете взглянуть на статью вроде this .

Как и все проблемы, я рекомендую вам сначала стрелять, чтобы все получилось правильно, а затем быстро запустить.

...