20 #include "../include/starpu_exageostat.h" 21 static void CORE_dmdet_starpu(
void *buffers[],
void *cl_arg){
28 double *determinant=&det;
31 A = (
double *)STARPU_MATRIX_GET_PTR(buffers[0]);
32 determinant = (
double *)STARPU_MATRIX_GET_PTR(buffers[1]);
33 starpu_codelet_unpack_args(cl_arg, &m, &n, &m0, &n0);
37 *determinant += local_det;
40 static struct starpu_codelet cl_dmdet =
43 .cpu_funcs = {CORE_dmdet_starpu},
45 .modes = {STARPU_R,STARPU_RW},
85 MORSE_context_t *morse;
86 MORSE_option_t options;
87 morse = morse_context_self();
88 if (sequence->status != MORSE_SUCCESS)
91 RUNTIME_options_init(&options, morse, sequence, request);
95 MORSE_desc_t A = *descA;
96 struct starpu_codelet *cl=&cl_dmdet;
99 for(m=0; m < A.mt; m++)
101 tempmm = m == A.mt-1 ? A.m-m*A.mb : A.mb;
103 STARPU_VALUE, &tempmm,
sizeof(
int),
104 STARPU_VALUE, &tempmm,
sizeof(
int),
105 STARPU_R,
RTBLKADDR(descA,
sizeof(
double)*tempmm, m, m),
106 STARPU_VALUE, &m0,
sizeof(
int),
107 STARPU_VALUE, &n0,
sizeof(
int),
108 STARPU_RW,
RTBLKADDR(descdet,
sizeof(
double), 0, 0),
114 RUNTIME_options_ws_free(&options);
115 RUNTIME_options_finalize(&options, morse);
118 return MORSE_SUCCESS;
#define RTBLKADDR(desc, type, m, n)
#define starpu_mpi_codelet(_codelet_)
double core_dmdet(double *A, int m, int n, int m0, int n0)
int MORSE_MLE_dmdet_Tile_Async(MORSE_desc_t *descA, MORSE_sequence_t *sequence, MORSE_request_t *request, MORSE_desc_t *descdet)