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 >> >
