diff --git a/compute/pzbuild.c b/compute/pzbuild.c index 1b8d361a45ae0c91a6844576fe2b4ee74782bfd7..2bf0f50755c6e6c6c0b374313534e059385ab6fb 100644 --- a/compute/pzbuild.c +++ b/compute/pzbuild.c @@ -86,6 +86,5 @@ void morse_pzbuild( MORSE_enum uplo, MORSE_desc_t *A, void *user_data, void* use } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize( &options, morse); } diff --git a/compute/pzgelqf.c b/compute/pzgelqf.c index 3821a120983f2a5cda5082eaeeb0321d5c419e93..150335f7fbf87e6b4f0f440adf859d7c27e831a2 100644 --- a/compute/pzgelqf.c +++ b/compute/pzgelqf.c @@ -153,10 +153,7 @@ 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_flush_all(); (void)D; } diff --git a/compute/pzgelqf_param.c b/compute/pzgelqf_param.c index 88588051e1ef4e3d3baac9b254aefe02ee841d07..8a889b05c659d96c106362d8b1c82d7fbf0ff569 100644 --- a/compute/pzgelqf_param.c +++ b/compute/pzgelqf_param.c @@ -196,12 +196,8 @@ 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_flush_all(); (void)D; } diff --git a/compute/pzgelqfrh.c b/compute/pzgelqfrh.c index 141d94195d1800aa0e9158d3e4a97f97f78e26ff..ad11204ad69da663e4c680896ffe286436fb90cf 100644 --- a/compute/pzgelqfrh.c +++ b/compute/pzgelqfrh.c @@ -181,10 +181,7 @@ 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_flush_all(); (void)D; } diff --git a/compute/pzgemm.c b/compute/pzgemm.c index e001af357c58b8938c74085a7ce89c4d2204020f..92c04d02c17461e45b1e1799b7cd5b305a8db4e8 100644 --- a/compute/pzgemm.c +++ b/compute/pzgemm.c @@ -134,19 +134,17 @@ void morse_pzgemm(MORSE_enum transA, MORSE_enum transB, } } } - MORSE_TASK_flush_data( &options, C(m, n) ); + RUNTIME_data_flush( sequence, C(m, n) ); } if (transA == MorseNoTrans) { for (k = 0; k < A->nt; k++) { - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } } else { for (k = 0; k < A->mt; k++) { - MORSE_TASK_flush_data( &options, A(k, m) ); + RUNTIME_data_flush( sequence, A(k, m) ); } } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzgeqrf.c b/compute/pzgeqrf.c index 1ccd8bb99dae30fec44fe4a3e150a368b21c6fe2..08796a3dbac44a656106f5176a14e2992687ddb1 100644 --- a/compute/pzgeqrf.c +++ b/compute/pzgeqrf.c @@ -147,10 +147,7 @@ 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_flush_all(); (void)D; } diff --git a/compute/pzgeqrf_param.c b/compute/pzgeqrf_param.c index 2382953a802dab0a2f219ad1941dc1c659c29092..3845f4627f459ebeda7733d1e976589f30e6c430 100644 --- a/compute/pzgeqrf_param.c +++ b/compute/pzgeqrf_param.c @@ -195,12 +195,8 @@ 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_flush_all(); (void)D; } diff --git a/compute/pzgeqrfrh.c b/compute/pzgeqrfrh.c index aeec53fabbb299ca258319ef5c5f25baa8635dd6..6fffcf2edf3c5bec1052fc5694ac1b3b40f9eb9f 100644 --- a/compute/pzgeqrfrh.c +++ b/compute/pzgeqrfrh.c @@ -180,10 +180,7 @@ 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_flush_all(); (void)D; } diff --git a/compute/pzgetrf_incpiv.c b/compute/pzgetrf_incpiv.c index 9b01a7552c952aed98a79bda85af22545d81efa1..058dc1018973c93b144058c28e580dfbe6a11b14 100644 --- a/compute/pzgetrf_incpiv.c +++ b/compute/pzgetrf_incpiv.c @@ -136,11 +136,8 @@ 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_flush_all(); morse_desc_mat_free(DIAG); free(DIAG); diff --git a/compute/pzgetrf_nopiv.c b/compute/pzgetrf_nopiv.c index 1385462496fec63ad7c1286fd2d5f2c936a15fc9..3a276b820db42e2016d8946b504afebf15833423 100644 --- a/compute/pzgetrf_nopiv.c +++ b/compute/pzgetrf_nopiv.c @@ -104,7 +104,5 @@ 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_flush_all(); } diff --git a/compute/pzhemm.c b/compute/pzhemm.c index a8582ee597f84c26b237e4b83fad0fffb1917e85..06a5115a91f1870c243cd2ee6aa02996f365b42a 100644 --- a/compute/pzhemm.c +++ b/compute/pzhemm.c @@ -226,9 +226,5 @@ 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_flush_all(); } diff --git a/compute/pzher2k.c b/compute/pzher2k.c index 9bde1020aaf3c705ac60b6378804ba787ec7fd23..2462e431409dd3073cac9d49c04f75e2500db693 100644 --- a/compute/pzher2k.c +++ b/compute/pzher2k.c @@ -214,9 +214,5 @@ 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_flush_all(); } diff --git a/compute/pzherk.c b/compute/pzherk.c index e3dd914f372242d87ac4037e6b524b9575b65ccc..a83db2e5e8a17b372e5f1491467a18a774cdf2c1 100644 --- a/compute/pzherk.c +++ b/compute/pzherk.c @@ -173,7 +173,5 @@ 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); } diff --git a/compute/pzhetrd_he2hb.c b/compute/pzhetrd_he2hb.c index 0d8ed1d2f3160e9b5e008f0081a56cdebb8c538c..873721ed6d89726da97ee022e79f67f0b063d9c1 100644 --- a/compute/pzhetrd_he2hb.c +++ b/compute/pzhetrd_he2hb.c @@ -436,10 +436,8 @@ void morse_pzhetrd_he2hb(MORSE_enum uplo, } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); MORSE_Sequence_Wait(sequence); morse_desc_mat_free(D); diff --git a/compute/pzlacpy.c b/compute/pzlacpy.c index 220c8b9dbdd6c12e94afcb23a12ac58413a5ffd8..f38330bc942f1c03e8303d29afc5614ba3f34cc0 100644 --- a/compute/pzlacpy.c +++ b/compute/pzlacpy.c @@ -129,7 +129,5 @@ 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); } diff --git a/compute/pzlag2c.c b/compute/pzlag2c.c index ec193214e4aa00e0391f2e4d51f4516499f92a78..73f3798c730c6f9bc3e8985c0de41b9409d87a27 100644 --- a/compute/pzlag2c.c +++ b/compute/pzlag2c.c @@ -67,7 +67,5 @@ 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); } diff --git a/compute/pzlange.c b/compute/pzlange.c index 83eee09a6c8511743c0e15b7a6118dcc8cc80e78..7e68eb1890455eee49e5a405de21a8c65733f020 100644 --- a/compute/pzlange.c +++ b/compute/pzlange.c @@ -412,5 +412,4 @@ 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_flush_all(); } diff --git a/compute/pzlanhe.c b/compute/pzlanhe.c index a637a283d648f92a4c760ccb87d636cd9b41acec..781115b601da96f44f137721bcc19fa16ebd75d1 100644 --- a/compute/pzlanhe.c +++ b/compute/pzlanhe.c @@ -456,5 +456,4 @@ 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_flush_all(); } diff --git a/compute/pzlansy.c b/compute/pzlansy.c index cdb4c1dcab6d3c545f8d43052e294cc391609e5c..7f3877c84c051582019bcd5ffa0777f16e5725f9 100644 --- a/compute/pzlansy.c +++ b/compute/pzlansy.c @@ -465,5 +465,4 @@ 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_flush_all(); } diff --git a/compute/pzlantr.c b/compute/pzlantr.c index 7f6ded725d09a4913259ba0a65da32d6a3359bc2..639ebdfde03861fad4f4b56052a3c68687e24f1a 100644 --- a/compute/pzlantr.c +++ b/compute/pzlantr.c @@ -665,5 +665,4 @@ void morse_pzlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, } RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzlascal.c b/compute/pzlascal.c index 2659c3d7e9c43cb131b75a1c59bbd26f10996da5..1809a5a12f15d5ea778a542fd0857d71de31c342 100644 --- a/compute/pzlascal.c +++ b/compute/pzlascal.c @@ -97,6 +97,5 @@ void morse_pzlascal(MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_desc_t *A, } } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzlaset.c b/compute/pzlaset.c index a14ba24f0906bd491d0e16ccb6f41e1e42e63857..a0a71b0dac1dff52ffaf38433e19e2b45445014f 100644 --- a/compute/pzlaset.c +++ b/compute/pzlaset.c @@ -118,6 +118,5 @@ void morse_pzlaset(MORSE_enum uplo, A(j, j), ldaj); } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzlaset2.c b/compute/pzlaset2.c index c56661594e293db4fb28ececedaedc9c28e19dc3..94142791c3879db8f6a281a82a93e79a76538b8b 100644 --- a/compute/pzlaset2.c +++ b/compute/pzlaset2.c @@ -108,6 +108,5 @@ void morse_pzlaset2(MORSE_enum uplo, MORSE_Complex64_t alpha, } } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzlauum.c b/compute/pzlauum.c index 9ff23bebea324af581de9af2c7bd96ca5841e9b9..de8faf8f8ab1587d287fcf9fdf0b51ea88ec5248 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_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); MORSE_TASK_ztrmm( &options, MorseRight, uplo, MorseConjTrans, MorseNonUnit, @@ -129,13 +129,12 @@ void morse_pzlauum(MORSE_enum uplo, MORSE_desc_t *A, 1.0, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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); } diff --git a/compute/pzplghe.c b/compute/pzplghe.c index d0b0d16e0f4a66f7fc98a6b3a432fc2e22792f69..0f6e559dd9f7b44d0fe0407f325571e5ebda1856 100644 --- a/compute/pzplghe.c +++ b/compute/pzplghe.c @@ -97,6 +97,5 @@ void morse_pzplghe( double bump, MORSE_enum uplo, MORSE_desc_t *A, } } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzplgsy.c b/compute/pzplgsy.c index 3c8c288bf80a57c30b3e992bcc2857634ab5870d..a7c8b282855214ee7ad9988fb815ea2904b57c36 100644 --- a/compute/pzplgsy.c +++ b/compute/pzplgsy.c @@ -97,6 +97,5 @@ void morse_pzplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, } } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzplrnt.c b/compute/pzplrnt.c index 1e2fc8c61d8d45778549a08e326e184969e9c6a9..53fe68f2772012cb737420ac2cf439d6536a6413 100644 --- a/compute/pzplrnt.c +++ b/compute/pzplrnt.c @@ -60,6 +60,5 @@ 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); } diff --git a/compute/pzpotrf.c b/compute/pzpotrf.c index 662c96fd1050671274d6db890c692104720a445b..562d7109a4fd5229dcb5476f97a219d312970d88 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(n, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); for (m = k+1; m < A->mt; m++) { tempmm = m == A->mt-1 ? A->m - m*A->mb : A->mb; @@ -170,7 +170,7 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A, A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(k, m) ); + RUNTIME_data_flush( sequence, A(k, m) ); } RUNTIME_iteration_pop(morse); diff --git a/compute/pzpotrimm.c b/compute/pzpotrimm.c index abbbd1d03bd6c2e6d618c39ccdf42d9d12c03adc..09d6bd39d7a8df7b6007bd5cf05db9c44cc24090 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(n, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } for (n = 0; n < k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, B(m, k) ); + RUNTIME_data_flush( sequence, B(m, k) ); } for (n = 0; n <= k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, m) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); } for (m = 0; m < k; m++) { ldam = BLKLDD(A, m); - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, B(m, k) ); + RUNTIME_data_flush( sequence, B(m, k) ); } for (m = 0; m <= k; m++) { - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } RUNTIME_iteration_pop(morse); @@ -479,5 +479,4 @@ 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 71b95895790cd969316790ce7f871b51da7cb46d..a51cc6437ea120da8f9c3bd0066378ea624993ee 100644 --- a/compute/pzsymm.c +++ b/compute/pzsymm.c @@ -141,16 +141,16 @@ void morse_pzsymm(MORSE_enum side, MORSE_enum uplo, } } } - MORSE_TASK_flush_data( &options, B(k, n) ); + RUNTIME_data_flush( sequence, B(k, n) ); } if (uplo == MorseLower) { for (n = 0; n <= k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); } } else { for (m = 0; m <= k; m++) { - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } } } @@ -242,20 +242,19 @@ void morse_pzsymm(MORSE_enum side, MORSE_enum uplo, } } } - MORSE_TASK_flush_data( &options, B(m, k) ); + RUNTIME_data_flush( sequence, B(m, k) ); } if (uplo == MorseLower) { for (n = 0; n <= k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); } } else { for (m = 0; m <= k; m++) { - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } } } } RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzsyr2k.c b/compute/pzsyr2k.c index 68e4d6ee10c6f207e25a2087dd4b301eac21be44..9903b623a6722bed14e16afe88774a78158b822b 100644 --- a/compute/pzsyr2k.c +++ b/compute/pzsyr2k.c @@ -213,9 +213,5 @@ 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_flush_all(); } diff --git a/compute/pzsyrk.c b/compute/pzsyrk.c index 49508895c5aabd53caa555efff8b967757febb7f..41b5efd0a3f5daeb4928fa98889cba74c6cfe254 100644 --- a/compute/pzsyrk.c +++ b/compute/pzsyrk.c @@ -172,7 +172,5 @@ 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); } diff --git a/compute/pzsytrf.c b/compute/pzsytrf.c index 2ea509a512d9ed1afd16da1ad445bd8d496e84da..2a4ce3a6e7ab7ba3b3dc47e38faf4c1e803e8d80 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(n, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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,13 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A, A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(k, m) ); + RUNTIME_data_flush( sequence, A(k, m) ); } RUNTIME_iteration_pop(morse); } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pztile.c b/compute/pztile.c index c5222001063655c1d9e706b715101c53a759fd32..6b9b49a8233d3ebfbc8a0c967aa13b7bd0c60da8 100644 --- a/compute/pztile.c +++ b/compute/pztile.c @@ -72,10 +72,9 @@ void morse_pzlapack_to_tile(MORSE_Complex64_t *Af77, int ldaf77, MORSE_desc_t *A } } + RUNTIME_desc_flush( &B, sequence ); RUNTIME_sequence_wait( morse, sequence ); RUNTIME_options_finalize( &options, morse ); - MORSE_TASK_flush_all(); - RUNTIME_desc_getoncpu( &B ); RUNTIME_desc_destroy( &B ); } @@ -122,10 +121,9 @@ void morse_pztile_to_lapack(MORSE_desc_t *A, MORSE_Complex64_t *Af77, int ldaf77 } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + RUNTIME_desc_flush( &B, sequence ); RUNTIME_sequence_wait( morse, sequence ); RUNTIME_options_finalize( &options, morse ); - RUNTIME_desc_getoncpu( &B ); RUNTIME_desc_destroy( &B ); } diff --git a/compute/pztile2band.c b/compute/pztile2band.c index 22b8ca68fea6be025cc4df1e59b58df84c68f785..cf71f839f85e597126e590a7bdc01f1af0038a2b 100644 --- a/compute/pztile2band.c +++ b/compute/pztile2band.c @@ -118,7 +118,6 @@ void morse_pztile2band(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, } } RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } #undef B #undef A diff --git a/compute/pztpgqrt.c b/compute/pztpgqrt.c index fe4b413eae2c407fe39e804c6d7aaa53cdee9e3c..0746b2786a0d7bca579b56da23cb72f7ec7e3014 100644 --- a/compute/pztpgqrt.c +++ b/compute/pztpgqrt.c @@ -162,13 +162,6 @@ 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); (void)D; diff --git a/compute/pztpqrt.c b/compute/pztpqrt.c index 6101c0934b551cc1a2d5cba6388ad6e68353e7da..da8d152c1c4411b8f18df79cf1e07b5f710abba1 100644 --- a/compute/pztpqrt.c +++ b/compute/pztpqrt.c @@ -111,9 +111,6 @@ 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); } diff --git a/compute/pztradd.c b/compute/pztradd.c index 8d121b7e9d1b916129c3de29d30803993e552633..34baf5eab237beeec58655760292f83bdedd2172 100644 --- a/compute/pztradd.c +++ b/compute/pztradd.c @@ -194,7 +194,5 @@ 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 b9f6cb0063da5bfba8a0dbd20257d0b5fcf53363..ce0d543453aa7ac2935f10e278b0ff6373fd9d5b 100644 --- a/compute/pztrmm.c +++ b/compute/pztrmm.c @@ -311,7 +311,5 @@ 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); } diff --git a/compute/pztrsm.c b/compute/pztrsm.c index c861890ccdee3d1e3995cabedf8ddc8d27091737..6338801f6521c02e28dd71f1c2cf6bb9417dc261 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_flush_data( &options, A(B->mt-1-k, B->mt-1-k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(B->mt-1-m, B->mt-1-k) ); + RUNTIME_data_flush( sequence, A(B->mt-1-m, B->mt-1-k) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, B(B->mt-1-k, n) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, m) ); + RUNTIME_data_flush( sequence, A(k, m) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, B(k, n) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, B(k, n) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(B->mt-1-k, B->mt-1-k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(B->mt-1-k, B->mt-1-m) ); + RUNTIME_data_flush( sequence, A(B->mt-1-k, B->mt-1-m) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, B(B->mt-1-k, n) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, B(m, k) ); + RUNTIME_data_flush( sequence, B(m, k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(B->nt-1-k, B->nt-1-k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, B(m, B->nt-1-k) ); + RUNTIME_data_flush( sequence, B(m, B->nt-1-k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, A(B->nt-1-n, B->nt-1-k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(B->nt-1-k, B->nt-1-k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, B(m, B->nt-1-k) ); + RUNTIME_data_flush( sequence, B(m, B->nt-1-k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, A(B->nt-1-k, B->nt-1-n) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, B(m, k) ); + RUNTIME_data_flush( sequence, B(m, k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, A(n, k) ); + RUNTIME_data_flush( sequence, A(n, k) ); } } diff --git a/compute/pztrsmpl.c b/compute/pztrsmpl.c index 4c51e7a5eef96cee0880901ce9277b8a9459461b..5da3da0c8f078b4dfbbebeb7492036c9c84a6aff 100644 --- a/compute/pztrsmpl.c +++ b/compute/pztrsmpl.c @@ -87,7 +87,5 @@ 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); } diff --git a/compute/pztrtri.c b/compute/pztrtri.c index fbea4fe03db5e43c968f9bbc90cc767520b185c8..c81fcb941eb6c8101353cfbfde13185514e8a8df 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_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } for (n = 0; n < k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); } for (m = 0; m < k; m++) { ldam = BLKLDD(A, m); - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, 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_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); MORSE_TASK_ztrtri( &options, uplo, diag, @@ -155,6 +155,5 @@ 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); } diff --git a/compute/pzunglq.c b/compute/pzunglq.c index d764b3a71b19b785f06eaecad117c8827eafc467..bd038ef98fecd77ab029db4ddee701ece1abc182 100644 --- a/compute/pzunglq.c +++ b/compute/pzunglq.c @@ -142,10 +142,6 @@ 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); (void)D; diff --git a/compute/pzunglq_param.c b/compute/pzunglq_param.c index 6da5c30702d06b7db6a3d7cf928a953ddbeab1df..adc3512ff57fa88d9b79b1272eddee14cdad87c4 100644 --- a/compute/pzunglq_param.c +++ b/compute/pzunglq_param.c @@ -169,14 +169,8 @@ 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_flush_all(); (void)D; } diff --git a/compute/pzunglqrh.c b/compute/pzunglqrh.c index bd76fe5be8ce970c6aa6a202a8b21ce0b368adec..72836940f2ef8f4e87a7b218357e2f2b17e9fff2 100644 --- a/compute/pzunglqrh.c +++ b/compute/pzunglqrh.c @@ -164,10 +164,6 @@ void morse_pzunglqrh(MORSE_desc_t *A, MORSE_desc_t *Q, 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); (void)D; diff --git a/compute/pzungqr.c b/compute/pzungqr.c index c2e0829d166aca1856a11a8a7789b1e6f022dbaa..6e42f5371d85d25331f00e5d25ab862f5a771166 100644 --- a/compute/pzungqr.c +++ b/compute/pzungqr.c @@ -142,10 +142,6 @@ void morse_pzungqr(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, MorseLower, T ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); (void)D; diff --git a/compute/pzungqr_param.c b/compute/pzungqr_param.c index 13b1be1c6a3f910b1062cbeafcf019c7bb219403..a0849b634ee1679ed5ea6c32fb3a486a9dd9bfff 100644 --- a/compute/pzungqr_param.c +++ b/compute/pzungqr_param.c @@ -175,14 +175,8 @@ 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_flush_all(); (void)D; } diff --git a/compute/pzungqrrh.c b/compute/pzungqrrh.c index c383858d2313afdb47ad6a4820752542b95d50d1..1d0516298a0ec3dbbcfd1aa783b29e2a0c697e63 100644 --- a/compute/pzungqrrh.c +++ b/compute/pzungqrrh.c @@ -169,12 +169,7 @@ void morse_pzungqrrh(MORSE_desc_t *A, MORSE_desc_t *Q, 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_flush_all(); (void)D; } diff --git a/compute/pzunmlq.c b/compute/pzunmlq.c index c6547f3dc0720bc747d7cdccc2b48afc4035cdf3..25a5369ac3fa71316840da6c1cf2a7cb1d815f0d 100644 --- a/compute/pzunmlq.c +++ b/compute/pzunmlq.c @@ -313,10 +313,6 @@ 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); (void)D; diff --git a/compute/pzunmlq_param.c b/compute/pzunmlq_param.c index 0b5ef65f8c77cd1fddb726cf2ec672d060c48d9f..5ad102180aa5557f3bc9083af56074806dec95a5 100644 --- a/compute/pzunmlq_param.c +++ b/compute/pzunmlq_param.c @@ -432,15 +432,9 @@ 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_flush_all(); (void)D; } diff --git a/compute/pzunmlqrh.c b/compute/pzunmlqrh.c index ac288111c5c74ee1c8e4b52a14790e2eb7df2a32..371d08e4fbb128dffcc68101f991a2c2a6856854 100644 --- a/compute/pzunmlqrh.c +++ b/compute/pzunmlqrh.c @@ -408,12 +408,7 @@ 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_flush_all(); (void)D; } diff --git a/compute/pzunmqr.c b/compute/pzunmqr.c index 86dc63bd780ea02071078ebe6aa836c70645a169..0f05f4edfcef4e385eda6540afb4bfa26391b897 100644 --- a/compute/pzunmqr.c +++ b/compute/pzunmqr.c @@ -318,10 +318,6 @@ 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); (void)D; diff --git a/compute/pzunmqr_param.c b/compute/pzunmqr_param.c index 5f7b20032020d22c7dea3bdfef1b78a74ccca9dd..ae9b46d5e9755f0cd03c46e367dadb52d0b8084b 100644 --- a/compute/pzunmqr_param.c +++ b/compute/pzunmqr_param.c @@ -431,15 +431,9 @@ 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_flush_all(); (void)D; } diff --git a/compute/pzunmqrrh.c b/compute/pzunmqrrh.c index 80f9879db09d4fe3162794f99b11b23a445ed599..d6d57629e902b1613dce8ce6a34fa194344f42df 100644 --- a/compute/pzunmqrrh.c +++ b/compute/pzunmqrrh.c @@ -413,10 +413,6 @@ 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); (void)D; diff --git a/compute/zgeadd.c b/compute/zgeadd.c index bb3e9afec9e44bf3ebfb63b7eb614ead584e6263..b6e85b32297b0b56bbd9b3e0d9aaa6a46230e657 100644 --- a/compute/zgeadd.c +++ b/compute/zgeadd.c @@ -249,8 +249,8 @@ int MORSE_zgeadd_Tile(MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zgeadd_Tile_Async(trans, alpha, A, beta, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgelqf.c b/compute/zgelqf.c index 9dcd6e8f11c8967fc1a7459823faf9b2c3753b72..55b9284837f7af7fd60f17702fcba108942c4d1b 100644 --- a/compute/zgelqf.c +++ b/compute/zgelqf.c @@ -200,7 +200,7 @@ int MORSE_zgelqf_Tile(MORSE_desc_t *A, MORSE_desc_t *T) } morse_sequence_create(morse, &sequence); MORSE_zgelqf_Tile_Async(A, T, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgelqf_param.c b/compute/zgelqf_param.c index 215f6efd524ee6ae96266cf642c449f85df4b2db..d650ba8ad5f3b180d22f0011dd334ce27b3b55b8 100644 --- a/compute/zgelqf_param.c +++ b/compute/zgelqf_param.c @@ -197,7 +197,7 @@ int MORSE_zgelqf_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgelqf_param_Tile_Async(qrtree, A, TS, TT, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgelqs.c b/compute/zgelqs.c index c82f52ecd8b3bd2fd70fba2150deb66c234bc9b8..b9410fd3d107681ccdbeac7bd54ed92537ba0580 100644 --- a/compute/zgelqs.c +++ b/compute/zgelqs.c @@ -222,8 +222,8 @@ int MORSE_zgelqs_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zgelqs_Tile_Async(A, T, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgelqs_param.c b/compute/zgelqs_param.c index 76384fb7d0fbe0037232fe33198116414281345d..ac5c26520b0d471eabea1a527630959d135dc55a 100644 --- a/compute/zgelqs_param.c +++ b/compute/zgelqs_param.c @@ -227,8 +227,8 @@ int MORSE_zgelqs_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgelqs_param_Tile_Async(qrtree, A, TS, TT, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgels.c b/compute/zgels.c index 9a83d4fa9da74df74d9675118c1ff16785b3ebc2..4ab15cb6d82b1b12fb3cdc18df73a7f04abcb674 100644 --- a/compute/zgels.c +++ b/compute/zgels.c @@ -286,8 +286,8 @@ int MORSE_zgels_Tile(MORSE_enum trans, MORSE_desc_t *A, } morse_sequence_create(morse, &sequence); MORSE_zgels_Tile_Async(trans, A, T, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgels_param.c b/compute/zgels_param.c index 4588de3a1f0bf1ce145f280b0f1b30e6042625d7..9e91871be2973d89a78be91aa3c2e788074d757f 100644 --- a/compute/zgels_param.c +++ b/compute/zgels_param.c @@ -291,8 +291,8 @@ int MORSE_zgels_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum trans, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgels_param_Tile_Async(qrtree, trans, A, TS, TT, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgemm.c b/compute/zgemm.c index b69e804a34e73fbba2e287d71bd7068176f7eb2b..332b540061849362a78b9c4dc8d893e39ae56bbb 100644 --- a/compute/zgemm.c +++ b/compute/zgemm.c @@ -321,9 +321,9 @@ int MORSE_zgemm_Tile(MORSE_enum transA, MORSE_enum transB, } morse_sequence_create(morse, &sequence); MORSE_zgemm_Tile_Async(transA, transB, alpha, A, B, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgeqrf.c b/compute/zgeqrf.c index 04433b567e09dc67580a05b41b27ddc494ee6e7b..5e500472b0dd8c3ed530b94c9e230b7833bd8172 100644 --- a/compute/zgeqrf.c +++ b/compute/zgeqrf.c @@ -199,7 +199,7 @@ int MORSE_zgeqrf_Tile(MORSE_desc_t *A, MORSE_desc_t *T) } morse_sequence_create(morse, &sequence); MORSE_zgeqrf_Tile_Async(A, T, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgeqrf_param.c b/compute/zgeqrf_param.c index 3924becd6192526800e722d9d6ee198f0c8f1ede..a67f508db78185e1264e6935a0cfa379df024c1c 100644 --- a/compute/zgeqrf_param.c +++ b/compute/zgeqrf_param.c @@ -206,7 +206,7 @@ int MORSE_zgeqrf_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgeqrf_param_Tile_Async(qrtree, A, TS, TT, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgeqrs.c b/compute/zgeqrs.c index 99e7cea47541fc56f93c254e705870ea0f28ba9e..29b962f4f6c5f20483682f54eff2822ee9402edc 100644 --- a/compute/zgeqrs.c +++ b/compute/zgeqrs.c @@ -221,9 +221,9 @@ int MORSE_zgeqrs_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zgeqrs_Tile_Async(A, T, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( T, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( T, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgeqrs_param.c b/compute/zgeqrs_param.c index 83d16068e4566e3b8dbe8b91098531eb5f623e30..6e6cb28b394e3b1d815757968cd6dcbf5ae56ae6 100644 --- a/compute/zgeqrs_param.c +++ b/compute/zgeqrs_param.c @@ -216,10 +216,10 @@ int MORSE_zgeqrs_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgeqrs_param_Tile_Async(qrtree, A, TS, TT, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( TS, sequence ); - RUNTIME_desc_getoncpu_async( TT, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( TS, sequence ); + RUNTIME_desc_flush( TT, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgesv_incpiv.c b/compute/zgesv_incpiv.c index 59b3b9f81bed692e0eee1b8eef9b1868674e40c7..ca0ca1e6a74dfa96cce66e4616ebd1be54f4af4c 100644 --- a/compute/zgesv_incpiv.c +++ b/compute/zgesv_incpiv.c @@ -226,8 +226,8 @@ int MORSE_zgesv_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_d } morse_sequence_create(morse, &sequence); MORSE_zgesv_incpiv_Tile_Async(A, L, IPIV, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgesv_nopiv.c b/compute/zgesv_nopiv.c index 0e8ae5277de07611c343a81ae3b0e3eeaf4a0907..bc0d9bdf9d3fd297954c2a6cc14d692c59002705 100644 --- a/compute/zgesv_nopiv.c +++ b/compute/zgesv_nopiv.c @@ -218,8 +218,8 @@ int MORSE_zgesv_nopiv_Tile(MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zgesv_nopiv_Tile_Async(A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgetrf_incpiv.c b/compute/zgetrf_incpiv.c index 9ea8c5562b26a1d0e56f9966ab88ebf38ade9042..aaf96f147bfdf88424c2200fd29eb645e005aa47 100644 --- a/compute/zgetrf_incpiv.c +++ b/compute/zgetrf_incpiv.c @@ -204,7 +204,7 @@ int MORSE_zgetrf_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV) } morse_sequence_create(morse, &sequence); MORSE_zgetrf_incpiv_Tile_Async(A, L, IPIV, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgetrf_nopiv.c b/compute/zgetrf_nopiv.c index 14546df8d967d205d62fce83b21250c84616056f..5e56c4a8b6bd8dffd399385ebc61bcf2ac52ea36 100644 --- a/compute/zgetrf_nopiv.c +++ b/compute/zgetrf_nopiv.c @@ -192,7 +192,7 @@ int MORSE_zgetrf_nopiv_Tile(MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zgetrf_nopiv_Tile_Async(A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgetrs_incpiv.c b/compute/zgetrs_incpiv.c index 5cf6d483a9cab1b36c91e0470ab6797f96c1378f..195b0895d444eb00ca8e7b5ad70bff8bd06a5800 100644 --- a/compute/zgetrs_incpiv.c +++ b/compute/zgetrs_incpiv.c @@ -229,8 +229,8 @@ int MORSE_zgetrs_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgetrs_incpiv_Tile_Async(A, L, IPIV, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgetrs_nopiv.c b/compute/zgetrs_nopiv.c index 8be6d99d9409e7f1bd04043c77056b1771f5d7a4..f92c66abf05da77ee81aa117a5ac2f1d21411e03 100644 --- a/compute/zgetrs_nopiv.c +++ b/compute/zgetrs_nopiv.c @@ -217,8 +217,8 @@ int MORSE_zgetrs_nopiv_Tile(MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zgetrs_nopiv_Tile_Async(A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zheevd.c b/compute/zheevd.c index 548c38b9eefb905c60605e4911217d73b37dec8a..c7f85cce3a699d060a2435344159eda9cf0de509 100644 --- a/compute/zheevd.c +++ b/compute/zheevd.c @@ -261,8 +261,8 @@ int MORSE_zheevd_Tile(MORSE_enum jobz, MORSE_enum uplo, MORSE_zheevd_Tile_Async(jobz, uplo, A, W, T, sequence, &request); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( T, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( T, sequence ); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zhemm.c b/compute/zhemm.c index ad7429942dff1cb02c8b655a127a0dc807ee5e67..5b6b31852f6335f10dde0a428acb5988abb6338d 100644 --- a/compute/zhemm.c +++ b/compute/zhemm.c @@ -286,9 +286,9 @@ int MORSE_zhemm_Tile(MORSE_enum side, MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_zhemm_Tile_Async(side, uplo, alpha, A, B, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zher2k.c b/compute/zher2k.c index 2f41bd1a7f16b83c1579da2cd1ad5454b3607c7d..e8f2e6d892b9bf8be8b7c8f3fff666afce446ece 100644 --- a/compute/zher2k.c +++ b/compute/zher2k.c @@ -285,9 +285,9 @@ int MORSE_zher2k_Tile(MORSE_enum uplo, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zher2k_Tile_Async(uplo, trans, alpha, A, B, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zherk.c b/compute/zherk.c index e0a0a1b87d87b2f0c7aa32e5e606848d07e3eb87..6fbe72d552b780604b3b3026e7c68e3cb7452227 100644 --- a/compute/zherk.c +++ b/compute/zherk.c @@ -261,8 +261,8 @@ int MORSE_zherk_Tile(MORSE_enum uplo, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zherk_Tile_Async(uplo, trans, alpha, A, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zlange.c b/compute/zlange.c index a11499a2bcc902770b75fa1c3da9de1e8ce4cc8d..82831613fd334461bc4f2a1e1cf437d6eb328a03 100644 --- a/compute/zlange.c +++ b/compute/zlange.c @@ -147,7 +147,7 @@ double MORSE_zlange(MORSE_enum norm, int M, int N, /* if ( MORSE_TRANSLATION == MORSE_OUTOFPLACE ) {*/ morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - RUNTIME_desc_getoncpu_async( &descA, sequence ); + RUNTIME_desc_flush( &descA, sequence ); morse_sequence_wait(morse, sequence); morse_desc_mat_free(&descA); /* } else {*/ diff --git a/compute/zlanhe.c b/compute/zlanhe.c index 7130bd6bdc0679129970c10e702383bd92d2f0aa..e666221ace06405bf247ff7faab0d9b2cc7ec18d 100644 --- a/compute/zlanhe.c +++ b/compute/zlanhe.c @@ -147,7 +147,7 @@ double MORSE_zlanhe(MORSE_enum norm, MORSE_enum uplo, int N, /* if ( MORSE_TRANSLATION == MORSE_OUTOFPLACE ) {*/ morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - RUNTIME_desc_getoncpu_async( &descA, sequence ); + RUNTIME_desc_flush( &descA, sequence ); morse_sequence_wait(morse, sequence); morse_desc_mat_free(&descA); /* } else {*/ diff --git a/compute/zlauum.c b/compute/zlauum.c index 23ac0ebb28bb22d70bd3b3d0cbc2c533f80dd0f5..8ef3f032d56c4805b9e8fad10267a7cc1eb97a26 100644 --- a/compute/zlauum.c +++ b/compute/zlauum.c @@ -201,7 +201,7 @@ int MORSE_zlauum_Tile(MORSE_enum uplo, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zlauum_Tile_Async(uplo, A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zposv.c b/compute/zposv.c index 4bcbd9c5959b180f35ba0ebaf77ba81738847e60..5fe1ab279a4feb38ac097f80ca68bfed70807a54 100644 --- a/compute/zposv.c +++ b/compute/zposv.c @@ -244,8 +244,8 @@ int MORSE_zposv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zposv_Tile_Async(uplo, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zpotrf.c b/compute/zpotrf.c index 63c1b7b2c457936053f465c61b7179c3fc19bddb..08261848912dfe3913b30bc45f3e0ffd3adb1d9d 100644 --- a/compute/zpotrf.c +++ b/compute/zpotrf.c @@ -213,7 +213,7 @@ int MORSE_zpotrf_Tile(MORSE_enum uplo, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zpotrf_Tile_Async(uplo, A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zpotri.c b/compute/zpotri.c index cf15fe29e38b8c0bd25860933aa8699734a5b665..801f077cc45b83a80792ea563a91551e4be1f9e2 100644 --- a/compute/zpotri.c +++ b/compute/zpotri.c @@ -201,7 +201,7 @@ int MORSE_zpotri_Tile(MORSE_enum uplo, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zpotri_Tile_Async(uplo, A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zpotrimm.c b/compute/zpotrimm.c index 2d2089164318f0bf3c8a83d0a335c734aa91974a..180725746aa845cb28b197c915d64304e6e226e1 100644 --- a/compute/zpotrimm.c +++ b/compute/zpotrimm.c @@ -219,7 +219,7 @@ int MORSE_zpotrimm_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE } morse_sequence_create(morse, &sequence); MORSE_zpotrimm_Tile_Async(uplo, A, B, C, sequence, &request); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zpotrs.c b/compute/zpotrs.c index 21cb261cf970d499a66679cc0b125b01f87e7023..0494b688426132276bb426e911b8645bbd439e35 100644 --- a/compute/zpotrs.c +++ b/compute/zpotrs.c @@ -219,8 +219,8 @@ int MORSE_zpotrs_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zpotrs_Tile_Async(uplo, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsymm.c b/compute/zsymm.c index 51fdca0bd35090de889b85c4a05186e64d6c36fe..344f04da6f07ecd8b3be760a95e8d3621aaee504 100644 --- a/compute/zsymm.c +++ b/compute/zsymm.c @@ -286,9 +286,9 @@ int MORSE_zsymm_Tile(MORSE_enum side, MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_zsymm_Tile_Async(side, uplo, alpha, A, B, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsyr2k.c b/compute/zsyr2k.c index 9ad897f4e2160edb318631889d783b1ddeb96179..50c9b234e36efeb66d03c3347ebc1c6e88a56f2d 100644 --- a/compute/zsyr2k.c +++ b/compute/zsyr2k.c @@ -285,9 +285,9 @@ int MORSE_zsyr2k_Tile(MORSE_enum uplo, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zsyr2k_Tile_Async(uplo, trans, alpha, A, B, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsyrk.c b/compute/zsyrk.c index ac57f02928bfdc688a0d3af6013ad64ad83e1ca1..4b29d6b7f93eb1e267d901ae11a897b6119bc634 100644 --- a/compute/zsyrk.c +++ b/compute/zsyrk.c @@ -261,8 +261,8 @@ int MORSE_zsyrk_Tile(MORSE_enum uplo, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zsyrk_Tile_Async(uplo, trans, alpha, A, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsysv.c b/compute/zsysv.c index 818b7728295f1e0a4c3cf6ddd30b1c7fecaee6a2..d39bda8bfff3341c1453dcd894478e17d9de50e2 100644 --- a/compute/zsysv.c +++ b/compute/zsysv.c @@ -237,8 +237,8 @@ int MORSE_zsysv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zsysv_Tile_Async(uplo, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsytrf.c b/compute/zsytrf.c index c0cce1f3de7ad96f7d8a510a0c4f8f2fd3ffe7bc..c2e3eeead99ea9237859064a13a66558fdc25360 100644 --- a/compute/zsytrf.c +++ b/compute/zsytrf.c @@ -202,7 +202,7 @@ int MORSE_zsytrf_Tile(MORSE_enum uplo, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zsytrf_Tile_Async(uplo, A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsytrs.c b/compute/zsytrs.c index 7411d24796bf724a2f2d28146459fdd706a1eeb8..df6f7d9dea81ba12ef7e6f443d14f3f9105b2796 100644 --- a/compute/zsytrs.c +++ b/compute/zsytrs.c @@ -215,8 +215,8 @@ int MORSE_zsytrs_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zsytrs_Tile_Async(uplo, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztile.c b/compute/ztile.c index cdeb0e1e9c72a1b2f438751af57da85b60ffadc2..6e1ae38430872ccc643a4ff63a9bf91bf12467ea 100644 --- a/compute/ztile.c +++ b/compute/ztile.c @@ -84,7 +84,7 @@ int MORSE_zLapack_to_Tile(MORSE_Complex64_t *Af77, int LDA, MORSE_desc_t *A) morse_pzlapack_to_tile( Af77, LDA, A, sequence, &request); RUNTIME_sequence_wait( morse, sequence ); - RUNTIME_desc_getoncpu_async( A , sequence ); + RUNTIME_desc_flush( A , sequence ); status = sequence->status; morse_sequence_destroy(morse, sequence); @@ -211,7 +211,7 @@ int MORSE_zTile_to_Lapack(MORSE_desc_t *A, MORSE_Complex64_t *Af77, int LDA) morse_pztile_to_lapack( A, Af77, LDA, sequence, &request); RUNTIME_sequence_wait( morse, sequence ); - RUNTIME_desc_getoncpu_async( A , sequence ); + RUNTIME_desc_flush( A , sequence ); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; diff --git a/compute/ztpgqrt.c b/compute/ztpgqrt.c index f5f2b0595b741956595d16d4c76f0f4e9a9e8aa6..bf6fee28d640f5e6345299766d1e983c74a5a7d3 100644 --- a/compute/ztpgqrt.c +++ b/compute/ztpgqrt.c @@ -296,8 +296,8 @@ int MORSE_ztpgqrt_Tile( int L, } morse_sequence_create(morse, &sequence); MORSE_ztpgqrt_Tile_Async(L, V1, T1, V2, T2, Q1, Q2, sequence, &request); - RUNTIME_desc_getoncpu_async( Q1, sequence ); - RUNTIME_desc_getoncpu_async( Q2, sequence ); + RUNTIME_desc_flush( Q1, sequence ); + RUNTIME_desc_flush( Q2, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztpqrt.c b/compute/ztpqrt.c index b8cf1b3844bc112e42594f8569411fec1ee04ea0..3298638e02705a80365fc645a57c1c906e76c021 100644 --- a/compute/ztpqrt.c +++ b/compute/ztpqrt.c @@ -268,8 +268,8 @@ int MORSE_ztpqrt_Tile( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T } morse_sequence_create(morse, &sequence); MORSE_ztpqrt_Tile_Async(L, A, B, T, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztradd.c b/compute/ztradd.c index ab16ed27781534b44be0a35835fac006dcbd0689..7bbf05f99cc7828f7c8f7201cf1d63258c5a605d 100644 --- a/compute/ztradd.c +++ b/compute/ztradd.c @@ -265,8 +265,8 @@ int MORSE_ztradd_Tile(MORSE_enum uplo, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_ztradd_Tile_Async(uplo, trans, alpha, A, beta, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztrmm.c b/compute/ztrmm.c index 1e7411a545853946907c2edf180da40f5d026d28..434621d6da5963f885d2e35142b9d1db28b8f22f 100644 --- a/compute/ztrmm.c +++ b/compute/ztrmm.c @@ -287,8 +287,8 @@ int MORSE_ztrmm_Tile(MORSE_enum side, MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_ztrmm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztrsm.c b/compute/ztrsm.c index 282ec5e2e300383b2d202bd499cce0b0b1aa4249..db4e89dec01cd316b7933dd5faf1c798923cf1e1 100644 --- a/compute/ztrsm.c +++ b/compute/ztrsm.c @@ -285,8 +285,8 @@ int MORSE_ztrsm_Tile(MORSE_enum side, MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_ztrsm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztrsmpl.c b/compute/ztrsmpl.c index 6bac3866c263ff55b60cf3f48680b4275ea29299..0439834108f356cdb5ed263047c219f069596656 100644 --- a/compute/ztrsmpl.c +++ b/compute/ztrsmpl.c @@ -214,8 +214,8 @@ int MORSE_ztrsmpl_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t } morse_sequence_create(morse, &sequence); MORSE_ztrsmpl_Tile_Async(A, L, IPIV, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztrtri.c b/compute/ztrtri.c index 01ca06dbc26afdb1444fc9a41fe5c6787d462e3c..2f2d36c6040991076ab17946577becfde41f311a 100644 --- a/compute/ztrtri.c +++ b/compute/ztrtri.c @@ -220,7 +220,7 @@ int MORSE_ztrtri_Tile(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_ztrtri_Tile_Async(uplo, diag, A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunglq.c b/compute/zunglq.c index ff911006ddfa25c629d5c98a51776a2b4ddf76ba..7ececcb759dc1614ec1ec3b72f2691c541c6c841 100644 --- a/compute/zunglq.c +++ b/compute/zunglq.c @@ -216,8 +216,8 @@ int MORSE_zunglq_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *Q) } morse_sequence_create(morse, &sequence); MORSE_zunglq_Tile_Async(A, T, Q, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( Q, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunglq_param.c b/compute/zunglq_param.c index 957ae5b3c5722957c659b2cdc2aa5ee16b02f597..5b6d30e6065194ea3f825b7304f889c8f9be2bb9 100644 --- a/compute/zunglq_param.c +++ b/compute/zunglq_param.c @@ -213,8 +213,8 @@ int MORSE_zunglq_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zunglq_param_Tile_Async(qrtree, A, TS, TT, Q, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( Q, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zungqr.c b/compute/zungqr.c index 9e0b3d1bf01c4b938b14f1d37ab15fbb82d23f62..822dc4e568f7c9bca64af7c37746b57105aeba7f 100644 --- a/compute/zungqr.c +++ b/compute/zungqr.c @@ -215,8 +215,8 @@ int MORSE_zungqr_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *Q) } morse_sequence_create(morse, &sequence); MORSE_zungqr_Tile_Async(A, T, Q, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( Q, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zungqr_param.c b/compute/zungqr_param.c index 5a3b7185552a3bf22885320e84ce0faa9cd0adc7..af88ea598d0b1f9c13bfd1c328f5f5ec2e1170d3 100644 --- a/compute/zungqr_param.c +++ b/compute/zungqr_param.c @@ -214,8 +214,8 @@ int MORSE_zungqr_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zungqr_param_Tile_Async(qrtree, A, TS, TT, Q, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( Q, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunmlq.c b/compute/zunmlq.c index ef13e6fca60e3aff09e1f4ca23f7d2574c781fc3..81535c19d79ff71a24345609b2e319ad90c4056a 100644 --- a/compute/zunmlq.c +++ b/compute/zunmlq.c @@ -269,8 +269,8 @@ int MORSE_zunmlq_Tile(MORSE_enum side, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zunmlq_Tile_Async(side, trans, A, T, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunmlq_param.c b/compute/zunmlq_param.c index 6a2fdcfa3426971d3c2adefc0c4768cad51a760d..b6f746d02e23a78cbfdd0853a34953d6d04fdac5 100644 --- a/compute/zunmlq_param.c +++ b/compute/zunmlq_param.c @@ -268,8 +268,8 @@ int MORSE_zunmlq_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zunmlq_param_Tile_Async(qrtree, side, trans, A, TS, TT, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunmqr.c b/compute/zunmqr.c index ab3d7659d7ad0b4b137dea42f762ea8875c4837a..4464aaecbe90f5d6bbf86bf4c644aa89ccbe87d5 100644 --- a/compute/zunmqr.c +++ b/compute/zunmqr.c @@ -273,8 +273,8 @@ int MORSE_zunmqr_Tile(MORSE_enum side, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zunmqr_Tile_Async(side, trans, A, T, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunmqr_param.c b/compute/zunmqr_param.c index a8cb3ae25f1fa90a5584085b3d9edad735d384ab..d285caabf0ce422062a6b621355c85bf309c4de4 100644 --- a/compute/zunmqr_param.c +++ b/compute/zunmqr_param.c @@ -274,8 +274,8 @@ int MORSE_zunmqr_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zunmqr_param_Tile_Async(qrtree, side, trans, A, TS, TT, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/control/control.c b/control/control.c index fb742b5b491646be64a30fa46818d365bf056ca7..58bc403c18402dd3d42151042325de561eab1afe 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_flush_all(); + RUNTIME_flush(); # if !defined(CHAMELEON_SIMULATION) RUNTIME_barrier(morse); # endif diff --git a/control/descriptor.c b/control/descriptor.c index 798c97f50dfe7c8945902c7e33a562012261c424..de7d216bdda0750193727395791c2fe9d3631479 100644 --- a/control/descriptor.c +++ b/control/descriptor.c @@ -809,8 +809,7 @@ int MORSE_Desc_Release (MORSE_desc_t *desc) { * * @ingroup Descriptor * - * MORSE_Desc_Getoncpu - Apply an acquire and a release on the data of the - * descriptors so that its values are up-to-date in the main memory. + * MORSE_Desc_Flush - Flushes the data in the sequence when they won't be reused. This calls cleans up the distributed communication caches, and transfer the data back to the CPU. * ****************************************************************************** * @@ -823,8 +822,11 @@ int MORSE_Desc_Release (MORSE_desc_t *desc) { * \retval MORSE_SUCCESS successful exit * *****************************************************************************/ -int MORSE_Desc_Getoncpu(MORSE_desc_t *desc) { - return RUNTIME_desc_getoncpu( desc ); +int MORSE_Desc_Flush( MORSE_desc_t *desc, + MORSE_sequence_t *sequence ) +{ + RUNTIME_desc_flush( desc, sequence ); + return MORSE_SUCCESS; } /** diff --git a/doc/orgmode/chapters/using.org b/doc/orgmode/chapters/using.org index 5bc65eaed097a7b8d10bfbe517598325dfbf4881..7bf39140f57702191dee06f459a506e2754c254f 100644 --- a/doc/orgmode/chapters/using.org +++ b/doc/orgmode/chapters/using.org @@ -1004,7 +1004,7 @@ Ensure that all data are up-to-date in main memory (even if some tasks have been processed on GPUs). #+begin_src - int MORSE_Desc_Getoncpu(MORSE_desc_t *desc); + int MORSE_Desc_Flush(MORSE_desc_t *desc, MORSE_sequence_t *sequence); #+end_src Set the sizes for the MPI tags. Default value: tag_width=31, diff --git a/doc/texinfo/chapters/using.texi b/doc/texinfo/chapters/using.texi index bb50d74f50044dd41a8be8524bd0d4a148ebba8b..ae7dbe1009264ce26b1230e041ad92f9bd64bed2 100644 --- a/doc/texinfo/chapters/using.texi +++ b/doc/texinfo/chapters/using.texi @@ -830,7 +830,7 @@ int MORSE_Desc_Destroy (MORSE_desc_t **desc); Ensure that all data are up-to-date in main memory (even if some tasks have been processed on GPUs) @verbatim -int MORSE_Desc_Getoncpu(MORSE_desc_t *desc); +int MORSE_Desc_Flush(MORSE_desc_t *desc, MORSE_sequence_t *sequence); @end verbatim @node Options routines diff --git a/example/lapack_to_morse/step4.c b/example/lapack_to_morse/step4.c index b4111cdab378e21ea1abcc60f41892a71e14661c..3c37878e56eeca485e2eb922c5e036236bd59e35 100644 --- a/example/lapack_to_morse/step4.c +++ b/example/lapack_to_morse/step4.c @@ -141,15 +141,15 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs_Tile_Async( UPLO, descA, descX, sequence, &request); + /* Ensure that all data processed on the gpus we are depending on are back + * in main memory */ + MORSE_Desc_Flush( descA, sequence ); + MORSE_Desc_Flush( descX, sequence ); + /* Synchronization barrier (the runtime ensures that all submitted tasks * have been terminated */ MORSE_Sequence_Wait(sequence); - /* Ensure that all data processed on the gpus we are depending on are back - * in main memory */ - RUNTIME_desc_getoncpu(descA); - RUNTIME_desc_getoncpu(descX); - status = sequence->status; if ( status != 0 ) { fprintf(stderr, "Error in computation (%d)\n", status); diff --git a/example/lapack_to_morse/step5.c b/example/lapack_to_morse/step5.c index 46aa1d29ae495cbfa57a4f6b0890dbdb528db50c..addff8e7cb34534a4fc4589a94b2884d815b9bdc 100644 --- a/example/lapack_to_morse/step5.c +++ b/example/lapack_to_morse/step5.c @@ -145,15 +145,15 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs_Tile_Async( UPLO, descA, descX, sequence, &request); + /* Ensure that all data processed on the gpus we are depending on are back + * in main memory */ + MORSE_Desc_Flush( descA, sequence ); + MORSE_Desc_Flush( descX, sequence ); + /* Synchronization barrier (the runtime ensures that all submitted tasks * have been terminated */ MORSE_Sequence_Wait(sequence); - /* Ensure that all data processed on the gpus we are depending on are back - * in main memory */ - RUNTIME_desc_getoncpu(descA); - RUNTIME_desc_getoncpu(descX); - status = sequence->status; if ( status != 0 ) { fprintf(stderr, "Error in computation (%d)\n", status); diff --git a/example/lapack_to_morse/step6.c b/example/lapack_to_morse/step6.c index 68850db3f7e3af4374aee9e2f9f63b9abf89d8cd..074d4cfa8e054d9ddea83381e692d03ae7b140e2 100644 --- a/example/lapack_to_morse/step6.c +++ b/example/lapack_to_morse/step6.c @@ -167,15 +167,15 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs_Tile_Async( UPLO, descA, descX, sequence, &request); + /* Ensure that all data processed on the gpus we are depending on are back + * in main memory */ + MORSE_Desc_Flush( descA, sequence ); + MORSE_Desc_Flush( descX, sequence ); + /* Synchronization barrier (the runtime ensures that all submitted tasks * have been terminated */ MORSE_Sequence_Wait(sequence); - /* Ensure that all data processed on the gpus we are depending on are back - * in main memory */ - RUNTIME_desc_getoncpu(descA); - RUNTIME_desc_getoncpu(descX); - status = sequence->status; if ( status != 0 ) { fprintf(stderr, "Error in computation (%d)\n", status); diff --git a/example/lapack_to_morse/step7.c b/example/lapack_to_morse/step7.c index 15e00f5875bc32da15788188c8fd6e0e3fa7f115..fbb48e4e50deaa1ad1d48b9e3aad6963c6a0b72a 100644 --- a/example/lapack_to_morse/step7.c +++ b/example/lapack_to_morse/step7.c @@ -175,15 +175,15 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs_Tile_Async( UPLO, descA, descX, sequence, &request); + /* Ensure that all data processed on the gpus we are depending on are back + * in main memory */ + MORSE_Desc_Flush( descA, sequence ); + MORSE_Desc_Flush( descX, sequence ); + /* Synchronization barrier (the runtime ensures that all submitted tasks * have been terminated */ MORSE_Sequence_Wait(sequence); - /* Ensure that all data processed on the gpus we are depending on are back - * in main memory */ - RUNTIME_desc_getoncpu(descA); - RUNTIME_desc_getoncpu(descX); - status = sequence->status; if ( status != 0 ) { fprintf(stderr, "Error in computation (%d)\n", status); diff --git a/include/chameleon/morse_runtime.h b/include/chameleon/morse_runtime.h index c9f098f3f7ae8d78189a8503f08f0e319c5ccd26..76c83ce85505d1afac466de41a3d5c1f84b5ab49 100644 --- a/include/chameleon/morse_runtime.h +++ b/include/chameleon/morse_runtime.h @@ -394,52 +394,73 @@ int RUNTIME_desc_release( const MORSE_desc_t *desc ); /** - * @brief Make sure the data is brought back to the CPU main memory at the - * end of the algorithm. + * @brief Flush all pieces of data from a descriptor. + * + * This function marks all pieces of data from the descriptor as unused in the future to: + * - cleanup the data from the distributed cache if present. + * - mark for eviction from the GPU if space is needed + * - move the data back to the main memory * * @param[in] desc - * The descriptor to release. + * The descriptor to flush. * - * @retval MORSE_SUCCESS on success + * @param[in] sequence + * The sequence in which the data is used. */ -int -RUNTIME_desc_getoncpu( const MORSE_desc_t *desc ); +void +RUNTIME_desc_flush( const MORSE_desc_t *desc, + const MORSE_sequence_t *sequence ); /** - * @brief Make sure the data will be brought back to the CPU main memory at the - * end of the algorithm. + * @brief Flush all data submitted to the runtime systems from the distributed + * cache, and/or mark for eviction from the GPU memory. * - * This function is a asynchronous call that submit the data movement from - * remote memory to the main memory. This call must be completed by a call to - * RUNTIME_sequence_wait() to ensure that all data have been moved. - * Users should avoid to call this function as it sequentially moves back the - * data from outside the main memory to main memory, and should prefer - * RUNTIME_desc_getoncpu_async(). + * This function flushes all data from the distributed cache of the runtime system. + */ +void +RUNTIME_flush( ); + +/** + * @brief Flush a single piece of data. * - * @param[in] desc - * The descriptor to release. + * This function marks a piece of data as unused in the future to: + * - cleanup the data from the distributed cache if present. + * - mark for eviction from the GPU if space is needed + * - move the data back to the main memory * * @param[in] sequence - * The sequence to which submit the data movements + * The sequence in which the data is used. * - * @retval MORSE_SUCCESS on success + * @param[in] A + * The descriptor to which the piece of data belongs. + * + * @param[in] Am + * The row coordinate of the piece of data in the matrix + * + * @param[in] An + * The column coordinate of the piece of data in the matrix */ -int -RUNTIME_desc_getoncpu_async( const MORSE_desc_t *desc, - MORSE_sequence_t *sequence ); +void +RUNTIME_data_flush( const MORSE_sequence_t *sequence, + const MORSE_desc_t *A, int Am, int An ); /** * @brief Get the pointer to the data or the runtime handler associated to the * piece of data (m, n) in desc. * - * @param[in] desc - * The descriptor to release. + * @param[in] A + * The descriptor to which belongs the piece of data. * - * @retval MORSE_SUCCESS on success + * @param[in] Am + * The row coordinate of the piece of data in the matrix + * + * @param[in] An + * The column coordinate of the piece of data in the matrix + * + * @retval The runtime handler address of the piece of data. */ void * -RUNTIME_desc_getaddr( const MORSE_desc_t *desc, - int m, int n ); +RUNTIME_data_getaddr( const MORSE_desc_t *A, int Am, int An ); /** * @} diff --git a/include/chameleon/morse_tasks.h b/include/chameleon/morse_tasks.h index 82abf2c7853cbf5269d8b1887386dbd48440762a..a048e391eb40996b9429eb55bfc63ccaa16fa5b9 100644 --- a/include/chameleon/morse_tasks.h +++ b/include/chameleon/morse_tasks.h @@ -46,15 +46,6 @@ void MORSE_TASK_stile_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); -/* - * Mark a data as unused after this call - */ -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" #include "chameleon/morse_tasks_c.h" diff --git a/include/morse.h b/include/morse.h index 6d745743fdebf87f8c14dd903fb2f6b7e1982aa1..f967dd5c16ee2bcdc507eab4d7b7fc05c3856702 100644 --- a/include/morse.h +++ b/include/morse.h @@ -114,7 +114,7 @@ int MORSE_Desc_Create_OOC_User(MORSE_desc_t **desc, MORSE_enum dtyp, int MORSE_Desc_Destroy (MORSE_desc_t **desc); int MORSE_Desc_Acquire (MORSE_desc_t *desc); int MORSE_Desc_Release (MORSE_desc_t *desc); -int MORSE_Desc_Getoncpu(MORSE_desc_t *desc); +int MORSE_Desc_Flush(MORSE_desc_t *desc, MORSE_sequence_t *sequence); void MORSE_user_tag_size(int, int) ; /* Workspaces */ diff --git a/runtime/starpu/CMakeLists.txt b/runtime/starpu/CMakeLists.txt index 2bc2c94d14005fc9c0831f98920bac3b470c5e3e..a6d06b1ad6e193823f0ef152e10fd08216349a2d 100644 --- a/runtime/starpu/CMakeLists.txt +++ b/runtime/starpu/CMakeLists.txt @@ -95,7 +95,6 @@ set(RUNTIME_COMMON control/runtime_options.c control/runtime_profiling.c control/runtime_workspace.c - codelets/codelet_dataflush.c ${RUNTIME_COMMON_GENERATED} ) diff --git a/runtime/starpu/codelets/codelet_dataflush.c b/runtime/starpu/codelets/codelet_dataflush.c deleted file mode 100644 index a5347caf670e76abed5fc5a2859bf1489f5a7bd3..0000000000000000000000000000000000000000 --- a/runtime/starpu/codelets/codelet_dataflush.c +++ /dev/null @@ -1,118 +0,0 @@ -/** - * - * @copyright (c) 2009-2014 The University of Tennessee and The University - * of Tennessee Research Foundation. - * All rights reserved. - * @copyright (c) 2012-2014 Inria. All rights reserved. - * @copyright (c) 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. - * - **/ - -/** - * - * @file codelet_dataflush.c - * - * MORSE codelets kernel - * MORSE is a software package provided by Univ. of Tennessee, - * Univ. of California Berkeley and Univ. of Colorado Denver - * - * @version 2.5.0 - * @comment This file has been automatically generated - * from Plasma 2.5.0 for MORSE 1.0.0 - * @author Mathieu Faverge - * @author Marc Sergent - * @date 2014-02-05 - * - **/ -#include "chameleon_starpu.h" -#include "chameleon/morse_tasks.h" - -#ifdef HAVE_STARPU_DATA_WONT_USE -#elif defined HAVE_STARPU_IDLE_PREFETCH -static void data_flush(void *handle) -{ - starpu_data_idle_prefetch_on_node(handle, STARPU_MAIN_RAM, 1); - starpu_data_release_on_node(handle, -1); -} -#else -static void data_release(void *handle) -{ - starpu_data_release(handle); -} -#endif - -void MORSE_TASK_flush_data( const MORSE_option_t *options, - const MORSE_desc_t *A, int Am, int An ) -{ - (void)options; - - { - starpu_data_handle_t *ptrtile = (starpu_data_handle_t*)(A->schedopt); - ptrtile += ((int64_t)(A->lmt) * (int64_t)An + (int64_t)Am); - - if (*ptrtile != NULL) - { -#if defined(CHAMELEON_USE_MPI) - starpu_mpi_cache_flush(MPI_COMM_WORLD, *ptrtile); -#endif - - if ( A->myrank == A->get_rankof( A, Am, An ) ) - { - /* Push data to main memory when we have time to */ -#ifdef HAVE_STARPU_DATA_WONT_USE - starpu_data_wont_use(*ptrtile); -#elif defined HAVE_STARPU_IDLE_PREFETCH - starpu_data_acquire_on_node_cb(*ptrtile, -1, STARPU_R, data_flush, *ptrtile); -#else - starpu_data_acquire_cb(*ptrtile, STARPU_R, data_release, *ptrtile); -#endif - } - } - } -} - -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); -#endif -} diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c index 16308ce3fec54e38bb561a52963b06728b594b05..ee2350065243b40bc15d943d26f052875a7292f2 100644 --- a/runtime/starpu/control/runtime_descriptor.c +++ b/runtime/starpu/control/runtime_descriptor.c @@ -296,76 +296,96 @@ int RUNTIME_desc_release( const MORSE_desc_t *desc ) } /******************************************************************************* - * Get data on cpu - Synchronous call + * Flush cached data **/ -int RUNTIME_desc_getoncpu( const MORSE_desc_t *desc ) +void RUNTIME_flush() +{ +#if defined(CHAMELEON_USE_MPI) + starpu_mpi_cache_flush_all_data(MPI_COMM_WORLD); +#endif +} + +/***************************************************************************** + * Different implementations of the flush call based on StarPU version + */ +#ifdef HAVE_STARPU_DATA_WONT_USE + +static inline void +chameleon_starpu_data_wont_use( starpu_data_handle_t handle ) { + starpu_data_wont_use( handle ); +} + +#elif defined HAVE_STARPU_IDLE_PREFETCH + +static inline void +chameleon_starpu_data_flush( starpu_data_handle_t handle) +{ + starpu_data_idle_prefetch_on_node(handle, STARPU_MAIN_RAM, 1); + starpu_data_release_on_node(handle, -1); +} + +static inline void +chameleon_starpu_data_wont_use( starpu_data_handle_t handle ) { + starpu_data_acquire_on_node_cb( handle, -1, STARPU_R, + chameleon_starpu_data_flush, handle ); +} + +#else + +static inline void +chameleon_starpu_data_wont_use( starpu_data_handle_t handle ) { + starpu_data_acquire_cb( handle, STARPU_R, + (void (*)(void*))&starpu_data_release, handle ); + +#endif + +void RUNTIME_desc_flush( const MORSE_desc_t *desc, + const MORSE_sequence_t *sequence ) { starpu_data_handle_t *handle = (starpu_data_handle_t*)(desc->schedopt); int lmt = desc->lmt; int lnt = desc->lnt; int m, n; - if ( desc->ooc ) { - /* May not even fit */ - morse_warning( "RUNTIME_desc_getoncpu(StarPU)", - "Try to get an out-of-core matrix on main memory. Cancelled as it might not fit" ); - return MORSE_SUCCESS; - } - - for (n = 0; n < lnt; n++) { - for (m = 0; m < lmt; m++) + for (n = 0; n < lnt; n++) + { + for (m = 0; m < lmt; m++, handle++) { - if ( (*handle == NULL) || - !morse_desc_islocal( desc, m, n ) ) - { - handle++; + if ( *handle == NULL ) { continue; } - starpu_data_acquire(*handle, STARPU_R); - starpu_data_release(*handle); - handle++; +#if defined(CHAMELEON_USE_MPI) + starpu_mpi_cache_flush( MPI_COMM_WORLD, *handle ); +#endif + if ( morse_desc_islocal( desc, m, n ) ) { + chameleon_starpu_data_wont_use( *handle ); + } } } - return MORSE_SUCCESS; + + (void)sequence; } -/******************************************************************************* - * Get data on cpu - Asynchronous call - **/ -int RUNTIME_desc_getoncpu_async( const MORSE_desc_t *desc, - MORSE_sequence_t *sequence ) +void RUNTIME_data_flush( const MORSE_sequence_t *sequence, + const MORSE_desc_t *A, int Am, int An ) { - starpu_data_handle_t *handle = (starpu_data_handle_t*)(desc->schedopt); - int lmt = desc->lmt; - int lnt = desc->lnt; - int m, n; + starpu_data_handle_t *handle = (starpu_data_handle_t*)(A->schedopt); + handle += ((int64_t)(A->lmt) * (int64_t)An + (int64_t)Am); - if ( desc->ooc ) { - /* May not even fit */ - morse_warning( "RUNTIME_desc_getoncpu_async(StarPU)", - "Try to get an out-of-core matrix on main memory. Cancelled as it might not fit" ); - return MORSE_SUCCESS; + if (*handle == NULL) { + return; } - for (n = 0; n < lnt; n++) { - for (m = 0; m < lmt; m++) - { - if ( (*handle == NULL) || - !morse_desc_islocal( desc, m, n ) ) - { - handle++; - continue; - } +#if defined(CHAMELEON_USE_MPI) + starpu_mpi_cache_flush( MPI_COMM_WORLD, *handle ); +#endif - starpu_data_acquire_cb( *handle, STARPU_R, - (void (*)(void*))&starpu_data_release, *handle ); - handle++; - } + if ( morse_desc_islocal( A, Am, An ) ) { + chameleon_starpu_data_wont_use( *handle ); } (void)sequence; - return MORSE_SUCCESS; } /******************************************************************************* @@ -377,7 +397,7 @@ int RUNTIME_desc_getoncpu_async( const MORSE_desc_t *desc, #define STARPU_MAIN_RAM 0 #endif -void *RUNTIME_desc_getaddr( const MORSE_desc_t *desc, int m, int n ) +void *RUNTIME_data_getaddr( const MORSE_desc_t *desc, int m, int n ) { int64_t im = m + (desc->i / desc->mb); int64_t jn = n + (desc->j / desc->nb); diff --git a/runtime/starpu/include/chameleon_starpu.h.in b/runtime/starpu/include/chameleon_starpu.h.in index 8e3692f8e84a591fe87e00a8e1de3d07c4962455..7567425e6c5819f0fd4c03f0b132ca6518ced614 100644 --- a/runtime/starpu/include/chameleon_starpu.h.in +++ b/runtime/starpu/include/chameleon_starpu.h.in @@ -117,7 +117,7 @@ typedef struct starpu_conf starpu_conf_t; /** * Access to block pointer and leading dimension */ -#define RTBLKADDR( desc, type, m, n ) ( (starpu_data_handle_t)RUNTIME_desc_getaddr( desc, m, n ) ) +#define RTBLKADDR( desc, type, m, n ) ( (starpu_data_handle_t)RUNTIME_data_getaddr( desc, m, n ) ) void RUNTIME_set_reduction_methods(starpu_data_handle_t handle, MORSE_enum dtyp); diff --git a/timing/time_zgetri_tile.c b/timing/time_zgetri_tile.c index 471f30f621b2dfa57501d99b7d96d30fd7fe5121..ebd0a74f2e15017556e556491705eef4b58a7f6f 100644 --- a/timing/time_zgetri_tile.c +++ b/timing/time_zgetri_tile.c @@ -40,10 +40,10 @@ static int check_getri_factorization(MORSE_desc_t *descA1, MORSE_desc_t *descA2, MORSE_Complex64_t *b = (MORSE_Complex64_t *)malloc((descA1->m)*sizeof(MORSE_Complex64_t)); MORSE_Complex64_t *x = (MORSE_Complex64_t *)malloc((descA1->m)*sizeof(MORSE_Complex64_t)); - MORSE_Desc_Create(&descB, b, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, - descA1->m, 1, 0, 0, descA1->m, 1, 1, 1); - MORSE_Desc_Create(&descX, x, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, - descA1->m, 1, 0, 0, descA1->m, 1, 1, 1); + MORSE_Desc_Create(&descB, b, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, + descA1->m, 1, 0, 0, descA1->m, 1, 1, 1); + MORSE_Desc_Create(&descX, x, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, + descA1->m, 1, 0, 0, descA1->m, 1, 1, 1); MORSE_zplrnt_Tile( descX, 537 ); MORSE_zlacpy_Tile( MorseUpperLower, descX, descB); @@ -55,9 +55,9 @@ static int check_getri_factorization(MORSE_desc_t *descA1, MORSE_desc_t *descA2, Bnorm = MORSE_zlange_Tile(MorseInfNorm, descB, work); MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, - (MORSE_Complex64_t)1., descA1, descX, + (MORSE_Complex64_t)1., descA1, descX, (MORSE_Complex64_t)-1., descB); - + Rnorm = MORSE_zlange_Tile(MorseInfNorm, descB, work); if (getenv("MORSE_TESTING_VERBOSE")) @@ -96,26 +96,26 @@ static int check_getri_inverse(MORSE_desc_t *descA1, MORSE_desc_t *descA2, int * double eps = LAPACKE_dlamch_work('e'); MORSE_desc_t *descW; - MORSE_Desc_Create(&descW, work, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, + MORSE_Desc_Create(&descW, work, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, descA1->m, descA1->n, 0, 0, descA1->m, descA1->n); - + MORSE_zlaset_Tile( MorseUpperLower, (MORSE_Complex64_t)0., (MORSE_Complex64_t)1., descW); - MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, - (MORSE_Complex64_t)-1., descA2, descA1, + MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, + (MORSE_Complex64_t)-1., descA2, descA1, (MORSE_Complex64_t)1., descW); Anorm = MORSE_zlange_Tile(MorseInfNorm, descA1, W); Ainvnorm = MORSE_zlange_Tile(MorseInfNorm, descA2, W); Rnorm = MORSE_zlange_Tile(MorseInfNorm, descW, W); - - dparam[IPARAM_ANORM] = Anorm; - dparam[IPARAM_BNORM] = Ainvnorm; + + dparam[IPARAM_ANORM] = Anorm; + dparam[IPARAM_BNORM] = Ainvnorm; result = Rnorm / ( (Anorm*Ainvnorm)*descA1->m*eps ) ; dparam[IPARAM_RES] = Rnorm; if ( isnan(Ainvnorm) || isinf(Ainvnorm) || isnan(result) || isinf(result) || (result > 60.0) ) { - dparam[IPARAM_XNORM] = -1.; + dparam[IPARAM_XNORM] = -1.; } else{ dparam[IPARAM_XNORM] = 0.; @@ -129,12 +129,12 @@ static int check_getri_inverse(MORSE_desc_t *descA1, MORSE_desc_t *descA2, int * } static int -RunTest(int *iparam, double *dparam, morse_time_t *t_) +RunTest(int *iparam, double *dparam, morse_time_t *t_) { MORSE_desc_t descW; int ret = 0; PASTE_CODE_IPARAM_LOCALS( iparam ); - + if ( M != N ) { fprintf(stderr, "This timing works only with M == N\n"); return -1; @@ -155,69 +155,65 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) /* MORSE ZGETRF / ZTRTRI / ZTRSMRV */ { #if defined(TRACE_BY_SEQUENCE) - MORSE_sequence_t *sequence[4]; - MORSE_request_t request[4] = { MORSE_REQUEST_INITIALIZER, - MORSE_REQUEST_INITIALIZER, - MORSE_REQUEST_INITIALIZER, - MORSE_REQUEST_INITIALIZER }; - - MORSE_Sequence_Create(&sequence[0]); - MORSE_Sequence_Create(&sequence[1]); - MORSE_Sequence_Create(&sequence[2]); - MORSE_Sequence_Create(&sequence[3]); + MORSE_sequence_t *sequence; + MORSE_request_t request[4] = { MORSE_REQUEST_INITIALIZER, + MORSE_REQUEST_INITIALIZER, + MORSE_REQUEST_INITIALIZER, + MORSE_REQUEST_INITIALIZER }; + + MORSE_Sequence_Create(&sequence); if ( ! iparam[IPARAM_ASYNC] ) { - + START_TIMING(); - MORSE_zgetrf_Tile_Async(descA, piv, sequence[0], &request[0]); - MORSE_Sequence_Wait(sequence[0]); - - MORSE_ztrtri_Tile_Async(MorseUpper, MorseNonUnit, descA, sequence[1], &request[1]); - MORSE_Sequence_Wait(sequence[1]); - - MORSE_ztrsmrv_Tile_Async(MorseRight, MorseLower, MorseNoTrans, MorseUnit, - (MORSE_Complex64_t) 1.0, descA, &descW, sequence[2], &request[2]); - MORSE_Sequence_Wait(sequence[2]); - - MORSE_zlaswpc_Tile_Async(descA, 1, descA->m, piv, -1, sequence[3], &request[3]); - MORSE_Sequence_Wait(sequence[3]); - MORSE_Desc_Getoncpu( descA ); + MORSE_zgetrf_Tile_Async( descA, piv, sequence, &request[0] ); + MORSE_Sequence_Wait(sequence); + + MORSE_ztrtri_Tile_Async( MorseUpper, MorseNonUnit, descA, sequence, &request[1] ); + MORSE_Sequence_Wait(sequence); + + MORSE_ztrsmrv_Tile_Async( MorseRight, MorseLower, MorseNoTrans, MorseUnit, + (MORSE_Complex64_t) 1.0, descA, &descW, + sequence, &request[2] ); + MORSE_Sequence_Wait(sequence); + + MORSE_zlaswpc_Tile_Async( descA, 1, descA->m, piv, -1, + sequence, &request[3] ); + MORSE_Sequence_Wait(sequence); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); } else { START_TIMING(); - MORSE_zgetrf_Tile_Async( descA, piv, sequence[0], &request[0]); - MORSE_ztrtri_Tile_Async( MorseUpper, MorseNonUnit, - descA, sequence[1], &request[1]); - MORSE_ztrsmrv_Tile_Async(MorseRight, MorseLower, MorseNoTrans, MorseUnit, - (MORSE_Complex64_t) 1.0, - descA, &descW, sequence[2], &request[2]); - MORSE_zlaswpc_Tile_Async(descA, 1, descA->m, piv, -1, - sequence[3], &request[3]); - + MORSE_zgetrf_Tile_Async( descA, piv, sequence, &request[0]); + MORSE_ztrtri_Tile_Async( MorseUpper, MorseNonUnit, + descA, sequence, &request[1] ); + MORSE_ztrsmrv_Tile_Async( MorseRight, MorseLower, MorseNoTrans, MorseUnit, + (MORSE_Complex64_t) 1.0, + descA, &descW, sequence, &request[2] ); + MORSE_zlaswpc_Tile_Async( descA, 1, descA->m, piv, -1, + sequence, &request[3] ); + /* Wait for everything */ - MORSE_Sequence_Wait(sequence[0]); - MORSE_Sequence_Wait(sequence[1]); - MORSE_Sequence_Wait(sequence[2]); - MORSE_Sequence_Wait(sequence[3]); - MORSE_Desc_Getoncpu( descA ); + MORSE_Sequence_Wait( sequence ); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); - + } MORSE_Sequence_Destroy(sequence[0]); MORSE_Sequence_Destroy(sequence[1]); MORSE_Sequence_Destroy(sequence[2]); MORSE_Sequence_Destroy(sequence[3]); - + #else if ( ! iparam[IPARAM_ASYNC] ) { START_TIMING(); MORSE_zgetrf_Tile(descA, piv); MORSE_ztrtri_Tile(MorseUpper, MorseNonUnit, descA); - MORSE_ztrsmrv_Tile(MorseRight, MorseLower, MorseNoTrans, MorseUnit, + MORSE_ztrsmrv_Tile(MorseRight, MorseLower, MorseNoTrans, MorseUnit, (MORSE_Complex64_t) 1.0, descA, &descW); MORSE_zlaswpc_Tile(descA, 1, descA->m, piv, -1); STOP_TIMING(); @@ -225,28 +221,28 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) } else { MORSE_sequence_t *sequence; - MORSE_request_t request[2] = { MORSE_REQUEST_INITIALIZER, + MORSE_request_t request[2] = { MORSE_REQUEST_INITIALIZER, MORSE_REQUEST_INITIALIZER }; MORSE_Sequence_Create(&sequence); - + START_TIMING(); MORSE_zgetrf_Tile_Async(descA, piv, sequence, &request[0]); MORSE_zgetri_Tile_Async(descA, piv, &descW, sequence, &request[1]); MORSE_Sequence_Wait(sequence); - MORSE_Desc_Getoncpu( descA ); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); - - MORSE_Sequence_Destroy(sequence); + + MORSE_Sequence_Destroy(sequence); } #endif } - + /* Check the solution */ if ( check ) { ret = check_getri_inverse(descA2, descA, piv, dparam); - + PASTE_CODE_FREE_MATRIX( descA2 ); } @@ -256,4 +252,3 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) return ret; } - diff --git a/timing/time_zpotri_tile.c b/timing/time_zpotri_tile.c index 07ef6007f8a71bf8fd275301ce0c3af344ca26b2..3a2d59e5b6aebc91b591a7427cbd7f3394c551ea 100644 --- a/timing/time_zpotri_tile.c +++ b/timing/time_zpotri_tile.c @@ -50,40 +50,36 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) */ #if defined(TRACE_BY_SEQUENCE) { - MORSE_sequence_t *sequence[3]; + MORSE_sequence_t *sequence; MORSE_request_t request[3] = { MORSE_REQUEST_INITIALIZER, MORSE_REQUEST_INITIALIZER, MORSE_REQUEST_INITIALIZER }; - MORSE_Sequence_Create(&sequence[0]); - MORSE_Sequence_Create(&sequence[1]); - MORSE_Sequence_Create(&sequence[2]); + MORSE_Sequence_Create(&sequence); if ( ! iparam[IPARAM_ASYNC] ) { START_TIMING(); - MORSE_zpotrf_Tile_Async(uplo, descA, sequence[0], &request[0]); - MORSE_Sequence_Wait(sequence[0]); + MORSE_zpotrf_Tile_Async(uplo, descA, sequence, &request[0]); + MORSE_Sequence_Wait(sequence); - MORSE_ztrtri_Tile_Async(uplo, MorseNonUnit, descA, sequence[1], &request[1]); - MORSE_Sequence_Wait(sequence[1]); + MORSE_ztrtri_Tile_Async(uplo, MorseNonUnit, descA, sequence, &request[1]); + MORSE_Sequence_Wait(sequence); - MORSE_zlauum_Tile_Async(uplo, descA, sequence[2], &request[2]); - MORSE_Sequence_Wait(sequence[2]); - MORSE_Desc_Getoncpu( descA ); + MORSE_zlauum_Tile_Async(uplo, descA, sequence, &request[2]); + MORSE_Sequence_Wait(sequence); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); } else { START_TIMING(); - MORSE_zpotrf_Tile_Async(uplo, descA, sequence[0], &request[0]); - MORSE_ztrtri_Tile_Async(uplo, MorseNonUnit, descA, sequence[1], &request[1]); - MORSE_zlauum_Tile_Async(uplo, descA, sequence[2], &request[2]); - - MORSE_Sequence_Wait(sequence[0]); - MORSE_Sequence_Wait(sequence[1]); - MORSE_Sequence_Wait(sequence[2]); - MORSE_Desc_Getoncpu( descA ); + MORSE_zpotrf_Tile_Async(uplo, descA, sequence, &request[0]); + MORSE_ztrtri_Tile_Async(uplo, MorseNonUnit, descA, sequence, &request[1]); + MORSE_zlauum_Tile_Async(uplo, descA, sequence, &request[2]); + + MORSE_Sequence_Wait(sequence); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); } @@ -113,7 +109,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) MORSE_zpotrf_Tile_Async(uplo, descA, sequence, &request[0]); MORSE_zpotri_Tile_Async(uplo, descA, sequence, &request[1]); MORSE_Sequence_Wait(sequence); - MORSE_Desc_Getoncpu( descA ); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); MORSE_Sequence_Destroy(sequence); diff --git a/timing/time_zsytrf_tile.c b/timing/time_zsytrf_tile.c index 423b77b7068c5ee9e63b085c97294cd7db411677..54cf336554d29761dbf573a0480d5b2523cb184b 100644 --- a/timing/time_zsytrf_tile.c +++ b/timing/time_zsytrf_tile.c @@ -58,17 +58,16 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) dparam[IPARAM_ANORM] = MORSE_zlange_Tile(MorseInfNorm, descAC); dparam[IPARAM_BNORM] = MORSE_zlange_Tile(MorseInfNorm, descB); dparam[IPARAM_XNORM] = MORSE_zlange_Tile(MorseInfNorm, descX); - MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, 1.0, descAC, descX, -1.0, descB ); - dparam[IPARAM_RES] = MORSE_zlange_Tile(MorseInfNorm, descB); + MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, 1.0, descAC, descX, -1.0, descB ); + dparam[IPARAM_RES] = MORSE_zlange_Tile(MorseInfNorm, descB); PASTE_CODE_FREE_MATRIX( descB ); PASTE_CODE_FREE_MATRIX( descAC ); PASTE_CODE_FREE_MATRIX( descX ); - } - + } + PASTE_CODE_FREE_MATRIX( descA ); - MORSE_TASK_flush_all(); return 0; }