From b63439e7f3b0b58570573d7c6ef89b92e57d6840 Mon Sep 17 00:00:00 2001 From: Matthieu Kuhn <matthieu.kuhn@atos.net> Date: Thu, 20 Apr 2023 18:06:04 +0200 Subject: [PATCH] header: Add a CHAM_ipiv_t data structure to manage the pivoting data structure in GETRF --- include/chameleon/struct.h | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/include/chameleon/struct.h b/include/chameleon/struct.h index efa64a1c5..d7dd07f48 100644 --- a/include/chameleon/struct.h +++ b/include/chameleon/struct.h @@ -19,7 +19,7 @@ * @author Samuel Thibault * @author Matthieu Kuhn * @author Lionel Eyraud-Dubois - * @date 2023-07-05 + * @date 2023-08-22 * */ #ifndef _chameleon_struct_h_ @@ -137,6 +137,25 @@ struct chameleon_desc_s { void *schedopt; // scheduler (QUARK|StarPU) specific structure }; +/** + * CHAMELEON structure to hold pivot informations for the LU factorization with partial pivoting + */ +typedef struct chameleon_piv_s { + const CHAM_desc_t *desc; /**> Reference descriptor to compute data mapping based on diagonal tiles, + and get floating reference type */ + int *data; /**> Pointer to the data */ + void *ipiv; /**> Opaque array of pointers for the runtimes to handle the ipiv array */ + void *nextpiv; /**> Opaque array of pointers for the runtimes to handle the pivot computation structure */ + void *prevpiv; /**> Opaque array of pointers for the runtimes to handle the pivot computation structure */ + int64_t mpitag_ipiv; /**> Initial mpi tag values for the ipiv handles */ + int64_t mpitag_nextpiv; /**> Initial mpi tag values for the nextpiv handles */ + int64_t mpitag_prevpiv; /**> Initial mpi tag values for the prevpiv handles */ + int i; /**> row index to the beginning of the submatrix */ + int m; /**> The number of row in the vector ipiv */ + int mb; /**> The number of row per block */ + int mt; /**> The number of tiles */ + int n; /**> The number of column considered (must be updated for each panel) */ +} CHAM_ipiv_t; /** * CHAMELEON request uniquely identifies each asynchronous function call. -- GitLab