From e09de9d1cd5e7862af82e707e15dc933a29ca8a9 Mon Sep 17 00:00:00 2001 From: Mathieu Faverge <mathieu.faverge@inria.fr> Date: Mon, 15 Oct 2018 19:37:19 +0200 Subject: [PATCH] Hotfix/minor --- .gitlab-ci.yml | 17 +++ CTestConfig.cmake | 4 + compute/zgesvd.c | 110 ++++++++++--------- compute/zhetrd.c | 19 ++-- hqr | 2 +- runtime/starpu/include/chameleon_starpu.h.in | 5 +- timing/time_zlange_tile.c | 4 +- tools/analysis.sh | 1 + 8 files changed, 99 insertions(+), 63 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e8210f94f..31826071d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -237,6 +237,23 @@ test_parsec_master: only: - master@solverstack/chameleon +coverage: + stage: analyse + dependencies: + - test_starpu_branches + - test_starpu_simgrid_branches + - test_quark_branches + - test_parsec_branches + script: + - lcov -a chameleon_starpu.lcov + -a chameleon_starpu_simgrid.lcov + -a chameleon_quark.lcov + -a chameleon_parsec.lcov + -o chameleon.lcov + - lcov --summary chameleon.lcov + only: + - branches + coverity: stage: analyse dependencies: [] diff --git a/CTestConfig.cmake b/CTestConfig.cmake index 2b2d786a4..e79cbcc92 100644 --- a/CTestConfig.cmake +++ b/CTestConfig.cmake @@ -47,6 +47,10 @@ if(NOT BUILDNAME) set(BUILDNAME "${BUILDNAME}-StarPU") endif(CHAMELEON_SCHED_STARPU) + if(CHAMELEON_SCHED_PARSEC) + set(BUILDNAME "${BUILDNAME}-PaRSEC") + endif(CHAMELEON_SCHED_STARPU) + if(CHAMELEON_SIMULATION) set(BUILDNAME "${BUILDNAME}-SimGrid") endif(CHAMELEON_SIMULATION) diff --git a/compute/zgesvd.c b/compute/zgesvd.c index 3914ee386..0fef6eb2b 100644 --- a/compute/zgesvd.c +++ b/compute/zgesvd.c @@ -407,9 +407,10 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt, CHAM_desc_t *subA, *subT, *subUVT; double *E; int M, N, MINMN, NB, LDAB; - int KL, KU, uplo, nru, ncvt; - int info = 0; - char gbbrd_vect; + cham_uplo_t uplo; +#if !defined(CHAMELEON_SIMULATION) + int KL, KU, nru, ncvt; +#endif CHAM_context_t *chamctxt; chamctxt = chameleon_context_self(); @@ -500,54 +501,59 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt, memset(E, 0, MINMN * sizeof(double) ); #if !defined(CHAMELEON_SIMULATION) - /* NCC = 0, C = NULL, we do not update any matrix with new singular vectors */ - /* On exit, AB = U (S +~ E) VT */ - if (uplo == ChamUpper){ - KL = 0; - KU = NB; - } - else{ - KL = NB; - KU = 0; - } - - /* Manage the case where only singular values are required */ - if (jobu == ChamNoVec) { - nru = 0; - if (jobvt == ChamNoVec) { - gbbrd_vect = 'N'; - ncvt = 0; + { + char gbbrd_vect; + int info; + + /* NCC = 0, C = NULL, we do not update any matrix with new singular vectors */ + /* On exit, AB = U (S +~ E) VT */ + if (uplo == ChamUpper){ + KL = 0; + KU = NB; } - else { - gbbrd_vect = 'P'; - ncvt = N; + else{ + KL = NB; + KU = 0; } - } - else { - nru = M; - if (jobvt == ChamNoVec) { - gbbrd_vect = 'Q'; - ncvt = 0; + + /* Manage the case where only singular values are required */ + if (jobu == ChamNoVec) { + nru = 0; + if (jobvt == ChamNoVec) { + gbbrd_vect = 'N'; + ncvt = 0; + } + else { + gbbrd_vect = 'P'; + ncvt = N; + } } else { - gbbrd_vect = 'B'; - ncvt = N; + nru = M; + if (jobvt == ChamNoVec) { + gbbrd_vect = 'Q'; + ncvt = 0; + } + else { + gbbrd_vect = 'B'; + ncvt = N; + } } - } - - chameleon_sequence_wait( chamctxt, sequence ); - info = LAPACKE_zgbbrd( LAPACK_COL_MAJOR, - gbbrd_vect, - M, N, - 0, KL, KU, - (CHAMELEON_Complex64_t *) descAB.mat, LDAB, - S, E, - U, LDU, - VT, LDVT, - NULL, 1 ); - if (info != 0) { - fprintf(stderr, "CHAMELEON_zgesvd_Tile_Async: LAPACKE_zgbbrd = %d\n", info ); + chameleon_sequence_wait( chamctxt, sequence ); + + info = LAPACKE_zgbbrd( LAPACK_COL_MAJOR, + gbbrd_vect, + M, N, + 0, KL, KU, + (CHAMELEON_Complex64_t *) descAB.mat, LDAB, + S, E, + U, LDU, + VT, LDVT, + NULL, 1 ); + if (info != 0) { + fprintf(stderr, "CHAMELEON_zgesvd_Tile_Async: LAPACKE_zgbbrd = %d\n", info ); + } } #else chameleon_sequence_wait( chamctxt, sequence ); @@ -621,12 +627,14 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt, /* Solve the bidiagonal SVD problem */ /* On exit, U and VT are updated with bidiagonal matrix singular vectors */ #if !defined(CHAMELEON_SIMULATION) - info = LAPACKE_zbdsqr( LAPACK_COL_MAJOR, 'U', - MINMN, ncvt, nru, 0, - S, E, - VT, LDVT, U, LDU, NULL, 1 ); - if (info != 0) { - fprintf(stderr, "CHAMELEON_zgesvd_Tile_Async: LAPACKE_zbdsqr = %d\n", info ); + { + int info = LAPACKE_zbdsqr( LAPACK_COL_MAJOR, 'U', + MINMN, ncvt, nru, 0, + S, E, + VT, LDVT, U, LDU, NULL, 1 ); + if (info != 0) { + fprintf(stderr, "CHAMELEON_zgesvd_Tile_Async: LAPACKE_zbdsqr = %d\n", info ); + } } #endif /* !defined(CHAMELEON_SIMULATION) */ diff --git a/compute/zhetrd.c b/compute/zhetrd.c index 3f2b1ec64..96ff06b67 100644 --- a/compute/zhetrd.c +++ b/compute/zhetrd.c @@ -334,7 +334,6 @@ int CHAMELEON_zhetrd_Tile_Async( cham_job_t jobz, CHAM_desc_t descA; CHAM_desc_t descAB; int N, NB, LDAB; - int status; CHAM_desc_t D, *Dptr = NULL; chamctxt = chameleon_context_self(); @@ -420,14 +419,16 @@ int CHAMELEON_zhetrd_Tile_Async( cham_job_t jobz, /* Reduce band matrix to tridiagonal matrix */ #if !defined(CHAMELEON_SIMULATION) - status = LAPACKE_zhbtrd( LAPACK_COL_MAJOR, - chameleon_lapack_const(jobz), - chameleon_lapack_const(uplo), - N, NB, - (CHAMELEON_Complex64_t *) descAB.mat, LDAB, - W, E, Q, LDQ ); - if (status != 0) { - chameleon_error("CHAMELEON_zhetrd_Tile_Async", "LAPACKE_zhbtrd failed"); + { + int info = LAPACKE_zhbtrd( LAPACK_COL_MAJOR, + chameleon_lapack_const(jobz), + chameleon_lapack_const(uplo), + N, NB, + (CHAMELEON_Complex64_t *) descAB.mat, LDAB, + W, E, Q, LDQ ); + if (info != 0) { + chameleon_error("CHAMELEON_zhetrd_Tile_Async", "LAPACKE_zhbtrd failed"); + } } #endif /* !defined(CHAMELEON_SIMULATION) */ if (Dptr != NULL) { diff --git a/hqr b/hqr index 1e7bad3a5..7ad2afcef 160000 --- a/hqr +++ b/hqr @@ -1 +1 @@ -Subproject commit 1e7bad3a5e56c28514f8121195ffefdda70335bb +Subproject commit 7ad2afcef2901aa04c772369b3aa0deb4da9158b diff --git a/runtime/starpu/include/chameleon_starpu.h.in b/runtime/starpu/include/chameleon_starpu.h.in index 27d220f4b..7b8da64bf 100644 --- a/runtime/starpu/include/chameleon_starpu.h.in +++ b/runtime/starpu/include/chameleon_starpu.h.in @@ -128,8 +128,9 @@ chameleon_starpu_data_iscached(const CHAM_desc_t *A, int m, int n) starpu_data_handle_t *ptrtile = A->schedopt; ptrtile += ((int64_t)A->lmt) * nn + mm; - if (!(*ptrtile)) + if (!(*ptrtile)) { return 0; + } return starpu_mpi_cached_receive(*ptrtile); } @@ -139,7 +140,9 @@ chameleon_starpu_data_iscached(const CHAM_desc_t *A, int m, int n) #else +#if defined(CHAMELEON_USE_MPI) #warning "WAR dependencies need starpu_mpi_cached_receive support from StarPU 1.2.1 or greater" +#endif #define RUNTIME_ACCESS_WRITE_CACHED(A, Am, An) do {} while (0) #endif diff --git a/timing/time_zlange_tile.c b/timing/time_zlange_tile.c index 8c445d2a5..7991a9366 100644 --- a/timing/time_zlange_tile.c +++ b/timing/time_zlange_tile.c @@ -27,7 +27,7 @@ static int RunTest(int *iparam, double *dparam, chameleon_time_t *t_) { - double normcham, normlapack, result; + double normcham; int norm = ChamInfNorm; PASTE_CODE_IPARAM_LOCALS( iparam ); @@ -45,6 +45,8 @@ RunTest(int *iparam, double *dparam, chameleon_time_t *t_) /* Check the solution */ if ( check ) { + double normlapack, result; + /* Allocate Data */ PASTE_TILE_TO_LAPACK( descA, A, check, CHAMELEON_Complex64_t, M, N ); double *work = (double*) malloc(chameleon_max(M,N)*sizeof(double)); diff --git a/tools/analysis.sh b/tools/analysis.sh index a68733b07..2359771ec 100755 --- a/tools/analysis.sh +++ b/tools/analysis.sh @@ -17,6 +17,7 @@ lcov -a $PWD/chameleon_starpu.lcov -a $PWD/chameleon_quark.lcov -a $PWD/chameleon_parsec.lcov -o $PWD/chameleon.lcov +lcov --summary chameleon.lcov lcov_cobertura.py chameleon.lcov --output chameleon_coverage.xml # Undefine this because not relevant in our configuration -- GitLab