From 948d16fb06e6436f58bfbf9d9c0a48181efc1263 Mon Sep 17 00:00:00 2001 From: Chulwoo Jung Date: Mon, 12 Feb 2024 21:23:36 -0500 Subject: [PATCH] Laplace benchmark added --- benchmarks/Benchmark_ITT.cc | 185 ++---------------------------------- 1 file changed, 6 insertions(+), 179 deletions(-) diff --git a/benchmarks/Benchmark_ITT.cc b/benchmarks/Benchmark_ITT.cc index 7413a5b8..91ecc9c9 100644 --- a/benchmarks/Benchmark_ITT.cc +++ b/benchmarks/Benchmark_ITT.cc @@ -642,178 +642,6 @@ public: return mflops_best; } - static double LaplaceNo(int L) - { - double mflops; - double mflops_best = 0; - double mflops_worst= 0; - std::vector mflops_all; - - /////////////////////////////////////////////////////// - // Set/Get the layout & grid size - /////////////////////////////////////////////////////// - int threads = GridThread::GetThreads(); - Coordinate mpi = GridDefaultMpi(); assert(mpi.size()==4); - Coordinate local({L,L,L,L}); - Coordinate latt4({local[0]*mpi[0],local[1]*mpi[1],local[2]*mpi[2],local[3]*mpi[3]}); - - GridCartesian * TmpGrid = SpaceTimeGrid::makeFourDimGrid(latt4, - GridDefaultSimd(Nd,vComplex::Nsimd()), - GridDefaultMpi()); - uint64_t NP = TmpGrid->RankCount(); - uint64_t NN = TmpGrid->NodeCount(); - NN_global=NN; - uint64_t SHM=NP/NN; - - - ///////// Welcome message //////////// - std::cout< seeds4({1,2,3,4}); - GridParallelRNG RNG4(FGrid); RNG4.SeedFixedIntegers(seeds4); - std::cout << GridLogMessage << "Initialised RNGs" << std::endl; - - RealD mass=0.1; - RealD c1=9.0/8.0; - RealD c2=-1.0/24.0; - RealD u0=1.0; - - typedef ImprovedStaggeredFermionF Action; - typedef typename Action::FermionField Fermion; - typedef LatticeGaugeFieldF Gauge; - - typedef typename PeriodicGimplF::Field GaugeFieldF; - typedef typename PeriodicGimplF::LinkField GaugeLinkFieldF; - - Gauge Umu(FGrid); SU::HotConfiguration(RNG4,Umu); - - typename Action::ImplParams params; - Action Ds(Umu,Umu,*FGrid,*FrbGrid,mass,c1,c2,u0,params); - - ///////// Source preparation //////////// - Fermion src (FGrid); random(RNG4,src); - Fermion src_e (FrbGrid); - Fermion src_o (FrbGrid); - Fermion r_e (FrbGrid); - Fermion r_o (FrbGrid); - Fermion r_eo (FGrid); - - { - - pickCheckerboard(Even,src_e,src); - pickCheckerboard(Odd,src_o,src); - CovariantAdjointLaplacianStencil LapStencilF(FGrid); - QuadLinearOperator,GaugeLinkFieldF> QuadOpF(LapStencilF,c2,c1,1.); - - const int num_cases = 4; - std::string fmt("G/S/C ; G/O/C ; G/S/S ; G/O/S "); - - controls Cases [] = { - { StaggeredKernelsStatic::OptGeneric , StaggeredKernelsStatic::CommsThenCompute ,CartesianCommunicator::CommunicatorPolicyConcurrent }, - { StaggeredKernelsStatic::OptGeneric , StaggeredKernelsStatic::CommsAndCompute ,CartesianCommunicator::CommunicatorPolicyConcurrent }, - { StaggeredKernelsStatic::OptGeneric , StaggeredKernelsStatic::CommsThenCompute ,CartesianCommunicator::CommunicatorPolicySequential }, - { StaggeredKernelsStatic::OptGeneric , StaggeredKernelsStatic::CommsAndCompute ,CartesianCommunicator::CommunicatorPolicySequential } - }; - - for(int c=0;c(Umu, 0); - - SU::HotConfiguration(RNG4,Umu); - LapStencilF.GaugeImport(Umu); - - GaugeLinkFieldF r_l(FGrid); - - std::cout<Barrier(); - for(int i=0;i CG(1e-7,10000,false); - - FGrid->Barrier(); - double t1=usecond(); - uint64_t ncall = 500; - - FGrid->Broadcast(0,&ncall,sizeof(ncall)); - - // std::cout << GridLogMessage << " Estimate " << ncall << " calls per second"< t_time(ncall); - for(uint64_t i=0;iBarrier(); - - double volume=1; for(int mu=0;mumflops_best ) mflops_best = mflops; - if ( mflops L_list({16,24,32}); + std::vector L_list({8,12,16,24,32}); int selm1=sel-1; std::vector wilson; @@ -1011,7 +839,7 @@ int main (int argc, char ** argv) std::cout<