diff --git a/compute/pzbuild.c b/compute/pzbuild.c index 2dc7586d7e68eb0712c222475f089a994e553f88..1b8d361a45ae0c91a6844576fe2b4ee74782bfd7 100644 --- a/compute/pzbuild.c +++ b/compute/pzbuild.c @@ -86,6 +86,6 @@ void morse_pzbuild( MORSE_enum uplo, MORSE_desc_t *A, void *user_data, void* use } } - RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_desc( &options, uplo, A ); + RUNTIME_options_finalize( &options, morse); } diff --git a/compute/pzgelqf.c b/compute/pzgelqf.c index 14b8d1c94eb0db12fc8e76d29552edf93c5d3a70..3821a120983f2a5cda5082eaeeb0321d5c419e93 100644 --- a/compute/pzgelqf.c +++ b/compute/pzgelqf.c @@ -152,8 +152,11 @@ void morse_pzgelqf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, RUNTIME_iteration_pop(morse); } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpper, T ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgelqf_param.c b/compute/pzgelqf_param.c index 4ab23160fb6e5b6ced1d4cc67bcd8fadcd58019a..88588051e1ef4e3d3baac9b254aefe02ee841d07 100644 --- a/compute/pzgelqf_param.c +++ b/compute/pzgelqf_param.c @@ -196,9 +196,12 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, RUNTIME_iteration_pop(morse); } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpper, TS ); + MORSE_TASK_flush_desc( &options, MorseUpper, TT ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgelqfrh.c b/compute/pzgelqfrh.c index 5f906d0acdb21db271991315cf2ae60f1ad2d368..141d94195d1800aa0e9158d3e4a97f97f78e26ff 100644 --- a/compute/pzgelqfrh.c +++ b/compute/pzgelqfrh.c @@ -180,8 +180,11 @@ void morse_pzgelqfrh(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, int BS, } RUNTIME_iteration_pop(morse); } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpper, T ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgemm.c b/compute/pzgemm.c index e661dbf642ea345b1be6781ceada5e83a41f1a4c..e001af357c58b8938c74085a7ce89c4d2204020f 100644 --- a/compute/pzgemm.c +++ b/compute/pzgemm.c @@ -134,20 +134,19 @@ void morse_pzgemm(MORSE_enum transA, MORSE_enum transB, } } } + MORSE_TASK_flush_data( &options, C(m, n) ); } if (transA == MorseNoTrans) { for (k = 0; k < A->nt; k++) { - MORSE_TASK_dataflush( &options, A(m, k) ); + MORSE_TASK_flush_data( &options, A(m, k) ); } } else { for (k = 0; k < A->mt; k++) { - MORSE_TASK_dataflush( &options, A(k, m) ); + MORSE_TASK_flush_data( &options, A(k, m) ); } } - for (n = 0; n < C->nt; n++) { - MORSE_TASK_dataflush( &options, C(m, n) ); - } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); } diff --git a/compute/pzgeqrf.c b/compute/pzgeqrf.c index 1944e03d80ab5f6d50e23dd9c754d0146a584a91..1ccd8bb99dae30fec44fe4a3e150a368b21c6fe2 100644 --- a/compute/pzgeqrf.c +++ b/compute/pzgeqrf.c @@ -146,8 +146,11 @@ void morse_pzgeqrf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, RUNTIME_iteration_pop(morse); } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseLower, T ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgeqrf_param.c b/compute/pzgeqrf_param.c index 945a07029ea0865a843836704f59d5c5c12e0e88..2382953a802dab0a2f219ad1941dc1c659c29092 100644 --- a/compute/pzgeqrf_param.c +++ b/compute/pzgeqrf_param.c @@ -195,9 +195,12 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, RUNTIME_iteration_pop(morse); } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseLower, TS ); + MORSE_TASK_flush_desc( &options, MorseLower, TT ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgeqrfrh.c b/compute/pzgeqrfrh.c index 0176d8c19cd42dbb84b5ad1d8103ba6b665d1f34..aeec53fabbb299ca258319ef5c5f25baa8635dd6 100644 --- a/compute/pzgeqrfrh.c +++ b/compute/pzgeqrfrh.c @@ -177,11 +177,13 @@ void morse_pzgeqrfrh(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, int BS, } } } - RUNTIME_iteration_pop(morse); } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseLower, T ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgetrf_incpiv.c b/compute/pzgetrf_incpiv.c index 83efd149d6d53fffe8b3f87459877b46b0cd57ea..9b01a7552c952aed98a79bda85af22545d81efa1 100644 --- a/compute/pzgetrf_incpiv.c +++ b/compute/pzgetrf_incpiv.c @@ -135,9 +135,12 @@ void morse_pzgetrf_incpiv(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, RUNTIME_iteration_pop(morse); } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseLower, L ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); morse_desc_mat_free(DIAG); free(DIAG); diff --git a/compute/pzgetrf_nopiv.c b/compute/pzgetrf_nopiv.c index 16150478f64d448bb67f7d94cb2be277aab78f7c..1385462496fec63ad7c1286fd2d5f2c936a15fc9 100644 --- a/compute/pzgetrf_nopiv.c +++ b/compute/pzgetrf_nopiv.c @@ -103,6 +103,8 @@ void morse_pzgetrf_nopiv(MORSE_desc_t *A, RUNTIME_iteration_pop(morse); } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); } diff --git a/compute/pzhemm.c b/compute/pzhemm.c index 1b00663ec1b9bda53002bde4e138d0986eb2f324..a8582ee597f84c26b237e4b83fad0fffb1917e85 100644 --- a/compute/pzhemm.c +++ b/compute/pzhemm.c @@ -226,6 +226,9 @@ void morse_pzhemm(MORSE_enum side, MORSE_enum uplo, } } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, C ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); } diff --git a/compute/pzher2k.c b/compute/pzher2k.c index 87778f4eb8a16cb90c5b453caca98f65c982fb4c..9bde1020aaf3c705ac60b6378804ba787ec7fd23 100644 --- a/compute/pzher2k.c +++ b/compute/pzher2k.c @@ -214,6 +214,9 @@ void morse_pzher2k(MORSE_enum uplo, MORSE_enum trans, } } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, C ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); } diff --git a/compute/pzherk.c b/compute/pzherk.c index dcb567fcf4e40576ae09b3f2a46a8c025d7d0424..e3dd914f372242d87ac4037e6b524b9575b65ccc 100644 --- a/compute/pzherk.c +++ b/compute/pzherk.c @@ -173,6 +173,7 @@ void morse_pzherk(MORSE_enum uplo, MORSE_enum trans, } } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, uplo, C ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzhetrd_he2hb.c b/compute/pzhetrd_he2hb.c index 090f185fb6431225d8a1a884f4f4650a9231ceb7..0d8ed1d2f3160e9b5e008f0081a56cdebb8c538c 100644 --- a/compute/pzhetrd_he2hb.c +++ b/compute/pzhetrd_he2hb.c @@ -435,9 +435,11 @@ void morse_pzhetrd_he2hb(MORSE_enum uplo, A(k, k), ldak); } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); MORSE_Sequence_Wait(sequence); morse_desc_mat_free(D); diff --git a/compute/pzlacpy.c b/compute/pzlacpy.c index 1f88ed10aa4b60d0e13f8421e6a369d2ce8fdda8..220c8b9dbdd6c12e94afcb23a12ac58413a5ffd8 100644 --- a/compute/pzlacpy.c +++ b/compute/pzlacpy.c @@ -129,6 +129,7 @@ void morse_pzlacpy(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, } } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzlag2c.c b/compute/pzlag2c.c index 191526ee61f087ab8442a756d38dd91b8eec4fce..ec193214e4aa00e0391f2e4d51f4516499f92a78 100644 --- a/compute/pzlag2c.c +++ b/compute/pzlag2c.c @@ -67,6 +67,7 @@ void morse_pclag2z(MORSE_desc_t *SA, MORSE_desc_t *B, B(m, n), ldbm); } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, SA ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzlange.c b/compute/pzlange.c index ff9ccd9fc0395241b006e5330280556300406242..83eee09a6c8511743c0e15b7a6118dcc8cc80e78 100644 --- a/compute/pzlange.c +++ b/compute/pzlange.c @@ -412,5 +412,5 @@ void morse_pzlange(MORSE_enum norm, MORSE_desc_t *A, double *result, MORSE_Desc_Destroy( &(RESULT) ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); } diff --git a/compute/pzlanhe.c b/compute/pzlanhe.c index 8e0bb19e0b97e449ebe76e1bbe268c3d2839a1dd..a637a283d648f92a4c760ccb87d636cd9b41acec 100644 --- a/compute/pzlanhe.c +++ b/compute/pzlanhe.c @@ -456,5 +456,5 @@ void morse_pzlanhe(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *re } RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); } diff --git a/compute/pzlansy.c b/compute/pzlansy.c index 4fc9c6bdee52e7b563b778eabd452272e41b4d78..cdb4c1dcab6d3c545f8d43052e294cc391609e5c 100644 --- a/compute/pzlansy.c +++ b/compute/pzlansy.c @@ -465,5 +465,5 @@ void morse_pzlansy(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *re } RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); } diff --git a/compute/pzlantr.c b/compute/pzlantr.c index c9dc86e776ed8c4b0773deb3a8ed57fb45fa6eaa..7f6ded725d09a4913259ba0a65da32d6a3359bc2 100644 --- a/compute/pzlantr.c +++ b/compute/pzlantr.c @@ -665,5 +665,5 @@ void morse_pzlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, } RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); } diff --git a/compute/pzlascal.c b/compute/pzlascal.c index 9829782dcdab832516b73cd4e484d8ae6783b26e..2659c3d7e9c43cb131b75a1c59bbd26f10996da5 100644 --- a/compute/pzlascal.c +++ b/compute/pzlascal.c @@ -97,7 +97,6 @@ void morse_pzlascal(MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_desc_t *A, } } } - RUNTIME_options_ws_free(&options); + MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzlaset.c b/compute/pzlaset.c index 314acf23f64c7bac143e56915f40af63849a4fb4..a14ba24f0906bd491d0e16ccb6f41e1e42e63857 100644 --- a/compute/pzlaset.c +++ b/compute/pzlaset.c @@ -118,6 +118,6 @@ void morse_pzlaset(MORSE_enum uplo, A(j, j), ldaj); } } + MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzlaset2.c b/compute/pzlaset2.c index 7c0ce6306653431cae8832cd054f5e731771568a..c56661594e293db4fb28ececedaedc9c28e19dc3 100644 --- a/compute/pzlaset2.c +++ b/compute/pzlaset2.c @@ -107,7 +107,7 @@ void morse_pzlaset2(MORSE_enum uplo, MORSE_Complex64_t alpha, A(i, j), ldai); } } - } + } + MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzlauum.c b/compute/pzlauum.c index 1dbba64e53c75bd192715dfd222fb71961413645..9ff23bebea324af581de9af2c7bd96ca5841e9b9 100644 --- a/compute/pzlauum.c +++ b/compute/pzlauum.c @@ -76,7 +76,7 @@ void morse_pzlauum(MORSE_enum uplo, MORSE_desc_t *A, } } for (n = 0; n < k; n++) { - MORSE_TASK_dataflush( &options, A(k, n) ); + MORSE_TASK_flush_data( &options, A(k, n) ); MORSE_TASK_ztrmm( &options, MorseLeft, uplo, MorseConjTrans, MorseNonUnit, @@ -84,7 +84,7 @@ void morse_pzlauum(MORSE_enum uplo, MORSE_desc_t *A, 1.0, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); MORSE_TASK_zlauum( &options, uplo, tempkm, A->mb, @@ -121,7 +121,7 @@ void morse_pzlauum(MORSE_enum uplo, MORSE_desc_t *A, } for (m = 0; m < k; m++) { ldam = BLKLDD(A, m); - MORSE_TASK_dataflush( &options, A(m, k) ); + MORSE_TASK_flush_data( &options, A(m, k) ); MORSE_TASK_ztrmm( &options, MorseRight, uplo, MorseConjTrans, MorseNonUnit, @@ -129,13 +129,13 @@ void morse_pzlauum(MORSE_enum uplo, MORSE_desc_t *A, 1.0, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); MORSE_TASK_zlauum( &options, uplo, tempkn, A->mb, A(k, k), ldak); } } + MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzplghe.c b/compute/pzplghe.c index 068ca66cbd6b5a4d189bda0bc069c8b3b60a20b8..d0b0d16e0f4a66f7fc98a6b3a432fc2e22792f69 100644 --- a/compute/pzplghe.c +++ b/compute/pzplghe.c @@ -36,7 +36,7 @@ * morse_pzplghe - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles. **/ void morse_pzplghe( double bump, MORSE_enum uplo, MORSE_desc_t *A, - unsigned long long int seed, + unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ) { MORSE_context_t *morse; @@ -55,48 +55,48 @@ void morse_pzplghe( double bump, MORSE_enum uplo, MORSE_desc_t *A, tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb; ldam = BLKLDD(A, m); - /* - * MorseLower - */ - if (uplo == MorseLower) { - for (n = 0; n <= m; n++) { - tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; + /* + * MorseLower + */ + if (uplo == MorseLower) { + for (n = 0; n <= m; n++) { + tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; - options.priority = m + n; - MORSE_TASK_zplghe( - &options, - bump, tempmm, tempnn, A(m, n), ldam, - A->m, m*A->mb, n*A->nb, seed ); - } - } - /* - * MorseUpper - */ - else if (uplo == MorseUpper) { - for (n = m; n < A->nt; n++) { - tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; + options.priority = m + n; + MORSE_TASK_zplghe( + &options, + bump, tempmm, tempnn, A(m, n), ldam, + A->m, m*A->mb, n*A->nb, seed ); + } + } + /* + * MorseUpper + */ + else if (uplo == MorseUpper) { + for (n = m; n < A->nt; n++) { + tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; - options.priority = m + n; - MORSE_TASK_zplghe( - &options, - bump, tempmm, tempnn, A(m, n), ldam, - A->m, m*A->mb, n*A->nb, seed ); - } - } - /* - * MorseUpperLower - */ - else { - for (n = 0; n < A->nt; n++) { - tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; + options.priority = m + n; + MORSE_TASK_zplghe( + &options, + bump, tempmm, tempnn, A(m, n), ldam, + A->m, m*A->mb, n*A->nb, seed ); + } + } + /* + * MorseUpperLower + */ + else { + for (n = 0; n < A->nt; n++) { + tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; - MORSE_TASK_zplghe( - &options, - bump, tempmm, tempnn, A(m, n), ldam, - A->m, m*A->mb, n*A->nb, seed ); - } - } + MORSE_TASK_zplghe( + &options, + bump, tempmm, tempnn, A(m, n), ldam, + A->m, m*A->mb, n*A->nb, seed ); + } + } } + MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzplgsy.c b/compute/pzplgsy.c index 9e0ae59de58446b7f88f3cf2b80ef9778f98db07..3c8c288bf80a57c30b3e992bcc2857634ab5870d 100644 --- a/compute/pzplgsy.c +++ b/compute/pzplgsy.c @@ -87,16 +87,16 @@ void morse_pzplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, * MorseUpperLower */ else { - for (n = 0; n < A->nt; n++) { - tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; + for (n = 0; n < A->nt; n++) { + tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; - MORSE_TASK_zplgsy( - &options, - bump, tempmm, tempnn, A(m, n), ldam, - A->m, m*A->mb, n*A->nb, seed ); - } + MORSE_TASK_zplgsy( + &options, + bump, tempmm, tempnn, A(m, n), ldam, + A->m, m*A->mb, n*A->nb, seed ); + } } } + MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzplrnt.c b/compute/pzplrnt.c index 29ff7e47efaa760894bf5d2511af85d0a449fd5d..1e2fc8c61d8d45778549a08e326e184969e9c6a9 100644 --- a/compute/pzplrnt.c +++ b/compute/pzplrnt.c @@ -60,6 +60,6 @@ void morse_pzplrnt( MORSE_desc_t *A, unsigned long long int seed, A->m, m*A->mb, n*A->nb, seed ); } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzpotrf.c b/compute/pzpotrf.c index bc648c74cc5e60867dae15ac5c6d32594a358742..662c96fd1050671274d6db890c692104720a445b 100644 --- a/compute/pzpotrf.c +++ b/compute/pzpotrf.c @@ -84,7 +84,7 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A, zone, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); for (n = k+1; n < A->nt; n++) { tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; @@ -111,7 +111,7 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A, A(n, k), ldan, zone, A(m, n), ldam); } - MORSE_TASK_dataflush( &options, A(n, k) ); + MORSE_TASK_flush_data( &options, A(n, k) ); } RUNTIME_iteration_pop(morse); } @@ -144,7 +144,7 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A, zone, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); for (m = k+1; m < A->mt; m++) { tempmm = m == A->mt-1 ? A->m - m*A->mb : A->mb; @@ -170,13 +170,12 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A, A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_dataflush( &options, A(k, m) ); + MORSE_TASK_flush_data( &options, A(k, m) ); } RUNTIME_iteration_pop(morse); } } - RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzpotrimm.c b/compute/pzpotrimm.c index a9d779b3049f23beaf128bd0bea2fadeb74f016b..abbbd1d03bd6c2e6d618c39ccdf42d9d12c03adc 100644 --- a/compute/pzpotrimm.c +++ b/compute/pzpotrimm.c @@ -85,7 +85,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de zone, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); for (n = k+1; n < A->nt; n++) { tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; @@ -108,7 +108,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de A(n, k), ldan, zone, A(m, n), ldam); } - MORSE_TASK_dataflush( &options, A(n, k) ); + MORSE_TASK_flush_data( &options, A(n, k) ); } RUNTIME_iteration_pop(morse); @@ -143,10 +143,10 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_dataflush( &options, A(m, k) ); + MORSE_TASK_flush_data( &options, A(m, k) ); } for (n = 0; n < k; n++) { - MORSE_TASK_dataflush( &options, A(k, n) ); + MORSE_TASK_flush_data( &options, A(k, n) ); MORSE_TASK_ztrsm( &options, MorseLeft, uplo, MorseNoTrans, MorseNonUnit, @@ -154,7 +154,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de zone, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); MORSE_TASK_ztrtri( &options, uplo, MorseNonUnit, @@ -192,7 +192,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de } } for (n = 0; n < k; n++) { - MORSE_TASK_dataflush( &options, A(k, n) ); + MORSE_TASK_flush_data( &options, A(k, n) ); MORSE_TASK_ztrmm( &options, MorseLeft, uplo, MorseConjTrans, MorseNonUnit, @@ -200,7 +200,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de 1.0, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); MORSE_TASK_zlauum( &options, uplo, tempkm, A->mb, @@ -257,10 +257,10 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de } } } - MORSE_TASK_dataflush( &options, B(m, k) ); + MORSE_TASK_flush_data( &options, B(m, k) ); } for (n = 0; n <= k; n++) { - MORSE_TASK_dataflush( &options, A(k, n) ); + MORSE_TASK_flush_data( &options, A(k, n) ); } RUNTIME_iteration_pop(morse); @@ -293,7 +293,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de zone, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); for (m = k+1; m < A->mt; m++) { tempmm = m == A->mt-1 ? A->m - m*A->mb : A->mb; @@ -317,7 +317,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_dataflush( &options, A(k, m) ); + MORSE_TASK_flush_data( &options, A(k, m) ); } RUNTIME_iteration_pop(morse); @@ -351,11 +351,11 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_dataflush( &options, A(k, n) ); + MORSE_TASK_flush_data( &options, A(k, n) ); } for (m = 0; m < k; m++) { ldam = BLKLDD(A, m); - MORSE_TASK_dataflush( &options, A(m, k) ); + MORSE_TASK_flush_data( &options, A(m, k) ); MORSE_TASK_ztrsm( &options, MorseRight, uplo, MorseNoTrans, MorseNonUnit, @@ -363,7 +363,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de zone, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); MORSE_TASK_ztrtri( &options, uplo, MorseNonUnit, @@ -403,7 +403,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de } for (m = 0; m < k; m++) { ldam = BLKLDD(A, m); - MORSE_TASK_dataflush( &options, A(m, k) ); + MORSE_TASK_flush_data( &options, A(m, k) ); MORSE_TASK_ztrmm( &options, MorseRight, uplo, MorseConjTrans, MorseNonUnit, @@ -411,7 +411,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de 1.0, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); MORSE_TASK_zlauum( &options, uplo, tempkn, A->mb, @@ -468,10 +468,10 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de } } } - MORSE_TASK_dataflush( &options, B(m, k) ); + MORSE_TASK_flush_data( &options, B(m, k) ); } for (m = 0; m <= k; m++) { - MORSE_TASK_dataflush( &options, A(m, k) ); + MORSE_TASK_flush_data( &options, A(m, k) ); } RUNTIME_iteration_pop(morse); @@ -479,4 +479,5 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de } RUNTIME_options_finalize(&options, morse); + MORSE_TASK_flush_all(); } diff --git a/compute/pzsymm.c b/compute/pzsymm.c index eda68c35c9538f4c8935e2c8730b661cdc4a1a75..71b95895790cd969316790ce7f871b51da7cb46d 100644 --- a/compute/pzsymm.c +++ b/compute/pzsymm.c @@ -141,16 +141,16 @@ void morse_pzsymm(MORSE_enum side, MORSE_enum uplo, } } } - MORSE_TASK_dataflush( &options, B(k, n) ); + MORSE_TASK_flush_data( &options, B(k, n) ); } if (uplo == MorseLower) { for (n = 0; n <= k; n++) { - MORSE_TASK_dataflush( &options, A(k, n) ); + MORSE_TASK_flush_data( &options, A(k, n) ); } } else { for (m = 0; m <= k; m++) { - MORSE_TASK_dataflush( &options, A(m, k) ); + MORSE_TASK_flush_data( &options, A(m, k) ); } } } @@ -242,20 +242,20 @@ void morse_pzsymm(MORSE_enum side, MORSE_enum uplo, } } } - MORSE_TASK_dataflush( &options, B(m, k) ); + MORSE_TASK_flush_data( &options, B(m, k) ); } if (uplo == MorseLower) { for (n = 0; n <= k; n++) { - MORSE_TASK_dataflush( &options, A(k, n) ); + MORSE_TASK_flush_data( &options, A(k, n) ); } } else { for (m = 0; m <= k; m++) { - MORSE_TASK_dataflush( &options, A(m, k) ); + MORSE_TASK_flush_data( &options, A(m, k) ); } } } } RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); } diff --git a/compute/pzsyr2k.c b/compute/pzsyr2k.c index ada387ab22f3f56ab52d855585847bec8a2e002c..68e4d6ee10c6f207e25a2087dd4b301eac21be44 100644 --- a/compute/pzsyr2k.c +++ b/compute/pzsyr2k.c @@ -213,6 +213,9 @@ void morse_pzsyr2k(MORSE_enum uplo, MORSE_enum trans, } } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); + MORSE_TASK_flush_desc( &options, uplo, C ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); } diff --git a/compute/pzsyrk.c b/compute/pzsyrk.c index 3312af9fff7c75a3d91b0acaeb267e15494f382f..49508895c5aabd53caa555efff8b967757febb7f 100644 --- a/compute/pzsyrk.c +++ b/compute/pzsyrk.c @@ -172,6 +172,7 @@ void morse_pzsyrk(MORSE_enum uplo, MORSE_enum trans, } } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, uplo, C ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzsytrf.c b/compute/pzsytrf.c index 818ba9625ef8424915d8f1d614712e804d7298b3..2ea509a512d9ed1afd16da1ad445bd8d496e84da 100644 --- a/compute/pzsytrf.c +++ b/compute/pzsytrf.c @@ -80,7 +80,7 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A, zone, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); for (n = k+1; n < A->nt; n++) { tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; @@ -103,7 +103,7 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A, A(n, k), ldan, zone, A(m, n), ldam); } - MORSE_TASK_dataflush( &options, A(n, k) ); + MORSE_TASK_flush_data( &options, A(n, k) ); } RUNTIME_iteration_pop(morse); @@ -133,7 +133,7 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A, zone, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); for (m = k+1; m < A->mt; m++) { tempmm = m == A->mt-1 ? A->m - m*A->mb : A->mb; @@ -157,14 +157,14 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A, A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_dataflush( &options, A(k, m) ); + MORSE_TASK_flush_data( &options, A(k, m) ); } RUNTIME_iteration_pop(morse); } } + MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pztile.c b/compute/pztile.c index 1732f5bd0534e0c435734cfefc296578ab5a5c25..c5222001063655c1d9e706b715101c53a759fd32 100644 --- a/compute/pztile.c +++ b/compute/pztile.c @@ -74,7 +74,7 @@ void morse_pzlapack_to_tile(MORSE_Complex64_t *Af77, int ldaf77, MORSE_desc_t *A RUNTIME_sequence_wait( morse, sequence ); RUNTIME_options_finalize( &options, morse ); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); RUNTIME_desc_getoncpu( &B ); RUNTIME_desc_destroy( &B ); } @@ -122,9 +122,9 @@ void morse_pztile_to_lapack(MORSE_desc_t *A, MORSE_Complex64_t *Af77, int ldaf77 } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); RUNTIME_sequence_wait( morse, sequence ); RUNTIME_options_finalize( &options, morse ); - MORSE_TASK_dataflush_all(); RUNTIME_desc_getoncpu( &B ); RUNTIME_desc_destroy( &B ); } @@ -160,5 +160,4 @@ void morse_pztile_zero(MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_reques RUNTIME_sequence_wait( morse, sequence ); RUNTIME_options_finalize( &options, morse ); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pztile2band.c b/compute/pztile2band.c index a5efb27771ac4c206f53ea1f03f659e50eb8b07c..22b8ca68fea6be025cc4df1e59b58df84c68f785 100644 --- a/compute/pztile2band.c +++ b/compute/pztile2band.c @@ -118,7 +118,7 @@ void morse_pztile2band(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, } } RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); } #undef B #undef A diff --git a/compute/pztpgqrt.c b/compute/pztpgqrt.c index 6abd4af7a86c5c439d6c2a6d962a99cbd20b2840..fe4b413eae2c407fe39e804c6d7aaa53cdee9e3c 100644 --- a/compute/pztpgqrt.c +++ b/compute/pztpgqrt.c @@ -162,9 +162,14 @@ void morse_pztpgqrt( int L, RUNTIME_iteration_pop(morse); } + MORSE_TASK_flush_desc( &options, MorseUpperLower, V1 ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, V2 ); + MORSE_TASK_flush_desc( &options, MorseLower, T1 ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, T2 ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, Q1 ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, Q2 ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); - (void)D; } diff --git a/compute/pztpqrt.c b/compute/pztpqrt.c index d20512803bd4d269d2cb28a0e77800d26f9d9e0a..6101c0934b551cc1a2d5cba6388ad6e68353e7da 100644 --- a/compute/pztpqrt.c +++ b/compute/pztpqrt.c @@ -110,7 +110,10 @@ void morse_pztpqrt( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T, RUNTIME_iteration_pop(morse); } + + MORSE_TASK_flush_desc( &options, MorseLower, T ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pztradd.c b/compute/pztradd.c index 152960e9a5811f25c581a9e4f405959e07d24b90..8d121b7e9d1b916129c3de29d30803993e552633 100644 --- a/compute/pztradd.c +++ b/compute/pztradd.c @@ -193,4 +193,8 @@ void morse_pztradd(MORSE_enum uplo, MORSE_enum trans, } } } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, uplo, B ); + RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pztrmm.c b/compute/pztrmm.c index 1d9b20c0a5eaa6853fa461c4463487da17984f60..b9f6cb0063da5bfba8a0dbd20257d0b5fcf53363 100644 --- a/compute/pztrmm.c +++ b/compute/pztrmm.c @@ -310,6 +310,8 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo, } } } + + MORSE_TASK_flush_desc( &options, uplo, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pztrsm.c b/compute/pztrsm.c index f981f68bb282d0bb1ea941ca5e496956a66a951e..c861890ccdee3d1e3995cabedf8ddc8d27091737 100644 --- a/compute/pztrsm.c +++ b/compute/pztrsm.c @@ -75,7 +75,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum lalpha, A(B->mt-1-k, B->mt-1-k), ldak, /* lda * tempkm */ B(B->mt-1-k, n), ldbk); /* ldb * tempnn */ } - MORSE_TASK_dataflush( &options, A(B->mt-1-k, B->mt-1-k) ); + MORSE_TASK_flush_data( &options, A(B->mt-1-k, B->mt-1-k) ); for (m = k+1; m < B->mt; m++) { ldam = BLKLDD(A, B->mt-1-m); ldbm = BLKLDD(B, B->mt-1-m); @@ -89,10 +89,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum B(B->mt-1-k, n ), ldbk, lalpha, B(B->mt-1-m, n ), ldbm); } - MORSE_TASK_dataflush( &options, A(B->mt-1-m, B->mt-1-k) ); + MORSE_TASK_flush_data( &options, A(B->mt-1-m, B->mt-1-k) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_dataflush( &options, B(B->mt-1-k, n) ); + MORSE_TASK_flush_data( &options, B(B->mt-1-k, n) ); } } } @@ -114,7 +114,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum lalpha, A(k, k), ldak, B(k, n), ldbk); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); for (m = k+1; m < B->mt; m++) { tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb; ldbm = BLKLDD(B, m); @@ -128,10 +128,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum B(k, n), ldbk, lalpha, B(m, n), ldbm); } - MORSE_TASK_dataflush( &options, A(k, m) ); + MORSE_TASK_flush_data( &options, A(k, m) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_dataflush( &options, B(k, n) ); + MORSE_TASK_flush_data( &options, B(k, n) ); } } @@ -156,7 +156,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum lalpha, A(k, k), ldak, B(k, n), ldbk); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); for (m = k+1; m < B->mt; m++) { tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb; ldam = BLKLDD(A, m); @@ -171,10 +171,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum B(k, n), ldbk, lalpha, B(m, n), ldbm); } - MORSE_TASK_dataflush( &options, A(m, k) ); + MORSE_TASK_flush_data( &options, A(m, k) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_dataflush( &options, B(k, n) ); + MORSE_TASK_flush_data( &options, B(k, n) ); } } } @@ -196,7 +196,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum lalpha, A(B->mt-1-k, B->mt-1-k), ldak, B(B->mt-1-k, n), ldbk); } - MORSE_TASK_dataflush( &options, A(B->mt-1-k, B->mt-1-k) ); + MORSE_TASK_flush_data( &options, A(B->mt-1-k, B->mt-1-k) ); for (m = k+1; m < B->mt; m++) { tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb; ldbm = BLKLDD(B, B->mt-1-m); @@ -210,10 +210,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum B(B->mt-1-k, n ), ldbk, lalpha, B(B->mt-1-m, n ), ldbm); } - MORSE_TASK_dataflush( &options, A(B->mt-1-k, B->mt-1-m) ); + MORSE_TASK_flush_data( &options, A(B->mt-1-k, B->mt-1-m) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_dataflush( &options, B(B->mt-1-k, n) ); + MORSE_TASK_flush_data( &options, B(B->mt-1-k, n) ); } } } @@ -239,7 +239,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum lalpha, A(k, k), ldak, /* lda * tempkn */ B(m, k), ldbm); /* ldb * tempkn */ } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); for (m = 0; m < B->mt; m++) { tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb; ldbm = BLKLDD(B, m); @@ -253,10 +253,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum A(k, n), ldak, /* lda * tempnn */ lalpha, B(m, n), ldbm); /* ldb * tempnn */ } - MORSE_TASK_dataflush( &options, B(m, k) ); + MORSE_TASK_flush_data( &options, B(m, k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_dataflush( &options, A(k, n) ); + MORSE_TASK_flush_data( &options, A(k, n) ); } } } @@ -276,7 +276,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum tempmm, tempkn, A->mb, alpha, A(B->nt-1-k, B->nt-1-k), ldak, /* lda * tempkn */ B( m, B->nt-1-k), ldbm); /* ldb * tempkn */ - MORSE_TASK_dataflush( &options, A(B->nt-1-k, B->nt-1-k) ); + MORSE_TASK_flush_data( &options, A(B->nt-1-k, B->nt-1-k) ); for (n = k+1; n < B->nt; n++) { ldan = BLKLDD(A, B->nt-1-n); @@ -288,10 +288,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum A(B->nt-1-n, B->nt-1-k), ldan, /* A->mb * tempkn (Never last row) */ zone, B(m, B->nt-1-n), ldbm); /* ldb * B->nb */ } - MORSE_TASK_dataflush( &options, B(m, B->nt-1-k) ); + MORSE_TASK_flush_data( &options, B(m, B->nt-1-k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_dataflush( &options, A(B->nt-1-n, B->nt-1-k) ); + MORSE_TASK_flush_data( &options, A(B->nt-1-n, B->nt-1-k) ); } } } @@ -314,7 +314,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum tempmm, tempkn, A->mb, lalpha, A(B->nt-1-k, B->nt-1-k), ldak, /* lda * tempkn */ B( m, B->nt-1-k), ldbm); /* ldb * tempkn */ - MORSE_TASK_dataflush( &options, A(B->nt-1-k, B->nt-1-k) ); + MORSE_TASK_flush_data( &options, A(B->nt-1-k, B->nt-1-k) ); for (n = k+1; n < B->nt; n++) { MORSE_TASK_zgemm( @@ -325,10 +325,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum A(B->nt-1-k, B->nt-1-n), ldak, /* lda * B->nb */ lalpha, B(m, B->nt-1-n), ldbm); /* ldb * B->nb */ } - MORSE_TASK_dataflush( &options, B(m, B->nt-1-k) ); + MORSE_TASK_flush_data( &options, B(m, B->nt-1-k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_dataflush( &options, A(B->nt-1-k, B->nt-1-n) ); + MORSE_TASK_flush_data( &options, A(B->nt-1-k, B->nt-1-n) ); } } } @@ -348,7 +348,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum tempmm, tempkn, A->mb, alpha, A(k, k), ldak, /* lda * tempkn */ B(m, k), ldbm); /* ldb * tempkn */ - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); for (n = k+1; n < B->nt; n++) { tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb; @@ -361,10 +361,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum A(n, k), ldan, /* ldan * tempkn */ zone, B(m, n), ldbm); /* ldb * tempnn */ } - MORSE_TASK_dataflush( &options, B(m, k) ); + MORSE_TASK_flush_data( &options, B(m, k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_dataflush( &options, A(n, k) ); + MORSE_TASK_flush_data( &options, A(n, k) ); } } diff --git a/compute/pztrsmpl.c b/compute/pztrsmpl.c index 4c8631b3d2f9d1fed197a8bdb4e074091b35fd6d..4c51e7a5eef96cee0880901ce9277b8a9459461b 100644 --- a/compute/pztrsmpl.c +++ b/compute/pztrsmpl.c @@ -87,6 +87,7 @@ void morse_pztrsmpl(MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *L, int *IPIV } } } + MORSE_TASK_flush_desc( &options, MorseLower, L ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pztrtri.c b/compute/pztrtri.c index 7326596561695d2b9f44a090454b3fdc814830f9..fbea4fe03db5e43c968f9bbc90cc767520b185c8 100644 --- a/compute/pztrtri.c +++ b/compute/pztrtri.c @@ -82,10 +82,10 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_dataflush( &options, A(m, k) ); + MORSE_TASK_flush_data( &options, A(m, k) ); } for (n = 0; n < k; n++) { - MORSE_TASK_dataflush( &options, A(k, n) ); + MORSE_TASK_flush_data( &options, A(k, n) ); MORSE_TASK_ztrsm( &options, MorseLeft, uplo, MorseNoTrans, diag, @@ -93,7 +93,7 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, zone, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); MORSE_TASK_ztrtri( &options, uplo, diag, @@ -133,11 +133,11 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_dataflush( &options, A(k, n) ); + MORSE_TASK_flush_data( &options, A(k, n) ); } for (m = 0; m < k; m++) { ldam = BLKLDD(A, m); - MORSE_TASK_dataflush( &options, A(m, k) ); + MORSE_TASK_flush_data( &options, A(m, k) ); MORSE_TASK_ztrsm( &options, MorseRight, uplo, MorseNoTrans, diag, @@ -145,7 +145,7 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, zone, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_dataflush( &options, A(k, k) ); + MORSE_TASK_flush_data( &options, A(k, k) ); MORSE_TASK_ztrtri( &options, uplo, diag, @@ -155,6 +155,6 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, RUNTIME_iteration_pop(morse); } } + MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); } diff --git a/compute/pzunglq.c b/compute/pzunglq.c index 3ae06f9cdf6a8db447c1917a518fdaa592e50e50..d764b3a71b19b785f06eaecad117c8827eafc467 100644 --- a/compute/pzunglq.c +++ b/compute/pzunglq.c @@ -141,8 +141,12 @@ void morse_pzunglq(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T, MORSE_desc RUNTIME_iteration_pop(morse); } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); + MORSE_TASK_flush_desc( &options, MorseUpper, T ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); (void)D; } diff --git a/compute/pzunglq_param.c b/compute/pzunglq_param.c index 4a5d7c21c60ea1bdf92997eb166cb630c612057e..6da5c30702d06b7db6a3d7cf928a953ddbeab1df 100644 --- a/compute/pzunglq_param.c +++ b/compute/pzunglq_param.c @@ -169,9 +169,14 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des RUNTIME_iteration_pop(morse); } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); + MORSE_TASK_flush_desc( &options, MorseUpper, TS ); + MORSE_TASK_flush_desc( &options, MorseUpper, TT ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzunglqrh.c b/compute/pzunglqrh.c index ae0bd1f35e2b435f77393b75b89f6db8352cac53..bd76fe5be8ce970c6aa6a202a8b21ce0b368adec 100644 --- a/compute/pzunglqrh.c +++ b/compute/pzunglqrh.c @@ -161,11 +161,14 @@ void morse_pzunglqrh(MORSE_desc_t *A, MORSE_desc_t *Q, Q(m, N), ldqm); } } - RUNTIME_iteration_pop(morse); } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); + MORSE_TASK_flush_desc( &options, MorseUpper, T ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); (void)D; } diff --git a/compute/pzungqr.c b/compute/pzungqr.c index 15d2d6a553aaac143be6a8c9d830a3ff29a02a27..c2e0829d166aca1856a11a8a7789b1e6f022dbaa 100644 --- a/compute/pzungqr.c +++ b/compute/pzungqr.c @@ -139,11 +139,14 @@ void morse_pzungqr(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T, MORSE_desc T(k, k), T->mb, Q(k, n), ldqk); } - RUNTIME_iteration_pop(morse); } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); + MORSE_TASK_flush_desc( &options, MorseLower, T ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); (void)D; } diff --git a/compute/pzungqr_param.c b/compute/pzungqr_param.c index 5c9df7ac554cf33d3b176fdaf36a9e983b1e9534..13b1be1c6a3f910b1062cbeafcf019c7bb219403 100644 --- a/compute/pzungqr_param.c +++ b/compute/pzungqr_param.c @@ -175,9 +175,14 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree, RUNTIME_iteration_pop(morse); } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); + MORSE_TASK_flush_desc( &options, MorseLower, TS ); + MORSE_TASK_flush_desc( &options, MorseLower, TT ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzungqrrh.c b/compute/pzungqrrh.c index 46d4412a183ea73b07ba3f5c36f3fa5e77ea4bbd..c383858d2313afdb47ad6a4820752542b95d50d1 100644 --- a/compute/pzungqrrh.c +++ b/compute/pzungqrrh.c @@ -166,11 +166,15 @@ void morse_pzungqrrh(MORSE_desc_t *A, MORSE_desc_t *Q, Q(M, n), ldqM); } } - RUNTIME_iteration_pop(morse); } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); + MORSE_TASK_flush_desc( &options, MorseLower, T ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzunmlq.c b/compute/pzunmlq.c index 572ac0254d9c0c58e3a865808c91e284f328ca30..c6547f3dc0720bc747d7cdccc2b48afc4035cdf3 100644 --- a/compute/pzunmlq.c +++ b/compute/pzunmlq.c @@ -312,8 +312,12 @@ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans, } } } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); + MORSE_TASK_flush_desc( &options, MorseUpper, T ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); (void)D; } diff --git a/compute/pzunmlq_param.c b/compute/pzunmlq_param.c index 10731ba0534956c130c39c442850cb7e5e365084..0b5ef65f8c77cd1fddb726cf2ec672d060c48d9f 100644 --- a/compute/pzunmlq_param.c +++ b/compute/pzunmlq_param.c @@ -432,10 +432,15 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree, } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); + MORSE_TASK_flush_desc( &options, MorseUpper, TS ); + MORSE_TASK_flush_desc( &options, MorseUpper, TT ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzunmlqrh.c b/compute/pzunmlqrh.c index 7d7c142ebc7a20f5e4963ae756ee970c831a96f9..ac288111c5c74ee1c8e4b52a14790e2eb7df2a32 100644 --- a/compute/pzunmlqrh.c +++ b/compute/pzunmlqrh.c @@ -407,8 +407,13 @@ void morse_pzunmlqrh(MORSE_enum side, MORSE_enum trans, } } } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); + MORSE_TASK_flush_desc( &options, MorseUpper, T ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzunmqr.c b/compute/pzunmqr.c index da5d917970a954d2077197bdf7b384bec5c2fad4..86dc63bd780ea02071078ebe6aa836c70645a169 100644 --- a/compute/pzunmqr.c +++ b/compute/pzunmqr.c @@ -317,8 +317,12 @@ void morse_pzunmqr(MORSE_enum side, MORSE_enum trans, } } } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); + MORSE_TASK_flush_desc( &options, MorseLower, T ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); (void)D; } diff --git a/compute/pzunmqr_param.c b/compute/pzunmqr_param.c index 6dc3e7dacb25e2516d2c8f887a0f79243216e253..5f7b20032020d22c7dea3bdfef1b78a74ccca9dd 100644 --- a/compute/pzunmqr_param.c +++ b/compute/pzunmqr_param.c @@ -431,10 +431,15 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree, } } + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); + MORSE_TASK_flush_desc( &options, MorseLower, TS ); + MORSE_TASK_flush_desc( &options, MorseLower, TT ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzunmqrrh.c b/compute/pzunmqrrh.c index f077cac7544b6e2c222487f2d8f93181c91c3bb0..80f9879db09d4fe3162794f99b11b23a445ed599 100644 --- a/compute/pzunmqrrh.c +++ b/compute/pzunmqrrh.c @@ -412,8 +412,12 @@ void morse_pzunmqrrh(MORSE_enum side, MORSE_enum trans, } } } + + MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); + MORSE_TASK_flush_desc( &options, MorseLower, T ); + MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); (void)D; } diff --git a/control/control.c b/control/control.c index 587a24ae1dfbd22dc7ffb93cac8c91005b260b2b..4a9dff466b7dcc8061573678991a07194a0b2de7 100644 --- a/control/control.c +++ b/control/control.c @@ -134,7 +134,7 @@ int MORSE_Finalize(void) morse_error("MORSE_Finalize()", "MORSE not initialized"); return MORSE_ERR_NOT_INITIALIZED; } - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); # if !defined(CHAMELEON_SIMULATION) RUNTIME_barrier(morse); # endif diff --git a/include/chameleon/morse_tasks.h b/include/chameleon/morse_tasks.h index a2fc5efe6ebaa02ed55a1f08ae920b1c6f00ea11..82abf2c7853cbf5269d8b1887386dbd48440762a 100644 --- a/include/chameleon/morse_tasks.h +++ b/include/chameleon/morse_tasks.h @@ -49,9 +49,11 @@ void MORSE_TASK_stile_zero(const MORSE_option_t *options, /* * Mark a data as unused after this call */ -void MORSE_TASK_dataflush(const MORSE_option_t *options, - const MORSE_desc_t *A, int Am, int An); -void MORSE_TASK_dataflush_all(); +void MORSE_TASK_flush_data( const MORSE_option_t *options, + const MORSE_desc_t *A, int Am, int An); +void MORSE_TASK_flush_desc( const MORSE_option_t *options, + MORSE_enum uplo, const MORSE_desc_t *A ); +void MORSE_TASK_flush_all(); #include "chameleon/morse_tasks_z.h" #include "chameleon/morse_tasks_d.h" diff --git a/runtime/parsec/codelets/codelet_dataflush.c b/runtime/parsec/codelets/codelet_dataflush.c index 606f8dc7d5b194d1565785cfb8913af1055193dd..9b3e40a3db8a355a10ff6f8651cbf5e25a48f98c 100644 --- a/runtime/parsec/codelets/codelet_dataflush.c +++ b/runtime/parsec/codelets/codelet_dataflush.c @@ -22,17 +22,28 @@ #include "chameleon_parsec.h" #include "chameleon/chameleon_tasks.h" -void MORSE_TASK_dataflush(const MORSE_option_t *options, - const MORSE_desc_t *A, int Am, int An) +void MORSE_TASK_flush_data( const MORSE_option_t *options, + const MORSE_desc_t *A, int Am, int An ) { - (void)options; (void)A; + (void)options; (void)A; (void)Am; (void)An; /* - * This is useful for StarPU implementation, if it happens in Quark, it will - * need to be done carefuly to not break both runtimes. + * This is useful for StarPU and PaRSEC MPI implementation, if it happens in + * Quark, it will need to be done carefuly to not break other runtimes. */ } -void MORSE_TASK_dataflush_all() +void MORSE_TASK_flush_desc( const MORSE_option_t *options, + MORSE_enum uplo, const MORSE_desc_t *A ) +{ + (void)options; (void)uplo; (void)A; + + /* + * This is useful for StarPU and PaRSEC MPI implementation, if it happens in + * Quark, it will need to be done carefuly to not break other runtimes. + */ +} + +void MORSE_TASK_flush_all() { } diff --git a/runtime/quark/codelets/codelet_dataflush.c b/runtime/quark/codelets/codelet_dataflush.c index 300f335840c00cbf923f2c7b23ebbf2efeb0a8e4..cbec78c35a0739516c61a3c7d36a99c2cfbb3148 100644 --- a/runtime/quark/codelets/codelet_dataflush.c +++ b/runtime/quark/codelets/codelet_dataflush.c @@ -26,17 +26,28 @@ **/ #include "chameleon_quark.h" -void MORSE_TASK_dataflush(const MORSE_option_t *options, - const MORSE_desc_t *A, int Am, int An) +void MORSE_TASK_flush_data( const MORSE_option_t *options, + const MORSE_desc_t *A, int Am, int An ) { (void)options; (void)A; (void)Am; (void)An; /* - * This is useful for StarPU implementation, if it happens in Quark, it will - * need to be done carefuly to not break both runtimes. + * This is useful for StarPU and PaRSEC MPI implementation, if it happens in + * Quark, it will need to be done carefuly to not break other runtimes. */ } -void MORSE_TASK_dataflush_all() +void MORSE_TASK_flush_desc( const MORSE_option_t *options, + MORSE_enum uplo, const MORSE_desc_t *A ) +{ + (void)options; (void)uplo; (void)A; + + /* + * This is useful for StarPU and PaRSEC MPI implementation, if it happens in + * Quark, it will need to be done carefuly to not break other runtimes. + */ +} + +void MORSE_TASK_flush_all() { } diff --git a/runtime/starpu/codelets/codelet_dataflush.c b/runtime/starpu/codelets/codelet_dataflush.c index 2e43d5ec1f324151b3429b5c3726bf8bf529b186..be96e164ca891e1ec4c16091a22455604a9b83c2 100644 --- a/runtime/starpu/codelets/codelet_dataflush.c +++ b/runtime/starpu/codelets/codelet_dataflush.c @@ -56,16 +56,11 @@ int RUNTIME_desc_iscached(const MORSE_desc_t *A, int Am, int An) #endif #endif -void MORSE_TASK_dataflush(const MORSE_option_t *options, +void MORSE_TASK_flush_data(const MORSE_option_t *options, const MORSE_desc_t *A, int Am, int An) { (void)options; - /* - * We can use MORSE_Complex64_t for all precisions since it is not use to - * compute the handle address in starpu. We have to be careful with this if - * something similar happen in Quark. - */ { starpu_data_handle_t *ptrtile = (starpu_data_handle_t*)(A->schedopt); ptrtile += ((int64_t)(A->lmt) * (int64_t)An + (int64_t)Am); @@ -91,7 +86,46 @@ void MORSE_TASK_dataflush(const MORSE_option_t *options, } } -void MORSE_TASK_dataflush_all() +void MORSE_TASK_flush_desc( const MORSE_option_t *options, + MORSE_enum uplo, const MORSE_desc_t *A ) +{ + int m, n; + + switch (uplo) { + /* + * MorseUpper + */ + case MorseUpper: + for (m = 0; m < A->mt; m++) { + for (n = m; n < A->nt; n++) { + MORSE_TASK_flush_data( options, A, m, n ); + } + } + break; + /* + * MorseLower + */ + case MorseLower: + for (m = 0; m < A->mt; m++) { + for (n = 0; n < chameleon_min(m+1, A->nt); n++) { + MORSE_TASK_flush_data( options, A, m, n ); + } + } + break; + /* + * MorseUpperLower + */ + case MorseUpperLower: + default: + for (m = 0; m < A->mt; m++) { + for (n = 0; n < A->nt; n++) { + MORSE_TASK_flush_data( options, A, m, n ); + } + } + } +} + +void MORSE_TASK_flush_all() { #if defined(CHAMELEON_USE_MPI) starpu_mpi_cache_flush_all_data(MPI_COMM_WORLD); diff --git a/runtime/starpu/codelets/codelet_ztile_zero.c b/runtime/starpu/codelets/codelet_ztile_zero.c index 26841ceb373d51768a66062e05feb11bb75ed2d6..218a0ed15805e4bcf0aade236f57abdf80b74803 100644 --- a/runtime/starpu/codelets/codelet_ztile_zero.c +++ b/runtime/starpu/codelets/codelet_ztile_zero.c @@ -30,9 +30,9 @@ /***************************************************************************** * **/ -void MORSE_TASK_ztile_zero(const const MORSE_option_t *options, - int X1, int X2, int Y1, int Y2, - const MORSE_desc_t *A, int Am, int An, int lda) +void MORSE_TASK_ztile_zero( const MORSE_option_t *options, + int X1, int X2, int Y1, int Y2, + const MORSE_desc_t *A, int Am, int An, int lda ) { struct starpu_codelet *codelet; codelet = &cl_ztile_zero; diff --git a/timing/time_zsytrf_tile.c b/timing/time_zsytrf_tile.c index b3ea2ab4b705ef69ce3985b1f9c58f19938a84c8..423b77b7068c5ee9e63b085c97294cd7db411677 100644 --- a/timing/time_zsytrf_tile.c +++ b/timing/time_zsytrf_tile.c @@ -68,7 +68,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) } PASTE_CODE_FREE_MATRIX( descA ); - MORSE_TASK_dataflush_all(); + MORSE_TASK_flush_all(); return 0; }