YASK
Yet Another Stencil Kit: a software framework for creating HPC stencil code. Copyright 2014-2023 Intel Corporation.
Loading...
Searching...
No Matches
Public Member Functions | List of all members
yask::yk_stats Class Referenceabstract

Statistics from calls to run_solution(). More...

#include <yk_solution_api.hpp>

Public Member Functions

virtual idx_t get_num_elements ()=0
 Get the number of elements in the overall domain.
 
virtual idx_t get_num_steps_done ()=0
 Get the number of steps executed via run_solution().
 
virtual idx_t get_num_writes_done ()=0
 Get the number of elements written across all steps.
 
virtual idx_t get_est_fp_ops_done ()=0
 Get the estimated number of floating-point operations executed across all steps.
 
virtual double get_elapsed_secs ()=0
 Get the number of seconds elapsed during calls to run_solution().
 

Detailed Description

Statistics from calls to run_solution().

A throughput rate may be calculated by multiplying an amount-of-work-per-step quantity by the number of steps done and dividing by the number of seconds elapsed.

Member Function Documentation

◆ get_num_elements()

virtual idx_t yask::yk_stats::get_num_elements ( )
pure virtual

Get the number of elements in the overall domain.

Returns
Product across all domain dimensions of the domain sizes across all ranks. Multiply this value by get_num_steps_done() to determine the number of points processed. Then, divide by get_elapsed_run_secs() to determine the throughput.

◆ get_num_steps_done()

virtual idx_t yask::yk_stats::get_num_steps_done ( )
pure virtual

Get the number of steps executed via run_solution().

Returns
A positive number, regardless of whether run_solution() steps were executed forward or backward.

◆ get_num_writes_done()

virtual idx_t yask::yk_stats::get_num_writes_done ( )
pure virtual

Get the number of elements written across all steps.

Returns
Number of elements written, summed over all output vars, steps executed, and ranks.

◆ get_est_fp_ops_done()

virtual idx_t yask::yk_stats::get_est_fp_ops_done ( )
pure virtual

Get the estimated number of floating-point operations executed across all steps.

Returns
Number of FP ops created by the stencil compiler, summed over all stencils, steps executed, and ranks. It may be slightly more or less than the actual number of FP ops executed by the CPU due to C++ compiler transformations, redundant calculations for temporal tiling, etc.

◆ get_elapsed_secs()

virtual double yask::yk_stats::get_elapsed_secs ( )
pure virtual

Get the number of seconds elapsed during calls to run_solution().

Returns
Only the time spent in run_solution(), not in any other code in your application between calls.

The documentation for this class was generated from the following file: