Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 936ea749 authored by BOUCHERIE Raphael's avatar BOUCHERIE Raphael
Browse files

added iparam for qrtree and timing file

parent 29dd8a2e
No related branches found
No related tags found
1 merge request!47Integration of hierarchicah householder reduction trees
......@@ -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
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment