Skip to content

Commit 12ce73c

Browse files
committed
Back to random behavior
1 parent ba1fc48 commit 12ce73c

File tree

2 files changed

+3
-10
lines changed

2 files changed

+3
-10
lines changed

include/graphblas/algorithms/simulated_annealing_re.hpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff 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

tests/smoke/simulated_annealing_re_from_mpi.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff 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(

0 commit comments

Comments
 (0)