Performs some matrix-matrix multiplication operations and outputs timings. More...
#include <stdio.h>
#include <unistd.h>
#include <memory>
#include <limits>
#include "matrix_typedefs.h"
#include "matrix_utilities.h"
#include "utilities.h"
#include "config.h"
Functions | |
static void | get_random_matrix_full (int n, std::vector< ergo_real > &fullMat) |
static void | get_matrix_from_full (normalMatrix &result, mat::SizesAndBlocks sizeBlockInfo, const std::vector< ergo_real > &fullMat) |
static void | verify_mmul_result (int n, const std::vector< ergo_real > &fullMat_A, const std::vector< ergo_real > &fullMat_B, const normalMatrix &C) |
int | main (int argc, char *argv[]) |
Performs some matrix-matrix multiplication operations and outputs timings.
The point is to show how different block sizes affects the performance of matrix-matrix multiplication using the hierarchic matrix library.
static void get_matrix_from_full | ( | normalMatrix & | result, | |
mat::SizesAndBlocks | sizeBlockInfo, | |||
const std::vector< ergo_real > & | fullMat | |||
) | [static] |
static void get_random_matrix_full | ( | int | n, | |
std::vector< ergo_real > & | fullMat | |||
) | [static] |
Referenced by main().
int main | ( | int | argc, | |
char * | argv[] | |||
) |
References A, B, get_matrix_from_full(), get_random_matrix_full(), Util::TimeMeter::get_start_time_wall_seconds(), Util::TimeMeter::get_wall_seconds(), mat::Params::getMatrixParallelLevel(), mat::Params::getNProcs(), prepareMatrixSizesAndBlocks(), mat::Params::setMatrixParallelLevel(), mat::Params::setNProcs(), and verify_mmul_result().
static void verify_mmul_result | ( | int | n, | |
const std::vector< ergo_real > & | fullMat_A, | |||
const std::vector< ergo_real > & | fullMat_B, | |||
const normalMatrix & | C | |||
) | [static] |
References template_blas_fabs().
Referenced by main().