J'ai besoin d'un générateur de nombres aléatoires déterministe qui conserve une sorte de distribution (par exemple uniforme ou normale) qui fonctionne sur un cluster. Boost :: Random répond à la plupart de ces exigences.Distribué aléatoirement sur le cluster
Est-il possible de l'utiliser dans un cluster tout en conservant la distribution?
S'il y avait un moyen efficace de faire avancer le générateur de nombres, ce serait idéal, mais je ne peux pas trouver une telle fonction. Évidemment, je peux appeler la fonction plusieurs fois en boucle, mais je devrai faire cela plusieurs milliers de fois (peut-être beaucoup plus) sur chaque nœud.
Une recommandation sur la façon dont je peux y parvenir?
Je ne peux pas penser à des distributions aléatoires communes pour lesquelles chaque nœud ayant son propre RNG ne fonctionnerait pas. Il semble que le PO puisse juste être en train de surcharger le problème. Maintenant, s'ils voulaient quelque chose de plus étrange comme une distribution de Poisson, alors tous les bits sont éteints. – McBeth
Il vous manque quelque chose d'évident. Supposons que vous ayez deux machines dans votre cluster et que par malchance, les deux machines commencent avec la même graine. Votre RNG combiné n'est plus si aléatoire. Maintenant, supposons que les graines soient éteintes par un ou trois - les erreurs sont toujours là, mais ce n'est pas évident si vous remarquez que les nombres générés par la première machine arrivent à être la même séquence que celle générée par la seconde machine, décalée par un ou trois. – kfmfe04
@ kfmfe04: Je n'ai pas manqué ça, cependant. Randomness implique la possibilité de répéter des séquences de temps en temps. De plus, si vous connaissez les graines, alors le patron est prévisible, ce qui a le même effet si deux des graines sont identiques ou non. –