Я использую в моей программе равномерное распределение буста между 0 и 1:
#include <boost/random/uniform_01.hpp>
#include <boost/random.hpp>
static boost::mt19937 rng;
static boost::uniform_01<boost::mt19937&> zeroone(rng);
zeroone()
функция вызывается внутри цикла for, который я хотел бы провести параллельно, используя OpenMP.
for ( int index = 0 ; index < 4096 ; index++ ) {
if ( node[ index ] == false ) {
if ( zeroone() < 0.03 )
node[ index ] = true;
}
}
Вопрос, возможно ли использовать OpenMP для параллели for-loop
и не повредить генератор псевдослучайных чисел с равномерным распределением?
например. Можно ли определить для первого ядра начальное число, а для второго - соответствующее начальное число, которого генератор псевдослучайных чисел первого ядра достигнет через 6 раз?
Привет