forked from portelli/lattice-benchmarks
		
	log iso-timestamp instead of seconds-since-start
This commit is contained in:
		@@ -22,15 +22,20 @@ json json_results;
 | 
			
		||||
 | 
			
		||||
using namespace quda;
 | 
			
		||||
 | 
			
		||||
// timestamp = seconds since program start.
 | 
			
		||||
// these are written to the json output with the goal of later matching them against
 | 
			
		||||
// power-measurments to determine energy efficiency.
 | 
			
		||||
using Clock = std::chrono::steady_clock;
 | 
			
		||||
Clock::time_point program_start_time = Clock::now();
 | 
			
		||||
double get_timestamp()
 | 
			
		||||
// thanks chatGPT :)
 | 
			
		||||
std::string get_timestamp()
 | 
			
		||||
{
 | 
			
		||||
  auto dur = Clock::now() - program_start_time;
 | 
			
		||||
  return std::chrono::duration_cast<std::chrono::microseconds>(dur).count() * 1.0e-6;
 | 
			
		||||
  // Get the current time
 | 
			
		||||
  auto now = std::chrono::system_clock::now();
 | 
			
		||||
 | 
			
		||||
  // Convert the current time to a time_t object
 | 
			
		||||
  std::time_t currentTime = std::chrono::system_clock::to_time_t(now);
 | 
			
		||||
 | 
			
		||||
  // Format the time using std::put_time
 | 
			
		||||
  std::stringstream ss;
 | 
			
		||||
  ss << std::put_time(std::localtime(¤tTime), "%Y%m%d %H:%M:%S");
 | 
			
		||||
 | 
			
		||||
  return ss.str();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// This is the MPI grid, i.e. the layout of ranks
 | 
			
		||||
@@ -235,9 +240,9 @@ void benchmark_wilson(std::vector<int> const &L_list, double target_time)
 | 
			
		||||
    double flops = 1.0 * dirac.Flops();
 | 
			
		||||
 | 
			
		||||
    // actual benchmarking
 | 
			
		||||
    double start_time = get_timestamp();
 | 
			
		||||
    auto start_time = get_timestamp();
 | 
			
		||||
    double secs = bench(f, target_time);
 | 
			
		||||
    double end_time = get_timestamp();
 | 
			
		||||
    auto end_time = get_timestamp();
 | 
			
		||||
 | 
			
		||||
#ifdef FLOP_COUNTING_GRID
 | 
			
		||||
    // this is the flop counting from Benchmark_Grid
 | 
			
		||||
@@ -297,9 +302,9 @@ void benchmark_dwf(std::vector<int> const &L_list, double target_time)
 | 
			
		||||
    double flops = 1.0 * dirac.Flops();
 | 
			
		||||
 | 
			
		||||
    // actual benchmarking
 | 
			
		||||
    double start_time = get_timestamp();
 | 
			
		||||
    auto start_time = get_timestamp();
 | 
			
		||||
    double secs = bench(f, target_time);
 | 
			
		||||
    double end_time = get_timestamp();
 | 
			
		||||
    auto end_time = get_timestamp();
 | 
			
		||||
 | 
			
		||||
#ifdef FLOP_COUNTING_GRID
 | 
			
		||||
    // this is the flop counting from Benchmark_Grid
 | 
			
		||||
@@ -385,9 +390,9 @@ void benchmark_axpy(std::vector<int> const &L_list, double target_time)
 | 
			
		||||
    f();
 | 
			
		||||
 | 
			
		||||
    // actual benchmarking
 | 
			
		||||
    double start_time = get_timestamp();
 | 
			
		||||
    auto start_time = get_timestamp();
 | 
			
		||||
    double secs = bench(f, target_time);
 | 
			
		||||
    double end_time = get_timestamp();
 | 
			
		||||
    auto end_time = get_timestamp();
 | 
			
		||||
 | 
			
		||||
    double mem_MiB = memory / 1024. / 1024.;
 | 
			
		||||
    double GBps = mem_MiB / 1024 / secs;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user