Commit 936ea749 authored by BOUCHERIE Raphael's avatar BOUCHERIE Raphael

added iparam for qrtree and timing file

parent 29dd8a2e
......@@ -306,6 +306,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
else {
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldbm = BLKLDD(B, m);
MORSE_TASK_zttmlq(
&options,
side, trans,
......@@ -406,6 +407,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
if(qrtree->gettype(qrtree, k, n) == 0){
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldbm = BLKLDD(B, m);
MORSE_TASK_ztsmlq(
&options,
side, trans,
......@@ -419,6 +421,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
else {
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldbm = BLKLDD(B, m);
MORSE_TASK_zttmlq(
&options,
side, trans,
......
/**
*
* @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.
*
**/
/**
*
* @precisions normal z -> c d s
*
**/
#define _TYPE MORSE_Complex64_t
#define _PREC double
#define _LAMCH LAPACKE_dlamch_work
#define _NAME "MORSE_zgeqrf_param"
/* See Lawn 41 page 120 */
#define _FMULS FMULS_GEQRF(M, N)
#define _FADDS FADDS_GEQRF(M, N)
#include "./timing.c"
#include "timing_zauxiliary.h"
static int
RunTest(int *iparam, double *dparam, morse_time_t *t_)
{
MORSE_desc_t *TS;
MORSE_desc_t *TT;
PASTE_CODE_IPARAM_LOCALS( iparam );
if ( M != N && check ) {
fprintf(stderr, "Check cannot be perfomed with M != N\n");
check = 0;
}
/* Allocate Data */
PASTE_CODE_ALLOCATE_MATRIX( A, 1, MORSE_Complex64_t, LDA, N );
/* Initialize Data */
MORSE_zplrnt(M, N, A, LDA, 3456);
/* Allocate Workspace */
MORSE_Alloc_Workspace_zgels(M, N, &TS, P, Q);
memset(TS->mat, 0, (TS->llm*TS->lln)*sizeof(MorseComplexDouble));
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 );
START_TIMING();
MORSE_zgeqrf( M, N, A, LDA, TS );
STOP_TIMING();
/* Check the solution */
if ( check )
{
PASTE_CODE_ALLOCATE_MATRIX( X, 1, MORSE_Complex64_t, LDB, NRHS );
MORSE_zplrnt( N, NRHS, X, LDB, 5673 );
PASTE_CODE_ALLOCATE_COPY( B, 1, MORSE_Complex64_t, X, LDB, NRHS );
MORSE_zgeqrs(M, N, NRHS, A, LDA, TS, X, LDB);
dparam[IPARAM_RES] = z_check_solution(M, N, NRHS, Acpy, LDA, B, X, LDB,
&(dparam[IPARAM_ANORM]),
&(dparam[IPARAM_BNORM]),
&(dparam[IPARAM_XNORM]));
free( Acpy );
free( B );
free( X );
}
/* Free Workspace */
MORSE_Dealloc_Workspace( &TS );
MORSE_Dealloc_Workspace( &TT );
free( A );
return 0;
}
......@@ -63,6 +63,17 @@ enum iparam_timing {
IPARAM_BOUNDDEPS,
IPARAM_BOUNDDEPSPRIO,
/* End */
/* Added for libhqr version */
IPARAM_NNODES, /* Number of nodes */
IPARAM_GP, /* Rows in the process grid */
IPARAM_GQ, /* Columns in the process grid */
IPARAM_LOWLVL_TREE, /* Tree used for reduction inside nodes */
IPARAM_HIGHLVL_TREE, /* Tree used for reduction between nodes */
IPARAM_QR_TS_SZE, /* Size of TS domain */
IPARAM_QR_HLVL_SZE, /* Size of the high level tree */
IPARAM_QR_DOMINO, /* Enable/disable the domino tree */
IPARAM_QR_TSRR, /* Enable/disable the round-robin on TS domain */
/* End */
IPARAM_SIZEOF
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment