Skip to content

Hard-coded fil-in estimation causes errors #27

@djturizo

Description

@djturizo

Using the library to factor a square test matrix of size 377938 yields the following error:

Storage for L subscripts exceeded; Current column 146522; Need at least 75175526;
You may set it by the 8-th parameter in routine sp_ienv().
Memory allocation failed at line 231 in file /home/daniel/superlu_mt-4.0.2/SRC/pmemory.c

Reading the code I believe the issue comes from the function pdgstrf_MemInit in the file pdmemory.c, where we have:

...
    int_t      FILL_LUSUP = sp_ienv(6); /* Guess the fill-in growth for LUSUP */
    int_t      FILL_UCOL = sp_ienv(7); /* Guess the fill-in growth for UCOL */
    int_t      FILL_LSUB = sp_ienv(8); /* Guess the fill-in growth for LSUB */
...

These fill-in growth estimate are hard-coded values, which may be insufficient for some matrices. A way to solve this issue would be to enable the user to provide the fill-in estimates, so that the factorization can be repeated with larger allocation in case of failure.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions