00001 #ifndef MXM_COL_H_ 00002 #define MXM_COL_H_ 00003 00004 #include <mpi.h> 00005 #include "cblas_wrappers/fupermod_cblas.h" 00006 #include "datapart_2d/fupermod_hybrid.h" 00007 #include "datapart_2d/mm_col_distr.h" 00008 00013 typedef struct fupermod_dgemm_workspace { 00015 fupermod_gemm* gemm; 00017 double *WA; 00019 double *WB; 00021 mm_col_i_distrib* idist; 00022 } fupermod_dgemm_workspace; 00023 00025 fupermod_dgemm_workspace* fupermod_dgemm_alloc_read(MPI_Comm comm, FILE* stream, fupermod_process_conf* confs, fupermod_gemm* gemm); 00026 00028 void fupermod_dgemm_free(fupermod_dgemm_workspace* w); 00029 00030 /* fupermod heterogeneous dgemm */ 00031 int fupermod_dgemm(double *A, double *B, double *C, MPI_Comm comm, fupermod_dgemm_workspace* w, HybridConfig config); 00032 00033 #endif /* MXM_COL_H_ */