26#define DBM_NUM_COUNTERS 64
35 const int lm = (100 <= m ? (1000 <= m ? 3 : 2) : (10 <= m ? 1 : 0));
36 const int ln = (100 <= n ? (1000 <= n ? 3 : 2) : (10 <= n ? 1 : 0));
37 const int lk = (100 <= k ? (1000 <= k ? 3 : 2) : (10 <= k ? 1 : 0));
38 return 16 * lm + 4 * ln + lk;
80 const int output_unit);
void dbm_library_finalize(void)
Finalizes the DBM library.
void dbm_library_counters_add(const int64_t counters[DBM_NUM_COUNTERS])
Add the calling thread's counts (dbm_library_counter_index) to the stats. Counting locally first avoi...
static int dbm_library_counter_index(const int m, const int n, const int k)
Internal routine for the stats counter of a block multiplication, i.e., min(3, floor(log10(x))) per m...
dbm_library_phase
Phases of dbm_multiply whose duration the stats report per rank.
void dbm_library_print_stats(const int fortran_comm, void(*print_func)(const char *, int, int), const int output_unit)
Prints statistics gathered by the DBM library.
void dbm_library_init(void)
Initializes the DBM library.
void dbm_library_phases_add(const double seconds[DBM_NUM_PHASES], const int64_t bytes[DBM_NUM_PHASES])
Add the durations (seconds) of a multiplication's phases and the bytes sent by them to the stats....
static void print_func(const char *msg, int msglen, int output_unit)
Wrapper for printf, passed to dbm_library_print_stats.