File tree Expand file tree Collapse file tree 2 files changed +3
-10
lines changed
include/graphblas/algorithms Expand file tree Collapse file tree 2 files changed +3
-10
lines changed Original file line number Diff line number Diff line change @@ -147,15 +147,14 @@ namespace grb {
147147 std::minstd_rand rng;
148148 std::exponential_distribution< EnergyType > rand ( 1.0 );
149149
150- rng.seed ( seed + s*n_replicas );
150+ rng.seed ( seed + s );
151151 const EnergyType myrand = -rand ( rng );
152152
153153 for ( size_t si = nprocs ; rc == grb::SUCCESS && si > 0 ; --si ){
154154 if ( si-1 == s ){
155155 for ( size_t i = n_replicas - 1 ; i > 0 ; --i ){
156156 const EnergyType de = ( energies[ i ] - energies[ i-1 ]) * (betas[ i ] - betas[ i-1 ]);
157157
158- rng.seed ( seed + s*n_replicas + i );
159158 if ( -rand ( rng ) < de ){
160159 std::swap ( states[i], states[i-1 ] );
161160 std::swap ( energies[i], energies[i-1 ] );
@@ -314,10 +313,6 @@ namespace grb {
314313 for ( size_t i_sweep = 0 ; rc == grb::SUCCESS && i_sweep < n_sweeps ; ++i_sweep ){
315314 for ( size_t j = 0 ; j < n_replicas ; ++j ){
316315
317- const int seedi = i_sweep*n_procs*n_replicas + n_replicas*s + j;
318-
319- std::get<8 >(sweep_data).seed (seedi);
320-
321316 energies[j] += sweep ( states[j], betas[j], sweep_data );
322317 grb::wait ();
323318
Original file line number Diff line number Diff line change @@ -445,23 +445,21 @@ void grbProgram(
445445 }
446446
447447 // seed RNGs (C and C++ engines) using requested seed (hardcoded default 8 if not provided)
448- std::minstd_rand rng ( data_in.seed ); // rng or std::mt19937
448+ std::minstd_rand rng ( data_in.seed + s ); // rng or std::mt19937
449449
450450 // create states storage and initialize with random 1/0 values
451451 const size_t n_replicas = data_in.n_replicas ;
452452 std::vector< grb::Vector< IOType, internal_backend > > states0;
453453 std::vector< grb::Vector< IOType, internal_backend > > states;
454454 std::vector< IOType > rand_data (n);
455- for ( size_t r = 0 ; r < nprocs * n_replicas; ++r ) {
455+ for ( size_t r = 0 ; r < n_replicas; ++r ) {
456456 // initialize with random values
457457 std::uniform_int_distribution< IOType > randint (0 ,1 );
458458 // we use buildvectorUnique with a random set of indices
459459 for ( size_t i = 0 ; i < n; ++i ) {
460460 rand_data[i] = randint ( rng );
461461 }
462462
463- if ( r/n_replicas != s ) continue ;
464-
465463 states.emplace_back ( n );
466464 states0.emplace_back ( n );
467465 rc = rc ? rc : grb::buildVector (
You can’t perform that action at this time.
0 commit comments