Я использую некоторые случайные числа в качестве начальных значений для моих расчетов по метаэвристической оптимизации.Я запускаю одну и ту же программу оптимизации на разных компьютерах с использованием MPI.Я неожиданно получил много таких же результатов.Например, я использую 40 хост-компьютеров, результаты имеют несколько разных значений.Почти 6-7 значений одинаковы.На самом деле мои результаты могут быть похожими, но они не должны быть одинаковыми, потому что я даю им случайные числа в качестве инициалов в начале программы (в моем примере выше я должен получить 40 разных значений).Если я запускаю программу несколько раз и последовательно на одном и том же компьютере, она дает разные результаты, как и должно быть.
Я подозреваю, что эта ситуация вызвана недостаточным качеством генерации случайных чисел.Как я могу решить эту проблему.Я открываю другие идеи, могут быть разные причины этой проблемы.
PS Я использую srand( (unsigned) time(NULL) )
один раз в начале моей программы для генерации случайных чисел.Затем я генерирую свои случайные числа в диапазоне [0, 1], используя (float)rand()/32767
Один из примеров моих результатов, на которые я жаловался:
15.42161751
19.83328438
3.43446541
23.50453377
23.50453377
3.43446541
19.83328438
23.50453377
3.43446541
7.52127457
7.52127457
23.50453377
7.52127457
7.52127457
23.50453377
19.83328438
19.83328438
19.83328438
7.52127457
15.42161751
3.43446541
19.83328438
19.83328438
15.42161751
23.50453377
23.50453377
5.29145241
19.83328438
19.83328438
19.83328438
19.83328438
7.52127457
23.50453377
3.43446541
19.83328438
23.50453377
7.52127457
3.43446541
7.52127457
5.29145241