MonteCarlo paralelo: reprodutibilidade ou aleatoriedade real?

Estou preparando um exame universitário em computação paralela. O principal objetivo é acelerar o máximo possível uma simulação de Montecarlo sobre a deriva de elétrons no campo magnético da terra. Eu já desenvolvi algo com duas camadas de paralelização:

MPI usado para executar o código te em várias máquinasOpenMP para executar simulação paralela dentro do único computador

Agora vem a pergunta: eu gostaria de manter sob demanda a execução da tarefa. O computador mais rápido deve ser capaz de executar mais trabalhos, os mais lentos. A partição do problema é feita através do ciclo mestre-trabalhador, portanto, não há luta real para alcançar esse resultado.

Como o número de tarefas (um bloco de n elétrons a serem simulados) executadas por um trabalhador não é definido previamente, tenho dois caminhos a seguir:

cada encadeamento em cada trabalhador possui um RNG próprio, inicializado com semente gerada aleatoriamente (método de geração diferente). O desequilíbrio do cluster alterará os resultados, mas nessa abordagem o resultado é o mais casual possível.

todo elétron tem sua própria semente, garantindo a reprodutibilidade da simulação, apesar de qual trabalhador executar a tarefa única. Deve ter um RNG melhor.

Vamos enquete sobre isso. Qual a sua sugestão?

Diverta-se

gf

questionAnswers(1)

yourAnswerToTheQuestion