diff --git a/control/compute_z.h b/control/compute_z.h
index 06c8854c1b05a7c1bffbca0fa8e615218363672d..12ec9e909e0a18cd40ff2e168aaf402ea7939f3e 100644
--- a/control/compute_z.h
+++ b/control/compute_z.h
@@ -23,7 +23,7 @@
  * @author Matthieu Kuhn
  * @author Lionel Eyraud-Dubois
  * @author Ana Hourcau
- * @date 2024-07-17
+ * @date 2024-10-17
  * @precisions normal z -> c d s
  *
  */
@@ -52,6 +52,49 @@ struct chameleon_pzgetrf_s {
     int          involved:1;
 };
 
+/**
+ * @brief   Data structure to handle the GETRF temporary workspaces
+ *          for MPI transfers.
+ *
+ * @comment The idea is to manage explicitely temporary
+ *          blocks arising from MPI transfers automatically
+ *          inferred by StarPU, hence limiting the total number
+ *          of temporary data allocated for these blocks.
+ *
+ *          The blocks to be sent/received on the network are
+ *          copied into those buffers. These copies are
+ *          then used by the algorithm in place of the regular
+ *          blocks of the problem matrix.
+ *
+ *          For WL (resp. WU), the number of allocated blocks
+ *          corresponds to the number of blocks on the column
+ *          (resp. on the line) multiplied by lookahead number
+ *          from the current chameleon context.
+ *
+ *          Then, depending on the block panel index, we access
+ *          one of the temporary column blocks of WL and row blocks
+ *          of WU int a circular way.
+ *
+ *          For instance, for the block panel index k, the block
+ *          A(m,k) produced by the TRSM(A(k,k),A(m,k)) is stored
+ *          into temporary buffer WL(m,k%chamctxt->lookahead).
+ *          Similarly, the block A(k,n) is stored into the temporary
+ *          block WU(k%chamctxt->lookahead, n).
+ *
+ *          Notice that, by doing so, the notion of look ahead is
+ *          reintroduced : artificial dependencies are implied by
+ *          the circular usage of WL and WU temporary workspaces.
+ *
+ */
+struct chameleon_pzgetrf_nopiv_s {
+    int use_workspace;
+
+    CHAM_desc_t WL; /* Workspace to store temporary blocks of the */
+                    /* diagonal and the lower part of the problem matrix */
+    CHAM_desc_t WU; /* Workspace to store temporary blocks of the */
+                    /* upper part of the problem matrix */
+};
+
 /**
  * @brief Data structure to handle the Centering-Scaled workspaces
  */