mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
Merge pull request #312 from i-kanamori/debug_512
add reordring of random number generators in IO
This commit is contained in:
commit
af2301afbb
@ -673,10 +673,15 @@ class BinaryIO {
|
|||||||
nersc_csum,scidac_csuma,scidac_csumb);
|
nersc_csum,scidac_csuma,scidac_csumb);
|
||||||
|
|
||||||
timer.Start();
|
timer.Start();
|
||||||
thread_for(lidx,lsites,{
|
thread_for(lidx,lsites,{ // FIX ME, suboptimal implementation
|
||||||
std::vector<RngStateType> tmp(RngStateCount);
|
std::vector<RngStateType> tmp(RngStateCount);
|
||||||
std::copy(iodata[lidx].begin(),iodata[lidx].end(),tmp.begin());
|
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();
|
timer.Stop();
|
||||||
|
|
||||||
@ -733,7 +738,12 @@ class BinaryIO {
|
|||||||
std::vector<RNGstate> iodata(lsites);
|
std::vector<RNGstate> iodata(lsites);
|
||||||
thread_for(lidx,lsites,{
|
thread_for(lidx,lsites,{
|
||||||
std::vector<RngStateType> tmp(RngStateCount);
|
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());
|
std::copy(tmp.begin(),tmp.end(),iodata[lidx].begin());
|
||||||
});
|
});
|
||||||
timer.Stop();
|
timer.Stop();
|
||||||
|
Loading…
Reference in New Issue
Block a user