diff --git a/compute/pzbuild.c b/compute/pzbuild.c index 1b8d361a45ae0c91a6844576fe2b4ee74782bfd7..f4e3a6c0b8f0bdb26eb7676ca5aa0561e92ee7e2 100644 --- a/compute/pzbuild.c +++ b/compute/pzbuild.c @@ -30,7 +30,7 @@ #include "control/common.h" #define A(m, n) A, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile matrix generation * ******************************************************************************* @@ -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..2d28d719c13d1855e0ab7fb5c698fc2dc6388743 100644 --- a/compute/pzgelqf.c +++ b/compute/pzgelqf.c @@ -38,7 +38,7 @@ #define D(k) A, k, k #endif -/***************************************************************************//** +/******************************************************************************* * Parallel tile LQ factorization - dynamic scheduling **/ void morse_pzgelqf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, @@ -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..c52fcc281c57374bb2249d21faf9b4c343da1771 100644 --- a/compute/pzgemm.c +++ b/compute/pzgemm.c @@ -31,7 +31,7 @@ #define A(m, n) A, m, n #define B(m, n) B, m, n #define C(m, n) C, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile matrix-matrix multiplication - dynamic scheduling **/ void morse_pzgemm(MORSE_enum transA, MORSE_enum transB, @@ -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..849d7a00568a25988fb8c66819cb2068209a1a22 100644 --- a/compute/pzgeqrf.c +++ b/compute/pzgeqrf.c @@ -38,7 +38,7 @@ #define D(k) A, k, k #endif -/***************************************************************************//** +/******************************************************************************* * Parallel tile QR factorization - dynamic scheduling **/ void morse_pzgeqrf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, @@ -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..a2ea808b95b26cf679df93e81c1a827e2de1436f 100644 --- a/compute/pzgeqrfrh.c +++ b/compute/pzgeqrfrh.c @@ -40,7 +40,7 @@ #define D(m,n) A, (m), (n) #endif -/***************************************************************************//** +/******************************************************************************* * Parallel tile QR factorization (reduction Householder) - dynamic scheduling **/ void morse_pzgeqrfrh(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, int BS, @@ -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..092d258faf2ec47c7c630c9d1767bcbec1bb3774 100644 --- a/compute/pzgetrf_incpiv.c +++ b/compute/pzgetrf_incpiv.c @@ -42,7 +42,7 @@ #define L(_m_,_n_) L, _m_, _n_ #define IPIV(_m_,_n_) &(IPIV[(int64_t)A->mb*((int64_t)(_m_)+(int64_t)A->mt*(int64_t)(_n_))]) -/***************************************************************************//** +/******************************************************************************* * Parallel tile LU factorization - dynamic scheduling **/ void morse_pzgetrf_incpiv(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, @@ -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..e620dcdfa07b64f339d962fe455871fb739364ce 100644 --- a/compute/pzgetrf_nopiv.c +++ b/compute/pzgetrf_nopiv.c @@ -29,7 +29,7 @@ #define A(m,n) A, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile LU factorization with no pivoting - dynamic scheduling **/ void morse_pzgetrf_nopiv(MORSE_desc_t *A, @@ -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..7e5ca07095bb0a933e66897bca79179883e6c178 100644 --- a/compute/pzhemm.c +++ b/compute/pzhemm.c @@ -31,7 +31,7 @@ #define A(m,n) A, m, n #define B(m,n) B, m, n #define C(m,n) C, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile Hermitian matrix-matrix multiplication - dynamic scheduling **/ void morse_pzhemm(MORSE_enum side, MORSE_enum uplo, @@ -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..63b02741095ad2a6eba0c54e3ae65e134d61f380 100644 --- a/compute/pzher2k.c +++ b/compute/pzher2k.c @@ -31,7 +31,7 @@ #define A(m,n) A, m, n #define B(m,n) B, m, n #define C(m,n) C, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile Hermitian rank-k update - dynamic scheduling **/ void morse_pzher2k(MORSE_enum uplo, MORSE_enum trans, @@ -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..b499177f11ba862d8339e523abbb6277cc8f68e4 100644 --- a/compute/pzherk.c +++ b/compute/pzherk.c @@ -30,7 +30,7 @@ #define A(m,n) A, m, n #define C(m,n) C, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile Hermitian rank-k update - dynamic scheduling **/ void morse_pzherk(MORSE_enum uplo, MORSE_enum trans, @@ -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..74c3396149dfc3a4e1d34e129ca2676dcb31f7f8 100644 --- a/compute/pzhetrd_he2hb.c +++ b/compute/pzhetrd_he2hb.c @@ -38,7 +38,7 @@ #define E(m, n) A, m, n #endif -/***************************************************************************//** +/******************************************************************************* * Parallel tile BAND Tridiagonal Reduction - dynamic scheduler **/ void morse_pzhetrd_he2hb(MORSE_enum uplo, @@ -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..b13b15222513827741298d84bff4abc56060512e 100644 --- a/compute/pzlacpy.c +++ b/compute/pzlacpy.c @@ -30,11 +30,11 @@ #define A(m,n) A, m, n #define B(m,n) B, m, n -/***************************************************************************//** +/******************************************************************************* * **/ -/***************************************************************************//** +/******************************************************************************* * **/ void morse_pzlacpy(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, @@ -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..5ca24e2b313b97b9e13f3aa78ca9cdee3bb0cb75 100644 --- a/compute/pzlag2c.c +++ b/compute/pzlag2c.c @@ -32,11 +32,11 @@ #define B(m,n) B, m, n #define SA(m,n) SA, m, n #define SB(m,n) SB, m, n -/***************************************************************************//** +/******************************************************************************* * **/ -/***************************************************************************//** +/******************************************************************************* * **/ void morse_pclag2z(MORSE_desc_t *SA, MORSE_desc_t *B, @@ -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..f893a4d9b45d1d0f04bbc06397b7c469b69fe880 100644 --- a/compute/pzlange.c +++ b/compute/pzlange.c @@ -35,15 +35,12 @@ #define VECNORMS_STEP1(m, n) VECNORMS_STEP1, m, n #define VECNORMS_STEP2(m, n) VECNORMS_STEP2, m, n #define RESULT(m, n) RESULT, m, n -/***************************************************************************//** - * - **/ - -/***************************************************************************//** - * - **/ -void morse_pzlange(MORSE_enum norm, MORSE_desc_t *A, double *result, - MORSE_sequence_t *sequence, MORSE_request_t *request) + +/***************************************************************************** + * + **/ +void morse_pzlange( MORSE_enum norm, MORSE_desc_t *A, double *result, + MORSE_sequence_t *sequence, MORSE_request_t *request ) { MORSE_desc_t *VECNORMS_STEP1 = NULL; MORSE_desc_t *VECNORMS_STEP2 = NULL; @@ -412,5 +409,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..af3b5bbab0bdff3c67545b22427c59730915d31e 100644 --- a/compute/pzlanhe.c +++ b/compute/pzlanhe.c @@ -35,11 +35,11 @@ #define VECNORMS_STEP1(m, n) VECNORMS_STEP1, m, n #define VECNORMS_STEP2(m, n) VECNORMS_STEP2, m, n #define RESULT(m, n) RESULT, m, n -/***************************************************************************//** +/******************************************************************************* * **/ -/***************************************************************************//** +/******************************************************************************* * **/ void morse_pzlanhe(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *result, @@ -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..f71eb5cb0f410729e187318be9bad6441ca876b6 100644 --- a/compute/pzlansy.c +++ b/compute/pzlansy.c @@ -35,11 +35,11 @@ #define VECNORMS_STEP1(m, n) VECNORMS_STEP1, m, n #define VECNORMS_STEP2(m, n) VECNORMS_STEP2, m, n #define RESULT(m, n) RESULT, m, n -/***************************************************************************//** +/******************************************************************************* * **/ -/***************************************************************************//** +/******************************************************************************* * **/ void morse_pzlansy(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *result, @@ -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..7c1e28b71c2c739c5cd13229f35151d544a2c10b 100644 --- a/compute/pzlantr.c +++ b/compute/pzlantr.c @@ -32,7 +32,7 @@ #define VECNORMS_STEP1(m, n) VECNORMS_STEP1, m, n #define VECNORMS_STEP2(m, n) VECNORMS_STEP2, m, n #define RESULT(m, n) RESULT, m, n -/***************************************************************************//** +/******************************************************************************* * **/ void morse_pzlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, @@ -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..f0c84a852747e92dc52de55d6de1134b05a33ac2 100644 --- a/compute/pzlaset.c +++ b/compute/pzlaset.c @@ -30,7 +30,7 @@ #include "control/common.h" #define A(m,n) A, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel initialization a 2-D array A to BETA on the diagonal and * ALPHA on the offdiagonals. **/ @@ -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..96b681245be044ad9aad739b17ccb3ecfe12aa25 100644 --- a/compute/pzlaset2.c +++ b/compute/pzlaset2.c @@ -30,7 +30,7 @@ #include "control/common.h" #define A(m,n) A, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel initializztion a 2-D array A to * ALPHA on the offdiagonals. **/ @@ -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..d7052fd75fef5dcf2f07664dfabdac0c7c60a5e8 100644 --- a/compute/pzlauum.c +++ b/compute/pzlauum.c @@ -31,7 +31,7 @@ #include "control/common.h" #define A(m,n) A, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel UU' or L'L operation - dynamic scheduling **/ void morse_pzlauum(MORSE_enum uplo, MORSE_desc_t *A, @@ -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..239e5947ea86d24758900d0bf4999674162a2442 100644 --- a/compute/pzplghe.c +++ b/compute/pzplghe.c @@ -32,7 +32,7 @@ #include "control/common.h" #define A(m,n) A, m, n -/***************************************************************************//** +/******************************************************************************* * morse_pzplghe - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles. **/ void morse_pzplghe( double bump, MORSE_enum uplo, MORSE_desc_t *A, @@ -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..c5111e5674a0743d0df5e0dcc7170038d50b1304 100644 --- a/compute/pzplgsy.c +++ b/compute/pzplgsy.c @@ -32,7 +32,7 @@ #include "control/common.h" #define A(m,n) A, m, n -/***************************************************************************//** +/******************************************************************************* * morse_pzplgsy - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles. **/ void morse_pzplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, @@ -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..d0467737980d0ad57d6db98805943afddca3294b 100644 --- a/compute/pzplrnt.c +++ b/compute/pzplrnt.c @@ -29,7 +29,7 @@ #include "control/common.h" #define A(m, n) A, m, n -/***************************************************************************//** +/******************************************************************************* * morse_pzplghe - Generate a random matrix by tiles. **/ void morse_pzplrnt( MORSE_desc_t *A, unsigned long long int seed, @@ -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..ae7f858a3e7aa78caba17dfe0084a16d45d2dd04 100644 --- a/compute/pzpotrf.c +++ b/compute/pzpotrf.c @@ -32,7 +32,7 @@ #include "control/common.h" #define A(m,n) A, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile Cholesky factorization - dynamic scheduling **/ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A, @@ -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..fd4956e21f2f732056034e54999807ad5606cdb2 100644 --- a/compute/pzpotrimm.c +++ b/compute/pzpotrimm.c @@ -31,7 +31,7 @@ #define A(m,n) A, m, n #define B(m,n) B, m, n #define C(m,n) C, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile Cholesky factorization - dynamic scheduling **/ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *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..fd608f65d9fac24e3967c5933be0c3ce7430d723 100644 --- a/compute/pzsymm.c +++ b/compute/pzsymm.c @@ -31,7 +31,7 @@ #define A(m,n) A, m, n #define B(m,n) B, m, n #define C(m,n) C, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile symmetric matrix-matrix multiplication - dynamic scheduling **/ void morse_pzsymm(MORSE_enum side, MORSE_enum uplo, @@ -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..9ed43086c37a4de4de61c6c2f23cf7c3dfd4b991 100644 --- a/compute/pzsyr2k.c +++ b/compute/pzsyr2k.c @@ -31,7 +31,7 @@ #define A(m,n) A, m, n #define B(m,n) B, m, n #define C(m,n) C, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile Hermitian rank-k update - dynamic scheduling **/ void morse_pzsyr2k(MORSE_enum uplo, MORSE_enum trans, @@ -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..a942fa8d475415759fbac0f0918710e50a4eb323 100644 --- a/compute/pzsyrk.c +++ b/compute/pzsyrk.c @@ -31,7 +31,7 @@ #define A(m,n) A, m, n #define C(m,n) C, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile symmetric rank-k update - dynamic scheduling **/ void morse_pzsyrk(MORSE_enum uplo, MORSE_enum trans, @@ -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..6e257b5b2080ace71fc02161256600a0645ba53b 100644 --- a/compute/pzsytrf.c +++ b/compute/pzsytrf.c @@ -31,7 +31,7 @@ #include "control/common.h" #define A(m,n) A, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile Cholesky factorization - dynamic scheduling **/ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A, @@ -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..bfd4f5cf1861e02b1d19c823083fde827abd68de 100644 --- a/compute/pztile2band.c +++ b/compute/pztile2band.c @@ -30,7 +30,7 @@ #define A(m,n) A, m, n #define B(m, n) B, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel copy of a band matrix from full NxN tile storage to band storage (LDABxN). **/ void morse_pztile2band(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, @@ -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..a070dc85157fe4e1c0623c823617e4c826fe9ce3 100644 --- a/compute/pztpgqrt.c +++ b/compute/pztpgqrt.c @@ -36,7 +36,7 @@ #define D(k) V1, k, k #endif -/***************************************************************************//** +/******************************************************************************* * Parallel tile QR factorization - dynamic scheduling **/ void morse_pztpgqrt( int L, @@ -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..47415ff055e846d4e690709174ec926e5b347028 100644 --- a/compute/pztpqrt.c +++ b/compute/pztpqrt.c @@ -28,7 +28,7 @@ #define B(m,n) B, m, n #define T(m,n) T, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile QR factorization - dynamic scheduling **/ void morse_pztpqrt( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T, @@ -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..aa5dca0e588b2ef31384b276f43f37c8b6712109 100644 --- a/compute/pztradd.c +++ b/compute/pztradd.c @@ -30,7 +30,7 @@ #define A(m, n) A, m, n #define B(m, n) B, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile matrix-matrix multiplication - dynamic scheduling **/ void morse_pztradd(MORSE_enum uplo, MORSE_enum trans, @@ -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..b616bd55a478c65aae58e4c5f0bef8ee9bc17f67 100644 --- a/compute/pztrmm.c +++ b/compute/pztrmm.c @@ -33,7 +33,7 @@ -/***************************************************************************//** +/******************************************************************************* * Parallel tile triangular matrix-matrix multiplication - dynamic scheduling **/ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo, @@ -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..727b7e5dbeb10cf313792071a2d7300f6c879502 100644 --- a/compute/pztrsm.c +++ b/compute/pztrsm.c @@ -32,7 +32,7 @@ #define A(m,n) A, m, n #define B(m,n) B, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile triangular solve - dynamic scheduling **/ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum diag, @@ -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..7314ad60fe731751f16e02b72e1987b5a2f78191 100644 --- a/compute/pztrsmpl.c +++ b/compute/pztrsmpl.c @@ -34,7 +34,7 @@ #define B(m,n) B, m, n #define L(m,n) L, m, n #define IPIV(m,n) &(IPIV[(int64_t)A->nb*((int64_t)(m)+(int64_t)A->mt*(int64_t)(n))]) -/***************************************************************************//** +/******************************************************************************* * Parallel forward substitution for tile LU - dynamic scheduling **/ void morse_pztrsmpl(MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *L, int *IPIV, @@ -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..e212d3805516147fb1067991dabfbd22961cff07 100644 --- a/compute/pztrtri.c +++ b/compute/pztrtri.c @@ -31,7 +31,7 @@ #include "control/common.h" #define A(m,n) A, m, n -/***************************************************************************//** +/******************************************************************************* * Parallel tile triangular matrix inverse - dynamic scheduling **/ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, @@ -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..13a034ce3d64ecf8f1c5f1abf47e41a09e494141 100644 --- a/compute/pzunglq.c +++ b/compute/pzunglq.c @@ -39,7 +39,7 @@ #define D(k) A, k, k #endif -/***************************************************************************//** +/******************************************************************************* * Parallel construction of Q using tile V (application to identity) - dynamic scheduling **/ void morse_pzunglq(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T, MORSE_desc_t *D, @@ -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..389f79e854029cefd083ca19ea681d9838c8b231 100644 --- a/compute/pzungqr.c +++ b/compute/pzungqr.c @@ -39,7 +39,7 @@ #define D(k) A, k, k #endif -/***************************************************************************//** +/******************************************************************************* * Parallel construction of Q using tile V (application to identity) - dynamic scheduling **/ void morse_pzungqr(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T, MORSE_desc_t *D, @@ -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..9c9cfd679c8532eb2f94d5d5fba7b25b04d6ff71 100644 --- a/compute/pzunmlq.c +++ b/compute/pzunmlq.c @@ -40,7 +40,7 @@ #define D(k) A, k, k #endif -/***************************************************************************//** +/******************************************************************************* * Parallel application of Q using tile V - LQ factorization - dynamic scheduling **/ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans, @@ -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..8444f0bb3899178caf82269875e4f725130c0bc9 100644 --- a/compute/pzunmlqrh.c +++ b/compute/pzunmlqrh.c @@ -41,7 +41,7 @@ #define D(m,n) A, (m), (n) #endif -/***************************************************************************//** +/******************************************************************************* * Parallel application of Q using tile V - LQ factorization (reduction * Householder) - dynamic scheduling **/ @@ -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..4e81716ddf0439cde04ed3465422ebefec0a860b 100644 --- a/compute/pzunmqr.c +++ b/compute/pzunmqr.c @@ -40,7 +40,7 @@ #define D(k) A, k, k #endif -/***************************************************************************//** +/******************************************************************************* * Parallel application of Q using tile V - QR factorization - dynamic scheduling **/ void morse_pzunmqr(MORSE_enum side, MORSE_enum trans, @@ -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..ca7097ca99f51439bf2ec33627a36812fd01ead5 100644 --- a/compute/pzunmqrrh.c +++ b/compute/pzunmqrrh.c @@ -41,13 +41,13 @@ #define D(m,n) A, (m), (n) #endif -/***************************************************************************//** +/******************************************************************************* * Parallel application of Q using tile V - QR factorization (reduction * Householder) - dynamic scheduling **/ -void morse_pzunmqrrh(MORSE_enum side, MORSE_enum trans, - MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T, MORSE_desc_t *D, int BS, - MORSE_sequence_t *sequence, MORSE_request_t *request) +void morse_pzunmqrrh( MORSE_enum side, MORSE_enum trans, + MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T, MORSE_desc_t *D, int BS, + MORSE_sequence_t *sequence, MORSE_request_t *request ) { MORSE_context_t *morse; MORSE_option_t options; @@ -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/zbuild.c b/compute/zbuild.c index 8262d017bb1ebd8aad84d98a41395c034688f3b2..71fadaac9434b5d8357a9bddac6360fb0cfefe02 100644 --- a/compute/zbuild.c +++ b/compute/zbuild.c @@ -5,10 +5,6 @@ * All rights reserved. * @copyright (c) 2012-2014 Inria. All rights reserved. * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. - * - **/ - -/** * * @file zbuild.c * @@ -29,7 +25,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -89,61 +86,62 @@ int MORSE_zbuild( MORSE_enum uplo, int M, int N, MORSE_Complex64_t *A, int LDA, void *user_data, void* user_build_callback) { - int NB; - int status; - MORSE_context_t *morse; - MORSE_sequence_t *sequence = NULL; - MORSE_request_t request = MORSE_REQUEST_INITIALIZER; - MORSE_desc_t descA; + int NB; + int status; + MORSE_context_t *morse; + MORSE_sequence_t *sequence = NULL; + MORSE_request_t request = MORSE_REQUEST_INITIALIZER; + MORSE_desc_t descA; - morse = morse_context_self(); - if (morse == NULL) { - morse_fatal_error("MORSE_zbuild", "MORSE not initialized"); - return MORSE_ERR_NOT_INITIALIZED; - } - /* Check input arguments */ - if (M < 0) { - morse_error("MORSE_zbuild", "illegal value of M"); - return -1; - } - if (N < 0) { - morse_error("MORSE_zbuild", "illegal value of N"); - return -2; - } - if (LDA < chameleon_max(1, M)) { - morse_error("MORSE_zbuild", "illegal value of LDA"); - return -4; - } - /* Quick return */ - if (chameleon_min(M, N) == 0) - return MORSE_SUCCESS; + morse = morse_context_self(); + if (morse == NULL) { + morse_fatal_error("MORSE_zbuild", "MORSE not initialized"); + return MORSE_ERR_NOT_INITIALIZED; + } + /* Check input arguments */ + if (M < 0) { + morse_error("MORSE_zbuild", "illegal value of M"); + return -1; + } + if (N < 0) { + morse_error("MORSE_zbuild", "illegal value of N"); + return -2; + } + if (LDA < chameleon_max(1, M)) { + morse_error("MORSE_zbuild", "illegal value of LDA"); + return -4; + } + /* Quick return */ + if (chameleon_min(M, N) == 0) + return MORSE_SUCCESS; - /* Tune NB depending on M, N & NRHS; Set NBNB */ - status = morse_tune(MORSE_FUNC_ZGEMM, M, N, 0); - if (status != MORSE_SUCCESS) { - morse_error("MORSE_zbuild", "morse_tune() failed"); - return status; - } + /* Tune NB depending on M, N & NRHS; Set NBNB */ + status = morse_tune(MORSE_FUNC_ZGEMM, M, N, 0); + if (status != MORSE_SUCCESS) { + morse_error("MORSE_zbuild", "morse_tune() failed"); + return status; + } - /* Set NT */ - NB = MORSE_NB; - morse_sequence_create(morse, &sequence); - morse_zdesc_alloc(descA, NB, NB, LDA, N, 0, 0, M, N, morse_desc_mat_free(&descA)); + /* Set NT */ + NB = MORSE_NB; + morse_sequence_create(morse, &sequence); + morse_zdesc_alloc(descA, NB, NB, LDA, N, 0, 0, M, N, morse_desc_mat_free(&descA)); - /* Call the tile interface */ - MORSE_zbuild_Tile_Async(uplo, &descA, user_data, user_build_callback, sequence, &request ); + /* Call the tile interface */ + MORSE_zbuild_Tile_Async(uplo, &descA, user_data, user_build_callback, sequence, &request ); - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_sequence_wait(morse, sequence); - morse_desc_mat_free(&descA); + morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); - status = sequence->status; - morse_sequence_destroy(morse, sequence); + status = sequence->status; + morse_sequence_destroy(morse, sequence); - return status; + return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -187,25 +185,26 @@ int MORSE_zbuild( MORSE_enum uplo, int M, int N, int MORSE_zbuild_Tile( MORSE_enum uplo, MORSE_desc_t *A, void *user_data, void* user_build_callback ) { - MORSE_context_t *morse; - MORSE_sequence_t *sequence = NULL; - MORSE_request_t request = MORSE_REQUEST_INITIALIZER; - int status; + MORSE_context_t *morse; + MORSE_sequence_t *sequence = NULL; + MORSE_request_t request = MORSE_REQUEST_INITIALIZER; + int status; - morse = morse_context_self(); - if (morse == NULL) { - morse_fatal_error("MORSE_zbuild_Tile", "MORSE not initialized"); - return MORSE_ERR_NOT_INITIALIZED; - } - morse_sequence_create(morse, &sequence); - MORSE_zbuild_Tile_Async( uplo, A, user_data, user_build_callback, sequence, &request ); - morse_sequence_wait(morse, sequence); - status = sequence->status; - morse_sequence_destroy(morse, sequence); - return status; + morse = morse_context_self(); + if (morse == NULL) { + morse_fatal_error("MORSE_zbuild_Tile", "MORSE not initialized"); + return MORSE_ERR_NOT_INITIALIZED; + } + morse_sequence_create(morse, &sequence); + MORSE_zbuild_Tile_Async( uplo, A, user_data, user_build_callback, sequence, &request ); + morse_sequence_wait(morse, sequence); + status = sequence->status; + morse_sequence_destroy(morse, sequence); + return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * @@ -252,38 +251,38 @@ int MORSE_zbuild_Tile_Async( MORSE_enum uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request) { - MORSE_context_t *morse; + MORSE_context_t *morse; - morse = morse_context_self(); - if (morse == NULL) { - morse_fatal_error("MORSE_zbuild_Tile", "MORSE not initialized"); - return MORSE_ERR_NOT_INITIALIZED; - } - if (sequence == NULL) { - morse_fatal_error("MORSE_zbuild_Tile", "NULL sequence"); - return MORSE_ERR_UNALLOCATED; - } - if (request == NULL) { - morse_fatal_error("MORSE_zbuild_Tile", "NULL request"); - return MORSE_ERR_UNALLOCATED; - } - /* Check sequence status */ - if (sequence->status == MORSE_SUCCESS) - request->status = MORSE_SUCCESS; - else - return morse_request_fail(sequence, request, MORSE_ERR_SEQUENCE_FLUSHED); + morse = morse_context_self(); + if (morse == NULL) { + morse_fatal_error("MORSE_zbuild_Tile", "MORSE not initialized"); + return MORSE_ERR_NOT_INITIALIZED; + } + if (sequence == NULL) { + morse_fatal_error("MORSE_zbuild_Tile", "NULL sequence"); + return MORSE_ERR_UNALLOCATED; + } + if (request == NULL) { + morse_fatal_error("MORSE_zbuild_Tile", "NULL request"); + return MORSE_ERR_UNALLOCATED; + } + /* Check sequence status */ + if (sequence->status == MORSE_SUCCESS) + request->status = MORSE_SUCCESS; + else + return morse_request_fail(sequence, request, MORSE_ERR_SEQUENCE_FLUSHED); - /* Check descriptors for correctness */ - if (morse_desc_check(A) != MORSE_SUCCESS) { - morse_error("MORSE_zbuild_Tile", "invalid descriptor"); - return morse_request_fail(sequence, request, MORSE_ERR_ILLEGAL_VALUE); - } + /* Check descriptors for correctness */ + if (morse_desc_check(A) != MORSE_SUCCESS) { + morse_error("MORSE_zbuild_Tile", "invalid descriptor"); + return morse_request_fail(sequence, request, MORSE_ERR_ILLEGAL_VALUE); + } - /* Quick return */ - if (chameleon_min( A->m, A->n ) == 0) - return MORSE_SUCCESS; + /* Quick return */ + if (chameleon_min( A->m, A->n ) == 0) + return MORSE_SUCCESS; - morse_pzbuild(uplo, A, user_data, user_build_callback, sequence, request); + morse_pzbuild(uplo, A, user_data, user_build_callback, sequence, request); - return MORSE_SUCCESS; + return MORSE_SUCCESS; } diff --git a/compute/zgeadd.c b/compute/zgeadd.c index 9aea3d4c73bed941982ed456415e7b093a6da422..b6e85b32297b0b56bbd9b3e0d9aaa6a46230e657 100644 --- a/compute/zgeadd.c +++ b/compute/zgeadd.c @@ -26,7 +26,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -184,7 +185,8 @@ int MORSE_zgeadd(MORSE_enum trans, int M, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -247,16 +249,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zgelqf.c b/compute/zgelqf.c index 6fb6606b14c249906af6c883978856eb4afd65ca..55b9284837f7af7fd60f17702fcba108942c4d1b 100644 --- a/compute/zgelqf.c +++ b/compute/zgelqf.c @@ -30,7 +30,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -146,7 +147,8 @@ int MORSE_zgelqf(int M, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -198,15 +200,16 @@ 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_flush( A, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zgelqf_param.c b/compute/zgelqf_param.c index 2e46686816f4d5423371b8a120df9cce725c110a..d650ba8ad5f3b180d22f0011dd334ce27b3b55b8 100644 --- a/compute/zgelqf_param.c +++ b/compute/zgelqf_param.c @@ -197,8 +197,8 @@ 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_flush( A, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zgelqs.c b/compute/zgelqs.c index 23cdd4d022d705afab6a683d282ecce90f8f3cc5..b9410fd3d107681ccdbeac7bd54ed92537ba0580 100644 --- a/compute/zgelqs.c +++ b/compute/zgelqs.c @@ -222,9 +222,9 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zgelqs_param.c b/compute/zgelqs_param.c index cf2e853634609914c3c960a3d7e8b5508e40a55e..ac5c26520b0d471eabea1a527630959d135dc55a 100644 --- a/compute/zgelqs_param.c +++ b/compute/zgelqs_param.c @@ -227,9 +227,9 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zgels.c b/compute/zgels.c index f80cc4ef65b4268e41b92453a924553020d5b610..4ab15cb6d82b1b12fb3cdc18df73a7f04abcb674 100644 --- a/compute/zgels.c +++ b/compute/zgels.c @@ -217,7 +217,8 @@ int MORSE_zgels(MORSE_enum trans, int M, int N, int NRHS, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -285,16 +286,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zgels_param.c b/compute/zgels_param.c index d862c63267b877f276740af544336a90087503b5..9e91871be2973d89a78be91aa3c2e788074d757f 100644 --- a/compute/zgels_param.c +++ b/compute/zgels_param.c @@ -291,9 +291,9 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zgemm.c b/compute/zgemm.c index 0f931d8dc4636d67112d7e452b522738c789731b..332b540061849362a78b9c4dc8d893e39ae56bbb 100644 --- a/compute/zgemm.c +++ b/compute/zgemm.c @@ -50,7 +50,8 @@ * */ -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -247,7 +248,8 @@ int MORSE_zgemm(MORSE_enum transA, MORSE_enum transB, int M, int N, int K, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -319,17 +321,18 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zgeqrf.c b/compute/zgeqrf.c index de992ffa755e19cac65af0dcb5cc62332ea68a4d..5e500472b0dd8c3ed530b94c9e230b7833bd8172 100644 --- a/compute/zgeqrf.c +++ b/compute/zgeqrf.c @@ -29,7 +29,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -145,7 +146,8 @@ int MORSE_zgeqrf(int M, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -197,8 +199,8 @@ 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_flush( A, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zgeqrf_param.c b/compute/zgeqrf_param.c index 8e84f2a2bc421df67aa4e4e1f4695b53cf2f29e1..a67f508db78185e1264e6935a0cfa379df024c1c 100644 --- a/compute/zgeqrf_param.c +++ b/compute/zgeqrf_param.c @@ -206,8 +206,8 @@ 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_flush( A, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zgeqrs.c b/compute/zgeqrs.c index 32e618550fb35324d019990f64afa0a9eeca51fd..29b962f4f6c5f20483682f54eff2822ee9402edc 100644 --- a/compute/zgeqrs.c +++ b/compute/zgeqrs.c @@ -30,7 +30,8 @@ #include "control/common.h" #include <stdlib.h> -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -168,7 +169,8 @@ int MORSE_zgeqrs(int M, int N, int NRHS, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -219,17 +221,18 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( T, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(T); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zgeqrs_param.c b/compute/zgeqrs_param.c index 611b136fa92b6e770d903401fc53ff13104c06de..6e6cb28b394e3b1d815757968cd6dcbf5ae56ae6 100644 --- a/compute/zgeqrs_param.c +++ b/compute/zgeqrs_param.c @@ -216,11 +216,11 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( TS, sequence ); + RUNTIME_desc_flush( TT, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(TS); - RUNTIME_desc_getoncpu(TT); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zgesv_incpiv.c b/compute/zgesv_incpiv.c index 02b1129c26bc3254c380fe70da57de57ae03add3..ca0ca1e6a74dfa96cce66e4616ebd1be54f4af4c 100644 --- a/compute/zgesv_incpiv.c +++ b/compute/zgesv_incpiv.c @@ -29,7 +29,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -166,7 +167,8 @@ int MORSE_zgesv_incpiv(int N, int NRHS, morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -224,16 +226,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zgesv_nopiv.c b/compute/zgesv_nopiv.c index 31735f19c856c8c77c8b03a6df813cd41d5e9310..bc0d9bdf9d3fd297954c2a6cc14d692c59002705 100644 --- a/compute/zgesv_nopiv.c +++ b/compute/zgesv_nopiv.c @@ -29,7 +29,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -165,7 +166,8 @@ int MORSE_zgesv_nopiv(int N, int NRHS, morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -216,16 +218,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zgesvd.c b/compute/zgesvd.c index b2d7e48d430c43bfef24fbde3dbd6a404bc10620..968c0a01b427303b55a50c8574231d407222a849 100644 --- a/compute/zgesvd.c +++ b/compute/zgesvd.c @@ -31,7 +31,8 @@ #include <coreblas/lapacke.h> #endif -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -238,7 +239,8 @@ int MORSE_zgesvd(MORSE_enum jobu, MORSE_enum jobvt, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -362,7 +364,8 @@ int MORSE_zgesvd_Tile(MORSE_enum jobu, MORSE_enum jobvt, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zgetrf_incpiv.c b/compute/zgetrf_incpiv.c index 169fb67f05fd55e87abbdbe6e377d85fb1f48237..aaf96f147bfdf88424c2200fd29eb645e005aa47 100644 --- a/compute/zgetrf_incpiv.c +++ b/compute/zgetrf_incpiv.c @@ -29,7 +29,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -147,7 +148,8 @@ int MORSE_zgetrf_incpiv(int M, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -202,15 +204,16 @@ 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_flush( A, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zgetrf_nopiv.c b/compute/zgetrf_nopiv.c index ea987f595f701c29cf171e573311d2782f66b990..5e56c4a8b6bd8dffd399385ebc61bcf2ac52ea36 100644 --- a/compute/zgetrf_nopiv.c +++ b/compute/zgetrf_nopiv.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -143,7 +144,8 @@ int MORSE_zgetrf_nopiv(int M, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -190,15 +192,16 @@ int MORSE_zgetrf_nopiv_Tile(MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zgetrf_nopiv_Tile_Async(A, sequence, &request); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zgetrs_incpiv.c b/compute/zgetrs_incpiv.c index 63f9564a2fca9fa0a01d874abd33874343dfc420..195b0895d444eb00ca8e7b5ad70bff8bd06a5800 100644 --- a/compute/zgetrs_incpiv.c +++ b/compute/zgetrs_incpiv.c @@ -29,7 +29,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -172,7 +173,8 @@ int MORSE_zgetrs_incpiv(MORSE_enum trans, int N, int NRHS, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -227,16 +229,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zgetrs_nopiv.c b/compute/zgetrs_nopiv.c index 02b029146f903eba98da6b6b0a4722102a57046d..f92c66abf05da77ee81aa117a5ac2f1d21411e03 100644 --- a/compute/zgetrs_nopiv.c +++ b/compute/zgetrs_nopiv.c @@ -30,7 +30,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -166,7 +167,8 @@ int MORSE_zgetrs_nopiv(MORSE_enum trans, int N, int NRHS, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -215,16 +217,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zheevd.c b/compute/zheevd.c index e4a85b98b380b7217225252031dd29b7cb4a21c5..8094b590b35474f80f0740ba8a04389eeb557b6b 100644 --- a/compute/zheevd.c +++ b/compute/zheevd.c @@ -30,7 +30,8 @@ #include <coreblas/lapacke.h> #endif -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -175,7 +176,8 @@ int MORSE_zheevd(MORSE_enum jobz, MORSE_enum uplo, int N, morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -257,17 +259,17 @@ int MORSE_zheevd_Tile(MORSE_enum jobz, MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_zheevd_Tile_Async(jobz, uplo, A, W, T, sequence, &request); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( T, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(T); - status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zhemm.c b/compute/zhemm.c index a9581e25a62a77ca307ee2250b95384aebfd9bcb..5b6b31852f6335f10dde0a428acb5988abb6338d 100644 --- a/compute/zhemm.c +++ b/compute/zhemm.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -210,7 +211,8 @@ int MORSE_zhemm(MORSE_enum side, MORSE_enum uplo, int M, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -284,17 +286,18 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zher2k.c b/compute/zher2k.c index 6dd8448041eb2c5bdc1de9aec24e3fadb65acc2c..e8f2e6d892b9bf8be8b7c8f3fff666afce446ece 100644 --- a/compute/zher2k.c +++ b/compute/zher2k.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -214,7 +215,8 @@ int MORSE_zher2k(MORSE_enum uplo, MORSE_enum trans, int N, int K, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -283,17 +285,18 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zherk.c b/compute/zherk.c index b52cdff217dd0e6297c40ab209bf58241614b1cb..6fbe72d552b780604b3b3026e7c68e3cb7452227 100644 --- a/compute/zherk.c +++ b/compute/zherk.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -194,7 +195,8 @@ int MORSE_zherk(MORSE_enum uplo, MORSE_enum trans, int N, int K, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -259,16 +261,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zhetrd.c b/compute/zhetrd.c index e3390e8fb0f56e45a2c21e35288bbefc2ed79d94..e69bce8a9eb5f25e76f796a2cd2857f65df93daf 100644 --- a/compute/zhetrd.c +++ b/compute/zhetrd.c @@ -30,7 +30,8 @@ #include <coreblas/lapacke.h> #endif -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -189,7 +190,8 @@ int MORSE_zhetrd(MORSE_enum jobz, MORSE_enum uplo, int N, morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -291,7 +293,8 @@ int MORSE_zhetrd_Tile(MORSE_enum jobz, MORSE_enum uplo, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zlacpy.c b/compute/zlacpy.c index c19edef30700232549a7caa946cc7085bb5f8e7b..3088442702a338f26aa23fbba300a5aa8e9bd9a9 100644 --- a/compute/zlacpy.c +++ b/compute/zlacpy.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -158,7 +159,8 @@ int MORSE_zlacpy(MORSE_enum uplo, int M, int N, return MORSE_SUCCESS; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -216,7 +218,8 @@ int MORSE_zlacpy_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) return MORSE_SUCCESS; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zlange.c b/compute/zlange.c index c48e992e2a01a3344e6a40863e4364323164e344..82831613fd334461bc4f2a1e1cf437d6eb328a03 100644 --- a/compute/zlange.c +++ b/compute/zlange.c @@ -26,7 +26,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -146,8 +147,8 @@ 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_flush( &descA, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(&descA); morse_desc_mat_free(&descA); /* } else {*/ /* morse_ziptile2lap( descA, A, NB, NB, LDA, N, sequence, &request);*/ @@ -158,7 +159,8 @@ double MORSE_zlange(MORSE_enum norm, int M, int N, return value; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -215,7 +217,8 @@ double MORSE_zlange_Tile(MORSE_enum norm, MORSE_desc_t *A) return value; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zlanhe.c b/compute/zlanhe.c index e03146bc65b14abd3c2e0c0d85a75539ea2501d8..e666221ace06405bf247ff7faab0d9b2cc7ec18d 100644 --- a/compute/zlanhe.c +++ b/compute/zlanhe.c @@ -26,7 +26,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -146,8 +147,8 @@ 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_flush( &descA, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(&descA); morse_desc_mat_free(&descA); /* } else {*/ /* morse_ziptile2lap( descA, A, NB, NB, LDA, N, sequence, &request);*/ @@ -158,7 +159,8 @@ double MORSE_zlanhe(MORSE_enum norm, MORSE_enum uplo, int N, return value; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -219,7 +221,8 @@ double MORSE_zlanhe_Tile(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A) return value; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zlansy.c b/compute/zlansy.c index 5a141e1937c61f6fcab82419ba8fb455ace72cb0..35df4fc8912e33279b04fa6af22974ec005a1e11 100644 --- a/compute/zlansy.c +++ b/compute/zlansy.c @@ -26,7 +26,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -156,7 +157,8 @@ double MORSE_zlansy(MORSE_enum norm, MORSE_enum uplo, int N, return value; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -217,7 +219,8 @@ double MORSE_zlansy_Tile(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A) return value; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zlantr.c b/compute/zlantr.c index 69563ac643ac00e1c2d08f7082eab70d1182bd9f..3f5e8f1eda3637f3c91541e8da96c816a732dbf6 100644 --- a/compute/zlantr.c +++ b/compute/zlantr.c @@ -26,7 +26,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -176,7 +177,8 @@ double MORSE_zlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, return value; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -239,7 +241,8 @@ double MORSE_zlantr_Tile(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, MORS return value; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zlascal.c b/compute/zlascal.c index 7fba2b6ee94e810165747545fe309fef2018f860..c86ca1da02ebad9066a30f628521088f95ad0d94 100644 --- a/compute/zlascal.c +++ b/compute/zlascal.c @@ -14,7 +14,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -138,7 +139,8 @@ int MORSE_zlascal(MORSE_enum uplo, int M, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -198,7 +200,8 @@ int MORSE_zlascal_Tile(MORSE_enum uplo, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zlaset.c b/compute/zlaset.c index c90ba7526368db6e7438813d7b7ebfd08b39ad56..fab26797f9a563522dcb8d744d81070a9bc5dc0b 100644 --- a/compute/zlaset.c +++ b/compute/zlaset.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -149,7 +150,8 @@ int MORSE_zlaset(MORSE_enum uplo, int M, int N, return MORSE_SUCCESS; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -205,7 +207,8 @@ int MORSE_zlaset_Tile(MORSE_enum uplo, return MORSE_SUCCESS; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zlauum.c b/compute/zlauum.c index f96cab0c6b36d7894df2181d0fa5cdc6bddcdcaa..8ef3f032d56c4805b9e8fad10267a7cc1eb97a26 100644 --- a/compute/zlauum.c +++ b/compute/zlauum.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -145,7 +146,8 @@ int MORSE_zlauum(MORSE_enum uplo, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -199,15 +201,16 @@ 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_flush( A, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zplghe.c b/compute/zplghe.c index d7c884989890c5bc30ea21ab762242c004a3a123..0d7af992710735c1e17462eb6e5d6d8f71bb6c36 100644 --- a/compute/zplghe.c +++ b/compute/zplghe.c @@ -31,7 +31,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -129,7 +130,8 @@ int MORSE_zplghe( double bump, MORSE_enum uplo, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -190,7 +192,8 @@ int MORSE_zplghe_Tile( double bump, MORSE_enum uplo, MORSE_desc_t *A, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zplgsy.c b/compute/zplgsy.c index 3684d39dca07057d90d9d58cf09edcbd2b4c837a..7c8e8aeda0f5d1e96d384d40b529751a266875c8 100644 --- a/compute/zplgsy.c +++ b/compute/zplgsy.c @@ -31,7 +31,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -129,7 +130,8 @@ int MORSE_zplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -191,7 +193,8 @@ int MORSE_zplgsy_Tile( MORSE_Complex64_t bump, MORSE_enum uplo, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zplrnt.c b/compute/zplrnt.c index 707469c9eb10c99f4ffead2d911280dcfff218e1..45e141e11fb5191fe9b2d40b94c7f7a58904f278 100644 --- a/compute/zplrnt.c +++ b/compute/zplrnt.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -126,7 +127,8 @@ int MORSE_zplrnt( int M, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -181,7 +183,8 @@ int MORSE_zplrnt_Tile( MORSE_desc_t *A, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zposv.c b/compute/zposv.c index b0c9cb25d7a8b551c16419cba70aa33ce9e7ecf6..5fe1ab279a4feb38ac097f80ca68bfed70807a54 100644 --- a/compute/zposv.c +++ b/compute/zposv.c @@ -29,7 +29,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -179,7 +180,8 @@ int MORSE_zposv(MORSE_enum uplo, int N, int NRHS, morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -242,16 +244,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zpotrf.c b/compute/zpotrf.c index e69c04b8605ca4df2a1f2e77ecc42123e22082e3..08261848912dfe3913b30bc45f3e0ffd3adb1d9d 100644 --- a/compute/zpotrf.c +++ b/compute/zpotrf.c @@ -29,7 +29,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -152,7 +153,8 @@ int MORSE_zpotrf(MORSE_enum uplo, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -211,15 +213,16 @@ 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_flush( A, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zpotri.c b/compute/zpotri.c index 5581e027475583c814e6f1693ad944c2870d27e8..801f077cc45b83a80792ea563a91551e4be1f9e2 100644 --- a/compute/zpotri.c +++ b/compute/zpotri.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -142,7 +143,8 @@ int MORSE_zpotri(MORSE_enum uplo, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -199,15 +201,16 @@ 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_flush( A, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zpotrimm.c b/compute/zpotrimm.c index c779d47c6c9d285de923c001ea9930e98ccd6e8a..180725746aa845cb28b197c915d64304e6e226e1 100644 --- a/compute/zpotrimm.c +++ b/compute/zpotrimm.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -160,7 +161,8 @@ int MORSE_zpotrimm(MORSE_enum uplo, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -217,15 +219,16 @@ 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_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zpotrs.c b/compute/zpotrs.c index 13309e1c524623bdaa8b87b3d783ab9e616acba3..0494b688426132276bb426e911b8645bbd439e35 100644 --- a/compute/zpotrs.c +++ b/compute/zpotrs.c @@ -29,7 +29,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -163,7 +164,8 @@ int MORSE_zpotrs(MORSE_enum uplo, int N, int NRHS, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -217,16 +219,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zsymm.c b/compute/zsymm.c index 3bd567a9e486c3eb9f319d6cec1f35e26e332dcd..344f04da6f07ecd8b3be760a95e8d3621aaee504 100644 --- a/compute/zsymm.c +++ b/compute/zsymm.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -210,7 +211,8 @@ int MORSE_zsymm(MORSE_enum side, MORSE_enum uplo, int M, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -284,17 +286,18 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zsyr2k.c b/compute/zsyr2k.c index bc098a162414536c726763b6f341f0b5b826eb5f..50c9b234e36efeb66d03c3347ebc1c6e88a56f2d 100644 --- a/compute/zsyr2k.c +++ b/compute/zsyr2k.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -214,7 +215,8 @@ int MORSE_zsyr2k(MORSE_enum uplo, MORSE_enum trans, int N, int K, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -283,17 +285,18 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zsyrk.c b/compute/zsyrk.c index 3623506f22dba7f484f5e63f5b0399a62b2f0af4..4b29d6b7f93eb1e267d901ae11a897b6119bc634 100644 --- a/compute/zsyrk.c +++ b/compute/zsyrk.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -194,7 +195,8 @@ int MORSE_zsyrk(MORSE_enum uplo, MORSE_enum trans, int N, int K, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -259,16 +261,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zsysv.c b/compute/zsysv.c index db51e5c515299716402007d979312469279f75f1..d39bda8bfff3341c1453dcd894478e17d9de50e2 100644 --- a/compute/zsysv.c +++ b/compute/zsysv.c @@ -31,7 +31,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -176,7 +177,8 @@ int MORSE_zsysv(MORSE_enum uplo, int N, int NRHS, morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -235,16 +237,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zsytrf.c b/compute/zsytrf.c index c157d1248004068d209507dac66451ce7122fb9a..c2e3eeead99ea9237859064a13a66558fdc25360 100644 --- a/compute/zsytrf.c +++ b/compute/zsytrf.c @@ -25,7 +25,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -147,7 +148,8 @@ int MORSE_zsytrf(MORSE_enum uplo, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -200,15 +202,16 @@ 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_flush( A, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zsytrs.c b/compute/zsytrs.c index 508d404c634dbb376946ea5591b18021c34563fb..df6f7d9dea81ba12ef7e6f443d14f3f9105b2796 100644 --- a/compute/zsytrs.c +++ b/compute/zsytrs.c @@ -31,7 +31,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -162,7 +163,8 @@ int MORSE_zsytrs(MORSE_enum uplo, int N, int NRHS, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -213,16 +215,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/ztile.c b/compute/ztile.c index 5d95c523d3207505aa71a833088414ab7410d59f..5377a78643d356f397c3e46011c097a8113a157d 100644 --- a/compute/ztile.c +++ b/compute/ztile.c @@ -26,7 +26,8 @@ **/ #include "control/common.h" -/******************************************************************************* +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -82,15 +83,16 @@ 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_desc_flush( A, sequence ); RUNTIME_sequence_wait( morse, sequence ); - RUNTIME_desc_getoncpu( A ); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/******************************************************************************* +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * @@ -152,7 +154,8 @@ int MORSE_zLapack_to_Tile_Async(MORSE_Complex64_t *Af77, int LDA, MORSE_desc_t * return MORSE_SUCCESS; } -/******************************************************************************* +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -207,14 +210,16 @@ int MORSE_zTile_to_Lapack(MORSE_desc_t *A, MORSE_Complex64_t *Af77, int LDA) morse_sequence_create(morse, &sequence); morse_pztile_to_lapack( A, Af77, LDA, sequence, &request); + RUNTIME_desc_flush( A, sequence ); RUNTIME_sequence_wait( morse, sequence ); - RUNTIME_desc_getoncpu( A ); + status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/******************************************************************************* +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/ztpgqrt.c b/compute/ztpgqrt.c index 2df25d010ceccca96fb923b6c765e41204d520d1..bf6fee28d640f5e6345299766d1e983c74a5a7d3 100644 --- a/compute/ztpgqrt.c +++ b/compute/ztpgqrt.c @@ -296,9 +296,9 @@ 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_flush( Q1, sequence ); + RUNTIME_desc_flush( Q2, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(Q1); - RUNTIME_desc_getoncpu(Q2); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/ztpqrt.c b/compute/ztpqrt.c index adb72fe9aef7004c9eae4548e30859802c55b7fd..3298638e02705a80365fc645a57c1c906e76c021 100644 --- a/compute/ztpqrt.c +++ b/compute/ztpqrt.c @@ -268,9 +268,9 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/ztradd.c b/compute/ztradd.c index d35eb823c13d08cfb25848e724d2054036aa8532..7bbf05f99cc7828f7c8f7201cf1d63258c5a605d 100644 --- a/compute/ztradd.c +++ b/compute/ztradd.c @@ -26,7 +26,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -194,7 +195,8 @@ int MORSE_ztradd(MORSE_enum uplo, MORSE_enum trans, int M, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -263,16 +265,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/ztrmm.c b/compute/ztrmm.c index 17e5d44039b514938445003df3a9c13ed7b125ba..434621d6da5963f885d2e35142b9d1db28b8f22f 100644 --- a/compute/ztrmm.c +++ b/compute/ztrmm.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -207,7 +208,8 @@ int MORSE_ztrmm(MORSE_enum side, MORSE_enum uplo, morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -285,16 +287,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/ztrsm.c b/compute/ztrsm.c index 5a6b21980c2166cc4f9cd083074b2c59a4a566d7..db4e89dec01cd316b7933dd5faf1c798923cf1e1 100644 --- a/compute/ztrsm.c +++ b/compute/ztrsm.c @@ -29,7 +29,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -205,7 +206,8 @@ int MORSE_ztrsm(MORSE_enum side, MORSE_enum uplo, morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -283,16 +285,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/ztrsmpl.c b/compute/ztrsmpl.c index 86ef9bb4d3bffa2f0d228fe147e79927bb0d82de..0439834108f356cdb5ed263047c219f069596656 100644 --- a/compute/ztrsmpl.c +++ b/compute/ztrsmpl.c @@ -29,7 +29,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -160,7 +161,8 @@ int MORSE_ztrsmpl(int N, int NRHS, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -212,16 +214,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(B); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/ztrtri.c b/compute/ztrtri.c index 28cab09ef59ac5d24e8642972c909a57cf8c0e9d..2f2d36c6040991076ab17946577becfde41f311a 100644 --- a/compute/ztrtri.c +++ b/compute/ztrtri.c @@ -28,7 +28,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -154,7 +155,8 @@ int MORSE_ztrtri(MORSE_enum uplo, MORSE_enum diag, int N, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -218,15 +220,16 @@ 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_flush( A, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zunglq.c b/compute/zunglq.c index 0ee4758b652a79c973ae9c54278ca92be62c155c..7ececcb759dc1614ec1ec3b72f2691c541c6c841 100644 --- a/compute/zunglq.c +++ b/compute/zunglq.c @@ -30,7 +30,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -166,7 +167,8 @@ int MORSE_zunglq(int M, int N, int K, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -214,16 +216,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(Q); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zunglq_param.c b/compute/zunglq_param.c index d64930f4119ada76f12b9623e8230ed43378a1bd..5b6d30e6065194ea3f825b7304f889c8f9be2bb9 100644 --- a/compute/zunglq_param.c +++ b/compute/zunglq_param.c @@ -213,9 +213,9 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(Q); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zungqr.c b/compute/zungqr.c index 122b1b911adce9a201c93dbfcc62a9c41ef6405a..822dc4e568f7c9bca64af7c37746b57105aeba7f 100644 --- a/compute/zungqr.c +++ b/compute/zungqr.c @@ -30,7 +30,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -165,7 +166,8 @@ int MORSE_zungqr(int M, int N, int K, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -213,16 +215,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(Q); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zungqr_param.c b/compute/zungqr_param.c index 8b4f7e46103dcf0fd3cd92492ced8a764c2de654..af88ea598d0b1f9c13bfd1c328f5f5ec2e1170d3 100644 --- a/compute/zungqr_param.c +++ b/compute/zungqr_param.c @@ -214,9 +214,9 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(Q); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zunmlq.c b/compute/zunmlq.c index 33cf72a309ad39382c9c15b17b60caf59b46dcb0..81535c19d79ff71a24345609b2e319ad90c4056a 100644 --- a/compute/zunmlq.c +++ b/compute/zunmlq.c @@ -269,9 +269,9 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zunmlq_param.c b/compute/zunmlq_param.c index cace1d697c507ea985807303f74c1b50846dc3b0..b6f746d02e23a78cbfdd0853a34953d6d04fdac5 100644 --- a/compute/zunmlq_param.c +++ b/compute/zunmlq_param.c @@ -268,9 +268,9 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zunmqr.c b/compute/zunmqr.c index a32d603674ffd69e6baf2dc2175d923a6b0dd808..4464aaecbe90f5d6bbf86bf4c644aa89ccbe87d5 100644 --- a/compute/zunmqr.c +++ b/compute/zunmqr.c @@ -30,7 +30,8 @@ **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t * @@ -207,7 +208,8 @@ int MORSE_zunmqr(MORSE_enum side, MORSE_enum trans, int M, int N, int K, return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile * @@ -271,16 +273,17 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; } -/***************************************************************************//** +/** + ******************************************************************************** * * @ingroup MORSE_Complex64_t_Tile_Async * diff --git a/compute/zunmqr_param.c b/compute/zunmqr_param.c index 2a101ace364e8b379d92255b11be078925c17670..d285caabf0ce422062a6b621355c85bf309c4de4 100644 --- a/compute/zunmqr_param.c +++ b/compute/zunmqr_param.c @@ -274,9 +274,9 @@ 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_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu(A); - RUNTIME_desc_getoncpu(C); status = sequence->status; morse_sequence_destroy(morse, sequence); 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 bec07637c288d0db4bc7e8acd4f1d348046586f2..de7d216bdda0750193727395791c2fe9d3631479 100644 --- a/control/descriptor.c +++ b/control/descriptor.c @@ -151,7 +151,7 @@ MORSE_desc_t morse_desc_init_user(MORSE_enum dtyp, int mb, int nb, int bsiz, desc.occurences = 0; desc.use_mat = 1; desc.alloc_mat = 1; - desc.register_mat = 1; + desc.register_mat = (morse->ncudas > 0) ? 1 : 0; desc.ooc = 0; desc.myrank = RUNTIME_comm_rank( morse ); @@ -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..525c27b0671748655578d01f2bcaa5ccebe23c77 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/parsec/include/chameleon_parsec.h b/runtime/parsec/include/chameleon_parsec.h index 76f515905084369d2d597eda5ee143dfac04172f..4dcce7564eb3bfb5d35f96683dd55a49422a73c9 100644 --- a/runtime/parsec/include/chameleon_parsec.h +++ b/runtime/parsec/include/chameleon_parsec.h @@ -22,8 +22,8 @@ typedef struct morse_parsec_desc_s morse_parsec_desc_t; /* * Access to block pointer and leading dimension */ -#define RTBLKADDR( desc, type, m, n ) ( parsec_dtd_tile_of( (parsec_data_collection_t *) ((desc)->schedopt), \ - ((parsec_data_collection_t *) (desc)->schedopt)->data_key((desc)->schedopt, m, n) )) +#define RTBLKADDR( desc, type, m, n ) ( parsec_dtd_tile_of( (parsec_data_collection_t *) ((desc)->schedopt), \ + ((parsec_data_collection_t *) (desc)->schedopt)->data_key((desc)->schedopt, m, n) )) #define RUNTIME_BEGIN_ACCESS_DECLARATION diff --git a/runtime/quark/CMakeLists.txt b/runtime/quark/CMakeLists.txt index c6412acc493b121e49b3a4a329796b5411dad93d..db92c2a9bbc2755ca15b7a896432782c7c7cb83e 100644 --- a/runtime/quark/CMakeLists.txt +++ b/runtime/quark/CMakeLists.txt @@ -86,7 +86,6 @@ set(RUNTIME_COMMON control/runtime_descriptor.c control/runtime_options.c control/runtime_profiling.c - codelets/codelet_dataflush.c ${RUNTIME_COMMON_GENERATED} ) diff --git a/runtime/quark/codelets/codelet_dataflush.c b/runtime/quark/codelets/codelet_dataflush.c deleted file mode 100644 index cbec78c35a0739516c61a3c7d36a99c2cfbb3148..0000000000000000000000000000000000000000 --- a/runtime/quark/codelets/codelet_dataflush.c +++ /dev/null @@ -1,53 +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-2014, 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 - * - * @date 2014-02-05 - * - **/ -#include "chameleon_quark.h" - -void MORSE_TASK_flush_data( const MORSE_option_t *options, - const MORSE_desc_t *A, int Am, int An ) -{ - (void)options; (void)A; (void)Am; (void)An; - - /* - * This is useful for StarPU and PaRSEC MPI implementation, if it happens in - * Quark, it will need to be done carefuly to not break other runtimes. - */ -} - -void MORSE_TASK_flush_desc( const MORSE_option_t *options, - MORSE_enum uplo, const MORSE_desc_t *A ) -{ - (void)options; (void)uplo; (void)A; - - /* - * This is useful for StarPU and PaRSEC MPI implementation, if it happens in - * Quark, it will need to be done carefuly to not break other runtimes. - */ -} - -void MORSE_TASK_flush_all() -{ -} diff --git a/runtime/quark/control/runtime_descriptor.c b/runtime/quark/control/runtime_descriptor.c index 2b08dd846a3916e1013243867373b91f0ac9470e..3832d9926ee7b00fa86b9ae04d7f52c8a7d7f4bc 100644 --- a/runtime/quark/control/runtime_descriptor.c +++ b/runtime/quark/control/runtime_descriptor.c @@ -64,21 +64,34 @@ int RUNTIME_desc_release( const MORSE_desc_t *desc ) return MORSE_SUCCESS; } -int RUNTIME_desc_getoncpu( const MORSE_desc_t *desc ) +void +RUNTIME_desc_flush( const MORSE_desc_t *desc, + const MORSE_sequence_t *sequence ) { (void)desc; - return MORSE_SUCCESS; + (void)sequence; + return; } -int RUNTIME_desc_getoncpu_async( const MORSE_desc_t *desc, - MORSE_sequence_t *sequence ) + +void +RUNTIME_flush( ) +{ + return; +} + +void +RUNTIME_data_flush( const MORSE_sequence_t *sequence, + const MORSE_desc_t *A, int Am, int An ) { - (void)desc; (void)sequence; - return MORSE_SUCCESS; + (void)A; + (void)Am; + (void)An; + return; } -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 ) { return desc->get_blkaddr( desc, m, n ); } diff --git a/runtime/quark/include/chameleon_quark.h b/runtime/quark/include/chameleon_quark.h index 50d11f52188dcdd8759820714aa9486cfb5be11b..231e8acf39a1d1499b19ebab8a5dd71ef63764d6 100644 --- a/runtime/quark/include/chameleon_quark.h +++ b/runtime/quark/include/chameleon_quark.h @@ -40,7 +40,7 @@ typedef struct quark_option_s { /* * Access to block pointer and leading dimension */ -#define RTBLKADDR( desc, type, m, n ) ( (type*)RUNTIME_desc_getaddr( desc, m, n ) ) +#define RTBLKADDR( desc, type, m, n ) ( (type*)RUNTIME_data_getaddr( desc, m, n ) ) #define RUNTIME_BEGIN_ACCESS_DECLARATION 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 976c5dfca15c2b05f62590d68f2e4cb53a2ec5d9..0000000000000000000000000000000000000000 --- a/runtime/starpu/codelets/codelet_dataflush.c +++ /dev/null @@ -1,133 +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 - -#ifdef CHAMELEON_USE_MPI -#ifdef HAVE_STARPU_MPI_CACHED_RECEIVE -int RUNTIME_desc_iscached(const MORSE_desc_t *A, int Am, int An) -{ - starpu_data_handle_t *ptrtile = (starpu_data_handle_t*)(A->schedopt); - ptrtile += ((int64_t)(A->lmt) * (int64_t)An + (int64_t)Am); - - if (!(*ptrtile)) - return 0; - - return starpu_mpi_cached_receive(*ptrtile); -} -#endif -#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 39282f386736479b9b94b472f16e3e673c5d96aa..ee2350065243b40bc15d943d26f052875a7292f2 100644 --- a/runtime/starpu/control/runtime_descriptor.c +++ b/runtime/starpu/control/runtime_descriptor.c @@ -127,6 +127,8 @@ void RUNTIME_desc_create( MORSE_desc_t *desc ) rc = cudaHostRegister( desc->mat, size, cudaHostRegisterPortable ); if ( rc != cudaSuccess ) { + /* Disable the unregister as register failed */ + desc->register_mat = 0; morse_warning("RUNTIME_desc_create(StarPU): cudaHostRegister - ", cudaGetErrorString( rc )); } } @@ -294,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; } /******************************************************************************* @@ -375,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 82a71f96bde9802b9ec23e303f977c50b31a6d65..7567425e6c5819f0fd4c03f0b132ca6518ced614 100644 --- a/runtime/starpu/include/chameleon_starpu.h.in +++ b/runtime/starpu/include/chameleon_starpu.h.in @@ -117,24 +117,31 @@ 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); -#ifdef CHAMELEON_USE_MPI -#ifdef HAVE_STARPU_MPI_CACHED_RECEIVE -int RUNTIME_desc_iscached(const MORSE_desc_t *A, int Am, int An); -#endif -#endif -#if defined(CHAMELEON_USE_MPI) -# if defined(HAVE_STARPU_MPI_CACHED_RECEIVE) -# define RUNTIME_ACCESS_WRITE_CACHED(A, Am, An) do { if (RUNTIME_desc_iscached(A, Am, An)) __morse_need_submit = 1; } while(0) -# else -# warning "WAR dependencies need starpu_mpi_cached_receive support from StarPU 1.2.1 or greater" -# define RUNTIME_ACCESS_WRITE_CACHED(A, Am, An) -# endif +#if defined(CHAMELEON_USE_MPI) && defined(HAVE_STARPU_MPI_CACHED_RECEIVE) +static inline int +chameleon_starpu_data_iscached(const MORSE_desc_t *A, int Am, int An) +{ + starpu_data_handle_t *ptrtile = (starpu_data_handle_t*)(A->schedopt); + ptrtile += ((int64_t)(A->lmt) * (int64_t)An + (int64_t)Am); + + if (!(*ptrtile)) + return 0; + + return starpu_mpi_cached_receive(*ptrtile); +} + +#define RUNTIME_ACCESS_WRITE_CACHED(A, Am, An) do { \ + if (chameleon_starpu_data_iscached(A, Am, An)) __morse_need_submit = 1; } while(0) + #else -#define RUNTIME_ACCESS_WRITE_CACHED(A, Am, An) + +#warning "WAR dependencies need starpu_mpi_cached_receive support from StarPU 1.2.1 or greater" +#define RUNTIME_ACCESS_WRITE_CACHED(A, Am, An) do {} while (0) + #endif #ifdef CHAMELEON_ENABLE_PRUNING_STATS 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; }