Skip to content

Commit

Permalink
Merge pull request #312 from i-kanamori/debug_512
Browse files Browse the repository at this point in the history
add reordring of random number generators in IO
  • Loading branch information
paboyle authored Oct 13, 2020
2 parents f98856a + 97db2b8 commit af2301a
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions Grid/parallelIO/BinaryIO.h
Original file line number Diff line number Diff line change
Expand Up @@ -673,10 +673,15 @@ class BinaryIO {
nersc_csum,scidac_csuma,scidac_csumb);

timer.Start();
thread_for(lidx,lsites,{
thread_for(lidx,lsites,{ // FIX ME, suboptimal implementation
std::vector<RngStateType> tmp(RngStateCount);
std::copy(iodata[lidx].begin(),iodata[lidx].end(),tmp.begin());
parallel_rng.SetState(tmp,lidx);
Coordinate lcoor;
grid->LocalIndexToLocalCoor(lidx, lcoor);
int o_idx=grid->oIndex(lcoor);
int i_idx=grid->iIndex(lcoor);
int gidx=parallel_rng.generator_idx(o_idx,i_idx);
parallel_rng.SetState(tmp,gidx);
});
timer.Stop();

Expand Down Expand Up @@ -733,7 +738,12 @@ class BinaryIO {
std::vector<RNGstate> iodata(lsites);
thread_for(lidx,lsites,{
std::vector<RngStateType> tmp(RngStateCount);
parallel_rng.GetState(tmp,lidx);
Coordinate lcoor;
grid->LocalIndexToLocalCoor(lidx, lcoor);
int o_idx=grid->oIndex(lcoor);
int i_idx=grid->iIndex(lcoor);
int gidx=parallel_rng.generator_idx(o_idx,i_idx);
parallel_rng.GetState(tmp,gidx);
std::copy(tmp.begin(),tmp.end(),iodata[lidx].begin());
});
timer.Stop();
Expand Down

0 comments on commit af2301a

Please sign in to comment.