Если у вас есть ГСЧ, которая зависит от его предыдущего значения (больше всего), и вы пишете его так:
r = Random.new();
for(int i=0; i<100*usersInput; i++)
r.rand();
}
Он не может автоматически распараллеливаться даже умным компилятором.Однако, если вы напишите это так:
for(int i=0; i<usersInput; i++) {
r = Random.new();
[for(int j=0; j<100; j++) {
r.rand();
}] fork
}
Очень умный компилятор может заставить программу работать в usersInput-number-of-thread, каждый из которых должен будет выполнить только 100 итераций вместо usersInput * 100.