[petsc-users] Fwd: superlu_dist with same_nonzero_pattern

Xiangdong Liang xdliang at gmail.com
Thu Jun 23 15:42:21 CDT 2011


Thanks, Hong. I tried the runtime option -mat_superlu_dist_equil NO.
However, the problem is still there.

I've upload my short codes here:
http://math.mit.edu/~xdliang/superlu_dist_test.zip

In this code, I first generate my sparse matrix M with dimension
N-by-N, then solve Mx=J for a few times. Each time, I only modify the
entries of two diagonals: (i,i) and  ( i, (i+N/2)%N). Althougth I
modify these entries, I thought the nonzero pattern should not change.
Based on my tests, I found that:

1 superlu_dist works fine with DIFFERENT_NONZERO_PATTERN. However, if
I switch to SAME_NONZERO_PATTERN, the program either crashes (with np
>1 ) or does not converge ( with single processor).

2 pastix works fine with SAME_NONZERO_PATTERN, but it halts there if I
switch to DIFFERENT_NONZERO_PATTERN ( with np>1).

3 spooles works fine with both SAME and DIFFERENT nonzero pattern.

Can you give me some hints why superlu_dist fails on my matrix with
SAME_NONZERO_PATTERN? I tried both superlu_dist v2.4 and v2.5 ( latest
one). Thanks.

Best,
Xiangdong



On Wed, Jun 22, 2011 at 2:06 PM, Hong Zhang <hzhang at mcs.anl.gov> wrote:
> Xiangdong :
>
> Does it hangs inside superlu_dist?
> Try runtime option '-mat_superlu_dist_equil NO'
>
> If you can send us a stand-alone short code or your matrix in petsc
> binary format that repeats this behavior, then we can investigate it.
> Likely memory problem.
>
> Hong
>
>
>> Hello everyone,
>>
>> I had some problem in using superlu_dist with same_nonzero_pattern.
>> Sometimes superlu_dist solver halts there and never finishes. However,
>> when I switched to different_nonzero_pattern or other solvers, the
>> program works nicely.  Ding had reported this problem a few months
>> ago:
>>  http://lists.mcs.anl.gov/pipermail/petsc-users/2011-January/007623.html
>>
>> Following Barry's suggestion, I checked that the nonzero pattern of my
>> matrix is still the same via
>>  ierr=MatSetOption(M, MAT_NEW_NONZERO_LOCATION_ERR,PETSC_TRUE); CHKERRQ(ierr);
>>
>> I tried two other options:
>>
>> 1 First install the latest superlu_dist (v2.5), then compile petsc
>> with this new superlu_dist package. However, the problem is still
>> there, and the performance is even worse ( comparing to the option
>> --download-superlu_dist=yes (v2.4)).
>>
>> 2 I compiled petsc-dev with --download-superlu_dist. However, I got
>> some errors when compiling my program with petsc-dev. It said that
>>
>> ResonatorOpt.c: In function ‘main’:
>> ResonatorOpt.c:154: error: ‘MAT_SOLVER_SUPERLU_DIST’ undeclared (first
>> use in this function)
>> ResonatorOpt.c:154: error: (Each undeclared identifier is reported only once
>> ResonatorOpt.c:154: error: for each function it appears in.)
>>
>> Besides superlu_dist, MAT_SOLVER_PASTIX and MAT_SOLVER_PASTIX are
>> undeclared either. Am I missing some header files? I used the same
>> procedure as I complied regular petsc, which had no such problems.  (I
>> tried to attach the configure log in a previous mail, but it is
>> bounced back.)
>>
>> Can you give me some suggestions on using superlu_dist with
>> same_nonzero_pattern? Thank you.
>>
>> Best,
>> Xiangdong
>>
>


More information about the petsc-users mailing list