Skip to content

Puzzles about using FLASH_LU_piv #91

@HPC4AI

Description

@HPC4AI

Hi, I want to utilize the function 'FLASH_lu_piv' to perform a LU factorization. But I have met a NULL pointer error. This error could be my mistake for misunderstanding the usage of the function.

  • Configuration
./configure --enable-dynamic-build --enable-external-lapack-for-subproblems --enable-external-lapack-interfaces --enable-multithreading=openmp --enable-supermatrix --enable-cblas-interfaces --enable-portable-timer 
  • Code samples
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
#include <FLAME.h>

int main( void )
{
    // matrix parameters: A, column major
    int N;
    // test parameters
    int N_START, N_END, INC, REPEAT;

    printf("[INPUT]: input N_START, N_END, INC, REPEAT\n");
    if(scanf("%d %d %d %d", &N_START, &N_END, &INC, &REPEAT) == 4){
        printf("[TRUE]: true parameters for scanf\n");
    }
    else{
        fprintf(stderr, "[ERROR]: false parameters for scanf\n");
        exit(EXIT_FAILURE);
    }

    // Initialize libflame.
    FLA_Init();

    // N, REPEAT
    N = N_START;
    while (N <= N_END){
        for(int re_count = 0; re_count < REPEAT; ++ re_count){
                dim_t blocksize = 40, depth = 1;

                FLA_Obj IPIV;
                FLA_Obj_create( FLA_INT, N, 1, 0, 0, &IPIV);

                FLA_Obj A, A_FLASH;
                FLA_Obj_create( FLA_DOUBLE, N, N, 0, 0, &A );
                FLA_Random_matrix( A );

                int info;
                FLASH_Obj_create_hier_copy_of_flat(A, depth, &blocksize, &A_FLASH);
                info = FLASH_LU_piv(A_FLASH, IPIV);

                FLASH_Obj_free( &A_FLASH ); FLA_Obj_free( &IPIV );
            }
        N += INC;
    }
    
    FLA_Finalize();

    return 0;
}
  • build
gcc -o flame.x flame.c -I /home/xx/lib/libflame/include/ /home/xx/project/libflame/lib/x86_64-unknown-linux-gnu/libflame.a /home/xx/lib/openblas/lib/libopenblas.a -fopenmp -lpthread -lm
  • Error Information
    image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions