ExaGeoStat
ExaGeoStat is a parallel high performance unified framework for geostatistics on manycore systems.
codelet_dpotrf_diag.c
Go to the documentation of this file.
1 
31 #include "chameleon_starpu.h"
32 #include "runtime_codelet_d.h"
33 #include "../include/starpu_exageostat_approx.h"
40 void MORSE_TASK_dpotrf_diag(const MORSE_option_t *options,
41  MORSE_enum uplo, int n, int nb,
42  const MORSE_desc_t *A, int Am, int An, int lda,
43  int iinfo)
44 {
45  (void)nb;
46  struct starpu_codelet *codelet = &cl_dpotrf;
47  void (*callback)(void*) = options->profiling ? cl_dpotrf_callback : NULL;
48 
49  MORSE_BEGIN_ACCESS_DECLARATION;
50  MORSE_ACCESS_RW(A, Am, An);
51  MORSE_END_ACCESS_DECLARATION;
52 
53  starpu_insert_task(
54  starpu_mpi_codelet(codelet),
55  STARPU_VALUE, &uplo, sizeof(MORSE_enum),
56  STARPU_VALUE, &n, sizeof(int),
57  STARPU_RW, RTBLKADDR(A, double, Am, An),
58  STARPU_VALUE, &lda, sizeof(int),
59  STARPU_VALUE, &iinfo, sizeof(int),
60  /* STARPU_SCRATCH, options->ws_worker, */
61  STARPU_PRIORITY, options->priority,
62  STARPU_CALLBACK, callback,
63 #if defined(CHAMELEON_CODELETS_HAVE_NAME)
64  STARPU_NAME, "dpotrf_diag",
65 #endif
66  0);
67 }
68 
69 
70 #if !defined(CHAMELEON_SIMULATION)
71 static void cl_dpotrf_diag_cpu_func(void *descr[], void *cl_arg)
72 {
73  MORSE_enum uplo;
74  int n;
75  double *A;
76  int lda;
77  int iinfo;
78  int info = 0;
79 
80  A = (double *)STARPU_MATRIX_GET_PTR(descr[0]);
81 
82  starpu_codelet_unpack_args(cl_arg, &uplo, &n, &lda, &iinfo);
83  //keep the core function from Chameleon
84  CORE_dpotrf(uplo, n, A, lda, &info);
85 }
86 #endif /* !defined(CHAMELEON_SIMULATION) */
87 
88 /*
89  * Codelet definition
90  */
91 CODELETS_CPU(dpotrf_diag, 1, cl_dpotrf_diag_cpu_func)
92 
#define RTBLKADDR(desc, type, m, n)
#define starpu_mpi_codelet(_codelet_)
#define A(m, n)
Definition: pdpotrf_diag.c:34
void MORSE_TASK_dpotrf_diag(const MORSE_option_t *options, MORSE_enum uplo, int n, int nb, const MORSE_desc_t *A, int Am, int An, int lda, int iinfo)