mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-09 21:50:45 +01:00
thread loops
This commit is contained in:
parent
20359ca15f
commit
0074ef7f69
@ -113,7 +113,7 @@ class BinaryIO {
|
|||||||
{
|
{
|
||||||
uint32_t nersc_csum_thr = 0;
|
uint32_t nersc_csum_thr = 0;
|
||||||
|
|
||||||
thread_loop_in_region( (uint64_t local_site = 0; local_site < lsites; local_site++),
|
thread_for_in_region( local_site, lsites,
|
||||||
{
|
{
|
||||||
uint32_t *site_buf = (uint32_t *)&fbuf[local_site];
|
uint32_t *site_buf = (uint32_t *)&fbuf[local_site];
|
||||||
for (uint64_t j = 0; j < size32; j++)
|
for (uint64_t j = 0; j < size32; j++)
|
||||||
@ -148,7 +148,8 @@ class BinaryIO {
|
|||||||
uint32_t scidac_csumb_thr=0;
|
uint32_t scidac_csumb_thr=0;
|
||||||
uint32_t site_crc=0;
|
uint32_t site_crc=0;
|
||||||
|
|
||||||
thread_loop_in_region( (uint64_t local_site=0;local_site<lsites;local_site++),{
|
thread_for_in_region( local_site, lsites,
|
||||||
|
{
|
||||||
|
|
||||||
uint32_t * site_buf = (uint32_t *)&fbuf[local_site];
|
uint32_t * site_buf = (uint32_t *)&fbuf[local_site];
|
||||||
|
|
||||||
@ -195,7 +196,7 @@ class BinaryIO {
|
|||||||
{
|
{
|
||||||
uint32_t * f = (uint32_t *)file_object;
|
uint32_t * f = (uint32_t *)file_object;
|
||||||
uint64_t count = bytes/sizeof(uint32_t);
|
uint64_t count = bytes/sizeof(uint32_t);
|
||||||
thread_loop( (uint64_t i=0;i<count;i++),{
|
thread_for( i, count, {
|
||||||
f[i] = ntohl(f[i]);
|
f[i] = ntohl(f[i]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -206,7 +207,7 @@ class BinaryIO {
|
|||||||
uint32_t f;
|
uint32_t f;
|
||||||
|
|
||||||
uint64_t count = bytes/sizeof(uint32_t);
|
uint64_t count = bytes/sizeof(uint32_t);
|
||||||
thread_loop( (uint64_t i=0;i<count;i++),{
|
thread_for(i,count,{
|
||||||
f = fp[i];
|
f = fp[i];
|
||||||
// got network order and the network to host
|
// got network order and the network to host
|
||||||
f = ((f&0xFF)<<24) | ((f&0xFF00)<<8) | ((f&0xFF0000)>>8) | ((f&0xFF000000UL)>>24) ;
|
f = ((f&0xFF)<<24) | ((f&0xFF00)<<8) | ((f&0xFF0000)>>8) | ((f&0xFF000000UL)>>24) ;
|
||||||
@ -219,7 +220,7 @@ class BinaryIO {
|
|||||||
{
|
{
|
||||||
uint64_t * f = (uint64_t *)file_object;
|
uint64_t * f = (uint64_t *)file_object;
|
||||||
uint64_t count = bytes/sizeof(uint64_t);
|
uint64_t count = bytes/sizeof(uint64_t);
|
||||||
thread_loop( (uint64_t i=0;i<count;i++),{
|
thread_for( i, count, {
|
||||||
f[i] = Grid_ntohll(f[i]);
|
f[i] = Grid_ntohll(f[i]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -231,7 +232,7 @@ class BinaryIO {
|
|||||||
uint64_t f,g;
|
uint64_t f,g;
|
||||||
|
|
||||||
uint64_t count = bytes/sizeof(uint64_t);
|
uint64_t count = bytes/sizeof(uint64_t);
|
||||||
thread_loop( (uint64_t i=0;i<count;i++),{
|
thread_for( i, count, {
|
||||||
f = fp[i];
|
f = fp[i];
|
||||||
// got network order and the network to host
|
// got network order and the network to host
|
||||||
g = ((f&0xFF)<<24) | ((f&0xFF00)<<8) | ((f&0xFF0000)>>8) | ((f&0xFF000000UL)>>24) ;
|
g = ((f&0xFF)<<24) | ((f&0xFF00)<<8) | ((f&0xFF0000)>>8) | ((f&0xFF000000UL)>>24) ;
|
||||||
@ -551,7 +552,7 @@ class BinaryIO {
|
|||||||
GridStopWatch timer;
|
GridStopWatch timer;
|
||||||
timer.Start();
|
timer.Start();
|
||||||
|
|
||||||
thread_loop( (uint64_t x=0;x<lsites;x++), { munge(iodata[x], scalardata[x]); });
|
thread_for(x,lsites, { munge(iodata[x], scalardata[x]); });
|
||||||
|
|
||||||
vectorizeFromLexOrdArray(scalardata,Umu);
|
vectorizeFromLexOrdArray(scalardata,Umu);
|
||||||
grid->Barrier();
|
grid->Barrier();
|
||||||
@ -589,7 +590,7 @@ class BinaryIO {
|
|||||||
GridStopWatch timer; timer.Start();
|
GridStopWatch timer; timer.Start();
|
||||||
unvectorizeToLexOrdArray(scalardata,Umu);
|
unvectorizeToLexOrdArray(scalardata,Umu);
|
||||||
|
|
||||||
thread_loop( (uint64_t x=0;x<lsites;x++), { munge(scalardata[x],iodata[x]); });
|
thread_for(x, lsites, { munge(scalardata[x],iodata[x]); });
|
||||||
|
|
||||||
grid->Barrier();
|
grid->Barrier();
|
||||||
timer.Stop();
|
timer.Stop();
|
||||||
@ -661,7 +662,7 @@ class BinaryIO {
|
|||||||
nersc_csum,scidac_csuma,scidac_csumb);
|
nersc_csum,scidac_csuma,scidac_csumb);
|
||||||
|
|
||||||
timer.Start();
|
timer.Start();
|
||||||
thread_loop( (uint64_t lidx=0;lidx<lsites;lidx++), {
|
thread_for(lidx,lsites,{
|
||||||
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);
|
parallel_rng.SetState(tmp,lidx);
|
||||||
@ -719,11 +720,11 @@ class BinaryIO {
|
|||||||
|
|
||||||
timer.Start();
|
timer.Start();
|
||||||
std::vector<RNGstate> iodata(lsites);
|
std::vector<RNGstate> iodata(lsites);
|
||||||
thread_loop( (uint64_t lidx=0;lidx<lsites;lidx++),{
|
thread_for(lidx,lsites,{
|
||||||
std::vector<RngStateType> tmp(RngStateCount);
|
std::vector<RngStateType> tmp(RngStateCount);
|
||||||
parallel_rng.GetState(tmp,lidx);
|
parallel_rng.GetState(tmp,lidx);
|
||||||
std::copy(tmp.begin(),tmp.end(),iodata[lidx].begin());
|
std::copy(tmp.begin(),tmp.end(),iodata[lidx].begin());
|
||||||
});
|
});
|
||||||
timer.Stop();
|
timer.Stop();
|
||||||
|
|
||||||
IOobject(w,grid,iodata,file,offset,format,BINARYIO_WRITE|BINARYIO_LEXICOGRAPHIC,
|
IOobject(w,grid,iodata,file,offset,format,BINARYIO_WRITE|BINARYIO_LEXICOGRAPHIC,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user