From b7d689d1f8c584c15aa0e17cd1f33457b3d038c5 Mon Sep 17 00:00:00 2001 From: Raphael Boucherie <raphael.boucherie@inria.fr> Date: Wed, 7 Jun 2017 18:35:00 +0200 Subject: [PATCH] updated header --- compute/pzgelqf_param.c | 51 ++++++++++++++------------------ compute/pzgeqrf_param.c | 11 ++----- compute/pzunglq_param.c | 36 +++++++++------------- compute/pzungqr_param.c | 14 +++------ compute/pzunmlq_param.c | 17 +++++------ compute/pzunmqr_param.c | 3 +- compute/zgelqf_param.c | 17 +++++------ compute/zgelqs_param.c | 29 ++++++++++-------- compute/zgels_param.c | 26 +++++++++------- compute/zgeqrf_param.c | 12 ++------ compute/zgeqrs_param.c | 15 ++++------ compute/zunglq_param.c | 17 +++++------ compute/zungqr_param.c | 14 +++------ compute/zunmlq_param.c | 21 +++++++------ compute/zunmqr_param.c | 22 +++++++------- testing/testing_zgels_hqr.c | 16 ++++------ testing/testing_zgels_systolic.c | 29 +++++++++--------- timing/time_zgeqrf_hqr.c | 22 ++++++++------ 18 files changed, 165 insertions(+), 207 deletions(-) diff --git a/compute/pzgelqf_param.c b/compute/pzgelqf_param.c index 476ce30d4..d85123145 100644 --- a/compute/pzgelqf_param.c +++ b/compute/pzgelqf_param.c @@ -15,15 +15,10 @@ * MORSE is a software package provided by Univ. of Tennessee, * Univ. of California Berkeley and Univ. of Colorado Denver * - * @version 2.5.0 - * @author Jakub Kurzak - * @author Hatem Ltaief - * @author Dulceneia Becker + * @version 0.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede * @author Raphael Boucherie - * @date 2010-11-15 + * @date 2017-05-17 * @precisions normal z -> s d c * **/ @@ -54,7 +49,7 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_de int k, m, n, i, p; int K; int ldak, ldam, ldap; - int tempkmin, tempkm, tempnn, tempmm; + int tempkmin, tempkm, tempnn, tempmm, temppn; int ib; int *tiles; @@ -108,33 +103,33 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_de /* The number of the factorization */ for (k = 0; k < K; k++) { RUNTIME_iteration_push(morse, k); - tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb; + tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb; + ldak = BLKLDD(A, k); /* The number of geqrt to apply */ for (i = 0; i < qrtree->getnbgeqrf(qrtree, k); i++) { - n = qrtree->getm(qrtree, k, i); - tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; - tempkmin = chameleon_min(tempnn, tempkm); - ldak = BLKLDD(A, k); + p = qrtree->getm(qrtree, k, i); + temppn = p == A->nt-1 ? A->n-p*A->nb : A->nb; + tempkmin = chameleon_min(tempkm, temppn); MORSE_TASK_zgelqt( &options, - tempkm, tempnn, ib, TS->nb, - A( k, n), ldak, - TS(k, n), TS->mb); - if ( k < (A->nt-1) ) { + tempkm, temppn, ib, TS->nb, + A( k, p), ldak, + TS(k, p), TS->mb); + if ( k < (A->mt-1) ) { #if defined(CHAMELEON_COPY_DIAG) MORSE_TASK_zlacpy( &options, - MorseUpper, tempkm, tempnn, A->nb, - A(k, n), ldak, - D(k, n), ldak ); + MorseUpper, tempkm, temppn, A->nb, + A(k, p), ldak, + D(k, p), ldak ); #if defined(CHAMELEON_USE_CUDA) MORSE_TASK_zlaset( &options, - MorseLower, tempkm, tempnn, + MorseLower, tempkm, temppn, 0., 1., - D(k, n), ldak ); + D(k, p), ldak ); #endif #endif } @@ -144,10 +139,10 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_de MORSE_TASK_zunmlq( &options, MorseRight, MorseConjTrans, - tempmm, tempnn, tempkmin, ib, TS->nb, - D( k, n), ldak, - TS(k, n), TS->mb, - A( m, n), ldam); + tempmm, temppn, tempkmin, ib, TS->nb, + D( k, p), ldak, + TS(k, p), TS->mb, + A( m, p), ldam); } } @@ -165,7 +160,7 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_de MORSE_TASK_ztslqt( &options, tempkm, tempnn, ib, TS->nb, - A( k, p), ldak, + A( p, n), ldap, A( k, n), ldak, TS(k, n), TS->mb); @@ -176,7 +171,7 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_de &options, MorseRight, MorseConjTrans, tempmm, A->nb, tempmm, tempnn, tempkm, ib, TS->nb, - A( m, p), ldam, + A( p, n), ldap, A( m, n), ldam, A( k, n), ldak, TS(k, n), TS->mb); diff --git a/compute/pzgeqrf_param.c b/compute/pzgeqrf_param.c index 44fead1c4..89585c408 100644 --- a/compute/pzgeqrf_param.c +++ b/compute/pzgeqrf_param.c @@ -15,15 +15,10 @@ * MORSE is a software package provided by Univ. of Tennessee, * Univ. of California Berkeley and Univ. of Colorado Denver * - * @version 2.5.0 - * @author Jakub Kurzak - * @author Hatem Ltaief - * @author Dulceneia Becker + * @version 1.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede * @author Raphael Boucherie - * @date 2010-11-15 + * @date 2017-05-17 * @precisions normal z -> s d c * **/ @@ -50,7 +45,7 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_option_t options; size_t ws_worker = 0; size_t ws_host = 0; - + int k, m, n, i, p; int K; int ldap, ldam; diff --git a/compute/pzunglq_param.c b/compute/pzunglq_param.c index b9e2a4e7f..4a2e3da00 100644 --- a/compute/pzunglq_param.c +++ b/compute/pzunglq_param.c @@ -3,8 +3,7 @@ * @copyright (c) 2009-2014 The University of Tennessee and The University * of Tennessee Research Foundation. * All rights reserved. - * @copyright (c) 2012-2016 Inria. All rights reserved. - * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,14 +15,10 @@ * 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 Dulceneia Becker + * @version 1.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2011-05-24 + * @author Raphael Boucherie + * @date 2017-05-17 * @precisions normal z -> s d c * **/ @@ -34,7 +29,7 @@ #define TS(m,n) TS, (m), (n) #define TT(m,n) TT, (m), (n) #if defined(CHAMELEON_COPY_DIAG) -#define D(m,n) D, ((n)/BS), 0 +#define D(m,n) D, (m), (n) #else #define D(m,n) A, (m), (n) #endif @@ -54,7 +49,7 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des int k, m, n, i, p; int K; - int ldak, ldqp, ldqm; + int ldak, ldqm; int tempkm, tempkmin, temppn, tempnn, tempmm; int ib; int *tiles; @@ -92,16 +87,14 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des RUNTIME_options_ws_alloc( &options, ws_worker, ws_host ); -#if defined(CHAMELEON_COPY_DIAG) - { + K = chameleon_min(A->mt, A->nt); + /* necessary to avoid dependencies between tasks regarding the diag tile */ - int nblk = ( A->nt + BS -1 ) / BS; - D = (MORSE_desc_t*)malloc(sizeof(MORSE_desc_t)); - morse_zdesc_alloc_diag(*DIAG, A->mb, A->nb, nblk * A->mb, A->nb, 0, 0, nblk * A->mb, A->nb, A->p, A->q); - } +#if defined(CHAMELEON_COPY_DIAG) + D = (MORSE_desc_t*)malloc(sizeof(MORSE_desc_t)); + morse_zdesc_alloc_diag(*D, A->mb, A->nb, K*A->mb, A->nb, 0, 0, K*A->mb, A->nb, A->p, A->q); #endif - K = chameleon_min(A->mt, A->nt); for (k = K-1; k >= 0; k--) { RUNTIME_iteration_push(morse, k); @@ -116,7 +109,6 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des p = qrtree->currpiv(qrtree, k, n); tempnn = n == Q->nt-1 ? Q->n-n*Q->nb : Q->nb; - ldqp = BLKLDD(Q, p); /* TT or TS */ @@ -152,14 +144,13 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des for (i = 0; i < qrtree->getnbgeqrf(qrtree, k); i++) { p = qrtree->getm(qrtree, k, i); - temppn = p == A->mt-1 ? A->m-p*A->mb : A->mb; + temppn = p == A->nt-1 ? A->n-p*A->nb : A->nb; tempkmin = chameleon_min(tempkm, temppn); - ldqp = BLKLDD(Q, p); #if defined(CHAMELEON_COPY_DIAG) MORSE_TASK_zlacpy( &options, - MorseUpper, tempkmim, temppn, A->nb, + MorseUpper, tempkmin, temppn, A->nb, A(k, p), ldak, D(k, p), ldak ); #if defined(CHAMELEON_USE_CUDA) @@ -172,6 +163,7 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des #endif for (m = k; m < Q->mt; m++) { tempmm = m == Q->mt-1 ? Q->m-m*Q->mb : Q->mb; + ldqm = BLKLDD(Q, m); MORSE_TASK_zunmlq( &options, MorseRight, MorseNoTrans, diff --git a/compute/pzungqr_param.c b/compute/pzungqr_param.c index ef0ecd41f..899e89b41 100644 --- a/compute/pzungqr_param.c +++ b/compute/pzungqr_param.c @@ -3,8 +3,7 @@ * @copyright (c) 2009-2014 The University of Tennessee and The University * of Tennessee Research Foundation. * All rights reserved. - * @copyright (c) 2012-2016 Inria. All rights reserved. - * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,15 +15,10 @@ * 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 Hatem Ltaief - * @author Jakub Kurzak + * @version 1.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 + * @author Raphael Boucherie + * @date 2017-05-17 * @precisions normal z -> s d c * **/ diff --git a/compute/pzunmlq_param.c b/compute/pzunmlq_param.c index 5c584c680..927dfbe08 100644 --- a/compute/pzunmlq_param.c +++ b/compute/pzunmlq_param.c @@ -3,8 +3,7 @@ * @copyright (c) 2009-2014 The University of Tennessee and The University * of Tennessee Research Foundation. * All rights reserved. - * @copyright (c) 2012-2016 Inria. All rights reserved. - * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -50,8 +49,8 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *D = NULL; int k, m, n, i, p; - int ldan, ldam, ldbm, ldbn, ldak, ldbp; - int tempnn, temppn, tempkmin, tempmm, tempkn, tempkm; + int ldbm, ldak, ldbp; + int tempnn, temppn, tempkmin, tempmm, tempkm; int ib, K; int *tiles; @@ -241,7 +240,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree, #if defined(CHAMELEON_COPY_DIAG) MORSE_TASK_zlacpy( &options, - MorseUpper, tempkmim, temppn, A->nb, + MorseUpper, tempkmin, temppn, A->nb, A(k, p), ldak, D(k, p), ldak ); #if defined(CHAMELEON_USE_CUDA) @@ -321,14 +320,14 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree, for (i = 0; i < qrtree->getnbgeqrf(qrtree, k); i++) { p = qrtree->getm(qrtree, k, i); - temppn = p == A->mt-1 ? A->m-p*A->mb : A->mb; + temppn = p == A->nt-1 ? A->n-p*A->nb : A->nb; tempkmin = chameleon_min(tempkm, temppn); ldbp = BLKLDD(B, p); #if defined(CHAMELEON_COPY_DIAG) MORSE_TASK_zlacpy( &options, - MorseUpper, tempkmim, temppn, A->nb, + MorseUpper, tempkmin, temppn, A->nb, A(k, p), ldak, D(k, p), ldak ); #if defined(CHAMELEON_USE_CUDA) @@ -371,13 +370,13 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree, #if defined(CHAMELEON_COPY_DIAG) MORSE_TASK_zlacpy( &options, - MorseUpper, tempkmin, tempkpn, A->nb, + MorseUpper, tempkmin, temppn, A->nb, A(k, p), ldak, D(k, p), ldak ); #if defined(CHAMELEON_USE_CUDA) MORSE_TASK_zlaset( &options, - MorseLower, tempkmin, tempkpn, + MorseLower, tempkmin, temppn, 0., 1., D(k, p), ldak ); #endif diff --git a/compute/pzunmqr_param.c b/compute/pzunmqr_param.c index 7e2733985..8d7e7ead6 100644 --- a/compute/pzunmqr_param.c +++ b/compute/pzunmqr_param.c @@ -3,8 +3,7 @@ * @copyright (c) 2009-2014 The University of Tennessee and The University * of Tennessee Research Foundation. * All rights reserved. - * @copyright (c) 2012-2016 Inria. All rights reserved. - * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ diff --git a/compute/zgelqf_param.c b/compute/zgelqf_param.c index 92860796c..4b893047a 100644 --- a/compute/zgelqf_param.c +++ b/compute/zgelqf_param.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,15 +15,10 @@ * 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 Jakub Kurzak - * @author Dulceneia Becker + * @version 1.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 + * @author Raphael Boucherie + * @date 2017-05-17 * @precisions normal z -> s d c * **/ @@ -39,6 +33,9 @@ * ******************************************************************************* * + * @param[in] qrtree + * The tree used for the factorization + * * @param[in] M * The number of rows of the matrix A. M >= 0. * diff --git a/compute/zgelqs_param.c b/compute/zgelqs_param.c index 41bbe1842..71550a71b 100644 --- a/compute/zgelqs_param.c +++ b/compute/zgelqs_param.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,20 +15,17 @@ * 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 Jakub Kurzak + * @version 1.0.0 + * @author Raphael Boucherie * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 + * @date 2017-05-17 * @precisions normal z -> s d c * **/ #include "control/common.h" -/***************************************************************************//** +/** + ******************************************************************************* * * @ingroup MORSE_Complex64_t * @@ -38,6 +34,9 @@ * ******************************************************************************* * + * @param[in] qrtree + * The tree used for the factorization + * * @param[in] M * The number of rows of the matrix A. M >= 0. * @@ -53,7 +52,10 @@ * @param[in] LDA * The leading dimension of the array A. LDA >= M. * - * @param[in] descT + * @param[in] descTS + * Auxiliary factorization data, computed by MORSE_zgelqf. + * + * @param[in] descTT * Auxiliary factorization data, computed by MORSE_zgelqf. * * @param[in,out] B @@ -184,7 +186,10 @@ int MORSE_zgelqs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS, * @param[in] A * Details of the LQ factorization of the original matrix A as returned by MORSE_zgelqf. * - * @param[in] T + * @param[in] TS + * Auxiliary factorization data, computed by MORSE_zgelqf. + * + * @param[in] TT * Auxiliary factorization data, computed by MORSE_zgelqf. * * @param[in,out] B diff --git a/compute/zgels_param.c b/compute/zgels_param.c index cd76d61b0..6c3c11da8 100644 --- a/compute/zgels_param.c +++ b/compute/zgels_param.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,14 +15,10 @@ * 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 Jakub Kurzak + * @version 1.0.0 + * @author Raphael Boucherie * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 + * @date 2017-05-17 * @precisions normal z -> s d c * **/ @@ -50,6 +45,9 @@ * ******************************************************************************* * + * @param[in] qrtree + * The tree used for the factorization + * * @param[in] trans * Intended usage: * = MorseNoTrans: the linear system involves A; @@ -77,7 +75,10 @@ * @param[in] LDA * The leading dimension of the array A. LDA >= max(1,M). * - * @param[out] descT + * @param[out] descTS + * On exit, auxiliary factorization data. + * + * @param[out] descTT * On exit, auxiliary factorization data. * * @param[in,out] B @@ -245,7 +246,10 @@ int MORSE_zgels_param(const libhqr_tree_t *qrtree, MORSE_enum trans, int M, int * if M < N, A is overwritten by details of its LQ factorization as returned by * MORSE_zgelqf. * - * @param[out] T + * @param[out] TS + * On exit, auxiliary factorization data. + * + * @param[out] TT * On exit, auxiliary factorization data. * * @param[in,out] B diff --git a/compute/zgeqrf_param.c b/compute/zgeqrf_param.c index 4525309bc..49020b8ef 100644 --- a/compute/zgeqrf_param.c +++ b/compute/zgeqrf_param.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,15 +15,10 @@ * 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 Jakub Kurzak + * @version 1.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede * @author Raphael Boucherie - * @date 2010-11-15 + * @date 2017-05-17 * @precisions normal z -> s d c * **/ diff --git a/compute/zgeqrs_param.c b/compute/zgeqrs_param.c index 1b86b10be..86cf56f69 100644 --- a/compute/zgeqrs_param.c +++ b/compute/zgeqrs_param.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,14 +15,10 @@ * 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 Jakub Kurzak + * @version 1.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 + * @author Raphael Boucherie + * @date 2017-05-17 * @precisions normal z -> s d c * **/ @@ -269,7 +264,7 @@ int MORSE_zgeqrs_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *subB; MORSE_context_t *morse; MORSE_desc_t D; - + morse = morse_context_self(); if (morse == NULL) { morse_fatal_error("MORSE_zgeqrs_param_Tile", "MORSE not initialized"); diff --git a/compute/zunglq_param.c b/compute/zunglq_param.c index 990b51128..24294d56b 100644 --- a/compute/zunglq_param.c +++ b/compute/zunglq_param.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,15 +15,10 @@ * 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 Hatem Ltaief - * @author Jakub Kurzak + * @version 1.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 + * @author Raphael Boucherie + * @date 2017-05-17 * @precisions normal z -> s d c * **/ @@ -40,6 +34,9 @@ * ******************************************************************************* * + * @param[in] qrtree + * The tree used for the factorization + * * @param[in] M * The number of rows of the matrix Q. M >= 0. * diff --git a/compute/zungqr_param.c b/compute/zungqr_param.c index 513c50af4..469c73cd4 100644 --- a/compute/zungqr_param.c +++ b/compute/zungqr_param.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,15 +15,10 @@ * 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 Hatem Ltaief - * @author Jakub Kurzak + * @version 1.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 + * @author Raphael Boucherie + * @date 2017-05-17 * @precisions normal z -> s d c * **/ diff --git a/compute/zunmlq_param.c b/compute/zunmlq_param.c index 3c47fa515..d00961827 100644 --- a/compute/zunmlq_param.c +++ b/compute/zunmlq_param.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -17,15 +16,9 @@ * 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 Hatem Ltaief - * @author Jakub Kurzak - * @author Dulceneia Becker * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 + * @author Raphael Boucherie + * @date 2017-05-17 * @precisions normal z -> s d c * **/ @@ -52,6 +45,9 @@ * ******************************************************************************* * + * @param[in] qrtree + * The tree used for the factorization + * * @param[in] side * Intended usage: * = MorseLeft: apply Q or Q**H from the left; @@ -79,7 +75,10 @@ * @param[in] LDA * The leading dimension of the array A. LDA >= max(1,K). * - * @param[in] descT + * @param[in] descTS + * Auxiliary factorization data, computed by MORSE_zgelqf. + * + * @param[in] descTT * Auxiliary factorization data, computed by MORSE_zgelqf. * * @param[in,out] C diff --git a/compute/zunmqr_param.c b/compute/zunmqr_param.c index 1e9af1473..a73e7ff4f 100644 --- a/compute/zunmqr_param.c +++ b/compute/zunmqr_param.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,15 +15,10 @@ * 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 Hatem Ltaief - * @author Jakub Kurzak + * @version 1.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @date 2010-11-15 + * @author Raphael Boucherie + * @date 2017-05-17 * @precisions normal z -> s d c * **/ @@ -51,6 +45,9 @@ * ******************************************************************************* * + * @param[in] qrtree + * The tree used for the factorization + * * @param[in] side * Intended usage: * = MorseLeft: apply Q or Q**H from the left; @@ -81,7 +78,10 @@ * If side == MorseLeft, LDA >= max(1,M). * If side == MorseRight, LDA >= max(1,N). * - * @param[in] descT + * @param[in] descTS + * Auxiliary factorization data, computed by MORSE_zgeqrf. + * + * @param[in] descTT * Auxiliary factorization data, computed by MORSE_zgeqrf. * * @param[in,out] C diff --git a/testing/testing_zgels_hqr.c b/testing/testing_zgels_hqr.c index c1d411a32..f58b51860 100644 --- a/testing/testing_zgels_hqr.c +++ b/testing/testing_zgels_hqr.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,16 +15,10 @@ * 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 Bilel Hadri - * @author Hatem Ltaief + * @version 1.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede * @author Boucherie Raphael - * @date 2010-11-15 + * @date 2017-05-17 * @precisions normal z -> c d s * **/ @@ -228,8 +221,11 @@ int testing_zgels_hqr(int argc, char **argv) /* Morse routines */ MORSE_zgelqf_param(&qrtree, M, N, A2, LDA, TS, TT); + //MORSE_zgelqf(M, N, A2, LDA, TS); MORSE_zunglq_param(&qrtree, M, N, K, A2, LDA, TS, TT, Q, LDA); + //MORSE_zunglq(M, N, K, A2, LDA, TS, Q, LDA); MORSE_zgelqs_param(&qrtree, M, N, NRHS, A2, LDA, TS, TT, B2, LDB); + //MORSE_zgelqs(M, N, NRHS, A2, LDA, TS, B2, LDB); /* Check the orthogonality, factorization and the solution */ info_ortho = check_orthogonality(M, N, LDA, Q, eps); diff --git a/testing/testing_zgels_systolic.c b/testing/testing_zgels_systolic.c index d12c490a5..ef9db84d5 100644 --- a/testing/testing_zgels_systolic.c +++ b/testing/testing_zgels_systolic.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -16,16 +15,10 @@ * 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 Bilel Hadri - * @author Hatem Ltaief + * @version 1.0.0 * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede * @author Boucherie Raphael - * @date 2010-11-15 + * @date 2017-05-17 * @precisions normal z -> c d s * **/ @@ -86,7 +79,6 @@ int testing_zgels_systolic(int argc, char **argv) int info_ortho, info_solution, info_factorization; int LDAxN = LDA*N; int LDBxNRHS = LDB*NRHS; - int domino, tsrr, llvl, hlvl, qr_a, qr_p; MORSE_Complex64_t *A1 = (MORSE_Complex64_t *)malloc(LDA*N*sizeof(MORSE_Complex64_t)); MORSE_Complex64_t *A2 = (MORSE_Complex64_t *)malloc(LDA*N*sizeof(MORSE_Complex64_t)); @@ -134,6 +126,7 @@ int testing_zgels_systolic(int argc, char **argv) /* MORSE ZGELS */ MORSE_zgels_param(&qrtree, MorseNoTrans, M, N, NRHS, A2, LDA, TS, TT, B2, LDB); + //MORSE_zgels(MorseNoTrans, M, N, NRHS, A2, LDA, TS, B2, LDB); /* MORSE ZGELS */ if (M >= N) @@ -142,6 +135,8 @@ int testing_zgels_systolic(int argc, char **argv) else /* Building the economy-size Q */ MORSE_zunglq_param(&qrtree, M, N, K, A2, LDA, TS, TT, Q, LDA); + //MORSE_zunglq(M, N, K, A2, LDA, TS, Q, LDA); + printf("\n"); printf("------ TESTS FOR CHAMELEON ZGELS_SYSTOLIC ROUTINE ------- \n"); @@ -223,8 +218,10 @@ int testing_zgels_systolic(int argc, char **argv) /* Morse routines */ MORSE_zgelqf_param(&qrtree, M, N, A2, LDA, TS, TT); - MORSE_zunglq_param(&qrtree, M, N, K, A2, LDA, TS, TT, Q, LDA); - MORSE_zgelqs_param(&qrtree, M, N, NRHS, A2, LDA, TS, TT, B2, LDB); + MORSE_zunglq(M, N, K, A2, LDA, TS, Q, LDA); + // MORSE_zunglq_param(&qrtree, M, N, K, A2, LDA, TS, TT, Q, LDA); + //MORSE_zgelqs_param(&qrtree, M, N, NRHS, A2, LDA, TS, TT, B2, LDB); + MORSE_zgelqs(M, N, NRHS, A2, LDA, TS, B2, LDB); /* Check the orthogonality, factorization and the solution */ info_ortho = check_orthogonality(M, N, LDA, Q, eps); @@ -287,8 +284,10 @@ int testing_zgels_systolic(int argc, char **argv) MORSE_zgelqf_param(&qrtree, M, N, A2, LDA, TS, TT); MORSE_ztrsm(MorseLeft, MorseLower, MorseNoTrans, MorseNonUnit, M, NRHS, 1.0, A2, LDA, B2, LDB); - MORSE_zunglq_param(&qrtree, M, N, K, A2, LDA, TS, TT, Q, LDA); - MORSE_zunmlq_param(&qrtree, MorseLeft, MorseConjTrans, N, NRHS, M, A2, LDA, TS, TT, B2, LDB); + //MORSE_zunglq_param(&qrtree, M, N, K, A2, LDA, TS, TT, Q, LDA); + MORSE_zunglq(M, N, K, A2, LDA, TS, Q, LDA); + //MORSE_zunmlq_param(&qrtree, MorseLeft, MorseConjTrans, N, NRHS, M, A2, LDA, TS, TT, B2, LDB); + MORSE_zunmlq(MorseLeft, MorseConjTrans, N, NRHS, M, A2, LDA, TS, B2, LDB); } /* Check the orthogonality, factorization and the solution */ diff --git a/timing/time_zgeqrf_hqr.c b/timing/time_zgeqrf_hqr.c index 5c17848b1..a0236f6ec 100644 --- a/timing/time_zgeqrf_hqr.c +++ b/timing/time_zgeqrf_hqr.c @@ -3,8 +3,7 @@ * @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 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * @copyright (c) 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -41,10 +40,13 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) } /* Allocate Data */ - PASTE_CODE_ALLOCATE_MATRIX( A, 1, MORSE_Complex64_t, LDA, N ); + PASTE_CODE_ALLOCATE_MATRIX_TILE( descA, 1, MORSE_Complex64_t, LDA, M, N ); + PASTE_CODE_ALLOCATE_MATRIX_TILE( descX, ( check && M == N ), MORSE_Complex64_t, MorseComplexDouble, LDB, M, NRHS ); + PASTE_CODE_ALLOCATE_MATRIX_TILE( descA0, ( check && M == N ), MORSE_Complex64_t, MorseComplexDouble, LDA, M, N ); + PASTE_CODE_ALLOCATE_MATRIX_TILE( descB, ( check && M == N ), MORSE_Complex64_t, MorseComplexDouble, LDB, M, NRHS ); + + MORSE_zplrnt_Tile( descA, 5373 ); - /* Initialize Data */ - MORSE_zplrnt(M, N, A, LDA, 3456); /* Allocate Workspace */ MORSE_Alloc_Workspace_zgels(M, N, &TS, P, Q); @@ -52,8 +54,10 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) MORSE_Alloc_Workspace_zgels(M, N, &TT, P, Q); memset(TT->mat, 0, (TT->llm*TT->lln)*sizeof(MorseComplexDouble)); - /* Save AT in lapack layout for check */ - PASTE_CODE_ALLOCATE_COPY( Acpy, check, MORSE_Complex64_t, A, LDA, N ); + /* Save A for check */ + if (check == 1 && M == N){ + MORSE_zlacpy_Tile(MorseUpperLower, descA, descA0); + } /* Initialize matrix */ matrix.mt = TS->mt; @@ -67,7 +71,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) &matrix, -1, -1, 1, -1, 0, 0); START_TIMING(); - MORSE_zgeqrf_param(&qrtree, M, N, A, LDA, TS, TT ); + MORSE_zgeqrf_param(&qrtree, M, N, descA, LDA, TS, TT ); STOP_TIMING(); /* Check the solution */ @@ -92,7 +96,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) /* Free Workspace */ MORSE_Dealloc_Workspace( &TS ); MORSE_Dealloc_Workspace( &TT ); - free( A ); + free( descA ); return 0; } -- GitLab