mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-09 21:50:45 +01:00
thread_for caused the problems - slow for loop for now
This commit is contained in:
parent
8415e23fc6
commit
bf62ec163d
@ -96,10 +96,9 @@ void BaryonUtils<FImpl>::ContractBaryons(const PropagatorField &q1_src,
|
|||||||
auto v2 = q2_src.View();
|
auto v2 = q2_src.View();
|
||||||
auto v3 = q3_src.View();
|
auto v3 = q3_src.View();
|
||||||
|
|
||||||
std::cout << "wick contract " << wick_contraction << std::endl;
|
|
||||||
int count=0;
|
|
||||||
// accelerator_for(ss, grid->oSites(), grid->Nsimd(), {
|
// accelerator_for(ss, grid->oSites(), grid->Nsimd(), {
|
||||||
thread_for(ss,grid->oSites(),{
|
//thread_for(ss,grid->oSites(),{
|
||||||
|
for(int ss=0; ss < grid->oSites(); ss++){
|
||||||
|
|
||||||
auto D1 = v1[ss];
|
auto D1 = v1[ss];
|
||||||
auto D2 = v2[ss];
|
auto D2 = v2[ss];
|
||||||
@ -111,10 +110,6 @@ void BaryonUtils<FImpl>::ContractBaryons(const PropagatorField &q1_src,
|
|||||||
auto gD3 = GammaB * D3;
|
auto gD3 = GammaB * D3;
|
||||||
|
|
||||||
vobj result=Zero();
|
vobj result=Zero();
|
||||||
/* if (count<10){
|
|
||||||
std::cout << "outside epsilon " << count << std::endl;
|
|
||||||
count++;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
for (int ie_src=0; ie_src < 6 ; ie_src++){
|
for (int ie_src=0; ie_src < 6 ; ie_src++){
|
||||||
int a_src = epsilon[ie_src][0]; //a
|
int a_src = epsilon[ie_src][0]; //a
|
||||||
@ -182,6 +177,6 @@ void BaryonUtils<FImpl>::ContractBaryons(const PropagatorField &q1_src,
|
|||||||
}
|
}
|
||||||
vbaryon_corr[ss] = result;
|
vbaryon_corr[ss] = result;
|
||||||
|
|
||||||
} );//end loop over lattice sites
|
} // );//end loop over lattice sites
|
||||||
}
|
}
|
||||||
NAMESPACE_END(Grid);
|
NAMESPACE_END(Grid);
|
||||||
|
@ -52,11 +52,10 @@ public:
|
|||||||
std::string, q3_src,
|
std::string, q3_src,
|
||||||
std::string, GammaA,
|
std::string, GammaA,
|
||||||
std::string, GammaB,
|
std::string, GammaB,
|
||||||
// char[], quarks_snk,
|
|
||||||
// char[], quarks_src,
|
|
||||||
std::string, quarks_snk,
|
std::string, quarks_snk,
|
||||||
std::string, quarks_src,
|
std::string, quarks_src,
|
||||||
int, parity,
|
int, parity,
|
||||||
|
std::string, sink,
|
||||||
std::string, output);
|
std::string, output);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -67,6 +66,8 @@ public:
|
|||||||
FERM_TYPE_ALIASES(FImpl1, 1);
|
FERM_TYPE_ALIASES(FImpl1, 1);
|
||||||
FERM_TYPE_ALIASES(FImpl2, 2);
|
FERM_TYPE_ALIASES(FImpl2, 2);
|
||||||
FERM_TYPE_ALIASES(FImpl3, 3);
|
FERM_TYPE_ALIASES(FImpl3, 3);
|
||||||
|
BASIC_TYPE_ALIASES(ScalarImplCR, Scalar);
|
||||||
|
SINK_TYPE_ALIASES(Scalar);
|
||||||
class Result: Serializable
|
class Result: Serializable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -105,7 +106,7 @@ TBaryon<FImpl1, FImpl2, FImpl3>::TBaryon(const std::string name)
|
|||||||
template <typename FImpl1, typename FImpl2, typename FImpl3>
|
template <typename FImpl1, typename FImpl2, typename FImpl3>
|
||||||
std::vector<std::string> TBaryon<FImpl1, FImpl2, FImpl3>::getInput(void)
|
std::vector<std::string> TBaryon<FImpl1, FImpl2, FImpl3>::getInput(void)
|
||||||
{
|
{
|
||||||
std::vector<std::string> input = {par().q1_src, par().q2_src, par().q3_src};
|
std::vector<std::string> input = {par().q1_src, par().q2_src, par().q3_src, par().sink};
|
||||||
|
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
@ -135,49 +136,26 @@ void TBaryon<FImpl1, FImpl2, FImpl3>::execute(void)
|
|||||||
<< " ) and parity " << par().parity << "." << std::endl;
|
<< " ) and parity " << par().parity << "." << std::endl;
|
||||||
|
|
||||||
auto &q1_src = envGet(PropagatorField1, par().q1_src);
|
auto &q1_src = envGet(PropagatorField1, par().q1_src);
|
||||||
LOG(Message) << "1" << std::endl;
|
|
||||||
auto &q2_src = envGet(PropagatorField2, par().q2_src);
|
auto &q2_src = envGet(PropagatorField2, par().q2_src);
|
||||||
auto &q3_src = envGet(PropagatorField3, par().q3_src);
|
auto &q3_src = envGet(PropagatorField3, par().q3_src);
|
||||||
envGetTmp(LatticeComplex, c);
|
envGetTmp(LatticeComplex, c);
|
||||||
Result result;
|
Result result;
|
||||||
int nt = env().getDim(Tp);
|
int nt = env().getDim(Tp);
|
||||||
result.corr.resize(nt);
|
result.corr.resize(nt);
|
||||||
LOG(Message) << "2" << std::endl;
|
|
||||||
std::vector<Gamma::Algebra> ggA = strToVec<Gamma::Algebra>(par().GammaA);
|
std::vector<Gamma::Algebra> ggA = strToVec<Gamma::Algebra>(par().GammaA);
|
||||||
LOG(Message) << "3" << std::endl;
|
|
||||||
Gamma GammaA(ggA[0]);
|
Gamma GammaA(ggA[0]);
|
||||||
LOG(Message) << "4" << std::endl;
|
|
||||||
std::vector<Gamma::Algebra> ggB = strToVec<Gamma::Algebra>(par().GammaB);
|
std::vector<Gamma::Algebra> ggB = strToVec<Gamma::Algebra>(par().GammaB);
|
||||||
Gamma GammaB(ggB[0]);
|
Gamma GammaB(ggB[0]);
|
||||||
std::vector<TComplex> buf;
|
std::vector<TComplex> buf;
|
||||||
const int parity {par().parity};
|
const int parity {par().parity};
|
||||||
LOG(Message) << "5" << std::endl;
|
|
||||||
const char * quarks_snk{par().quarks_snk.c_str()};
|
const char * quarks_snk{par().quarks_snk.c_str()};
|
||||||
LOG(Message) << "6" << std::endl;
|
|
||||||
const char * quarks_src{par().quarks_src.c_str()};
|
const char * quarks_src{par().quarks_src.c_str()};
|
||||||
LOG(Message) << "quarks_snk " << quarks_snk[0] << quarks_snk[1] << quarks_snk[2] << std::endl;
|
|
||||||
LOG(Message) << "GammaA " << (GammaA.g) << std::endl;
|
|
||||||
LOG(Message) << "GammaB " << (GammaB.g) << std::endl;
|
|
||||||
|
|
||||||
GridCartesian *Ugrid = SpaceTimeGrid::makeFourDimGrid(GridDefaultLatt(),GridDefaultSimd(Nd,vComplex::Nsimd()),GridDefaultMpi());
|
BaryonUtils<FIMPL>::ContractBaryons(q1_src,q2_src,q3_src,GammaA,GammaB,quarks_snk,quarks_src,parity,c);
|
||||||
LatticePropagator q(Ugrid);
|
|
||||||
GridParallelRNG RNG4(Ugrid);
|
|
||||||
gaussian(RNG4,q);
|
|
||||||
Gamma gA = Gamma(Gamma::Algebra::Identity);
|
|
||||||
Gamma gB = Gamma(Gamma::Algebra::Gamma5);
|
|
||||||
int p=1;
|
|
||||||
char * om = "sss";
|
|
||||||
LatticeComplex c2(Ugrid);
|
|
||||||
|
|
||||||
//BaryonUtils<FIMPL>::ContractBaryons(q1_src,q2_src,q3_src,GammaA,GammaB,quarks_snk,quarks_src,parity,c);
|
//sliceSum(c,buf,Tp);
|
||||||
BaryonUtils<FIMPL>::ContractBaryons(q,q,q,gA,gB,om,om,p,c);
|
SinkFnScalar &sink = envGet(SinkFnScalar, par().sink);
|
||||||
std::vector<Gamma> GA={gA};
|
buf = sink(c);
|
||||||
std::vector<Gamma> GB={gB};
|
|
||||||
//A2Autils<FIMPL>::ContractFourQuarkColourMix(q,q,GA,GB,c,c2);
|
|
||||||
LOG(Message) << "survived ContractBaryons" << std::endl;
|
|
||||||
|
|
||||||
sliceSum(c,buf,Tp);
|
|
||||||
LOG(Message) << "survived sliceSum" << std::endl;
|
|
||||||
|
|
||||||
for (unsigned int t = 0; t < buf.size(); ++t)
|
for (unsigned int t = 0; t < buf.size(); ++t)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user