Сверхбыстрая потокобезопасная функция rand в C++C++

Программы на C++. Форум разработчиков
Anonymous
Сверхбыстрая потокобезопасная функция rand в C++

Сообщение Anonymous »

Код: Выделить всё

void NetClass::Modulate(vector  & synapses )
{
int size = synapses.size();
int split = 200 * 0.5;

for(int w=0; w < size; w++)
if(synapses[w].active)
synapses[w].rmod = ((rand_r(seedp) % 200 - split ) / 1000.0);
}
Функция rand_r(seedp) серьезно мешает моей программе. В частности, это замедляет меня в 3 раза при последовательном запуске и в 4,4 раза при работе на 16 ядрах. rand() — это не вариант, потому что он еще хуже.
Могу ли я что-нибудь сделать, чтобы упростить это? Если это будет иметь значение, я думаю, что смогу потерпеть потерю с точки зрения статистической случайности. Можно ли предварительно создать (перед выполнением) список случайных чисел, а затем загрузить его в стеки потоков?

Подробнее здесь: https://stackoverflow.com/questions/828 ... d-function

Вернуться в «C++»