[petsc-users] -mat_superlu_lwork

Satish Balay balay at mcs.anl.gov
Tue Jul 3 11:32:21 CDT 2012


Actually its INT_MAX.

>From superlu's dgssvx.c

>>>>>>>
 * lwork   (input) int
 *         Specifies the size of work array in bytes.
 
void
dgssvx(superlu_options_t *options, SuperMatrix *A, int *perm_c, int *perm_r,
       int *etree, char *equed, double *R, double *C,
       SuperMatrix *L, SuperMatrix *U, void *work, int lwork,
       SuperMatrix *B, SuperMatrix *X, double *recip_pivot_growth,
       double *rcond, double *ferr, double *berr,
       mem_usage_t *mem_usage, SuperLUStat_t *stat, int *info )
<<<<<<

So the code is expecting an int - and PETSc passes in this option as int.

Sure - 'int' here is limiting the malloc to 2GB - and causing you problems.

Satish

On Tue, 3 Jul 2012, Gianluca Meneghello wrote:

> Hong,
> 
> thanks for your answer. I do not know if my problem request 64 bit support.
> 
> My understanding is that I can preallocate the working array for
> superlu with the PETSc database options -mat_superlu_lwork. Following
> PETSc manual, this has to be specified in bytes.
> 
> From my point of view, the problem is that I cannot pass to PETSc an
> integer greater than 2.147.483.647 (that is, LONG_MAX), thus I am
> limited to allocating roughly 2 GB of memory. If my factored matrix is
> bigger, I have to rely on the mallocs/copy.
> 
> Let me know if it is not clear yet.
> 
> Gianlu
> 
> 
> 
> 
> 
> On 3 July 2012 15:53, Hong Zhang <hzhang at mcs.anl.gov> wrote:
> > Gianluca:
> >
> > Do you mean 64-bit support for superlu?
> > I do not understand your request, thus forward your request to superlu
> > developer.
> >
> > Hong
> >
> >> Dear all,
> >>
> >> I am trying to use superlu as solver for a large, sparse matrix, and I
> >> would like to use -mat_superlu_lwork to speed up the computation. The
> >> problem I encounter is that my lwork size I would need is greated than
> >> the maximum value for an object of type long int and is not correctly
> >> read by the code.
> >>
> >> Is there a workaround to that? Does using another solver (mumps
> >> maybe?) solve this problem and, if so, which option should I use?
> >>
> >> Thanks in advance
> >>
> >> Gianluca
> >>
> >> --
> >> "[Je pense que] l'homme est un monde qui vaut des fois les mondes et
> >> que les plus ardentes ambitions sont celles qui ont eu l'orgueil de
> >> l'Anonymat" -- Non omnibus, sed mihi et tibi
> >> Amedeo Modigliani
> >
> >
> 
> 
> 
> 



More information about the petsc-users mailing list