<div dir="ltr">Hello Hong,<div><br></div><div>Thank you so much.</div><div><br></div><div>I was using 24 processors currently and may considering using more. For this application, the fewer processors, the more efficient bjacobi will be, Is that right? </div>
<div><br></div><div>As you suggest, these days I will start trying these combinations: <span style="font-family:arial,sans-serif;font-size:13px">minres</span>/icc or <span style="font-family:arial,sans-serif;font-size:13px">minres</span>/asm/icc or minres/icc/others ...</div>
<div><br></div><div>What is more, how about jacobi? the most simplest preconditioner? It gives me the best performance actually when I was trying to use JD solver before.</div><div><br></div><div><span style="font-family:arial,sans-serif;font-size:13px">petsc_mass20.dat and petsc_stiff20.dat are the most challenging one for now. I have another set of matrices which have very similar eigenvalues distribution with ***20.dat. I think they should work under the same conditions. It will be fantastic, if you will have time to work out a better preconditioner for them. I deeply appreciate your kind help.</span><br>
</div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Best regards,</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Jifeng Zhao</span></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 5, 2014 at 11:15 AM, <a href="mailto:hong@aspiritech.org">hong@aspiritech.org</a> <span dir="ltr"><<a href="mailto:hong@aspiritech.org" target="_blank">hong@aspiritech.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">jifeng :<br>
<div class=""><br>
> "The matrices come from Jifeng Zhao, Northwestern University,<br>
> <a href="mailto:zhaojf06@gmail.com">zhaojf06@gmail.com</a>. The stiffness and mass matrices arise from a extended<br>
> finite element model to predict phononic band gap of a three-dimensional<br>
> two-phase composite with periodic SCC crystal structure. In addition,<br>
> periodic boundary conditions are applied on the primary unit cell by<br>
> employing Bloch wave analysis."<br>
<br>
</div>Thanks. I used your description, but removed your email address:<br>
=============================<br>
The matrices come from Jifeng Zhao, Northwestern University. The<br>
<div class="">stiffness and mass matrices arise from a extended finite element model<br>
to predict phononic band gap of a three-dimensional two-phase<br>
composite with periodic SCC crystal structure. In addition, periodic<br>
boundary conditions are applied on the primary unit cell by employing<br>
Bloch wave analysis.<br>
<br>
</div>Compute first 40 eigensolutions<br>
K x = lamda M x<br>
K and M are real and symmetric (Aug. 2014)<br>
-----------------------------------------------<br>
petsc_stiff20.dat:<br>
  type: seqaij<br>
  rows=1591812, cols=1591812, total: nonzeros=6.93869e+07<br>
petsc_mass20.dat<br>
  type: seqaij<br>
  rows=1591812, cols=1591812, total: nonzeros=4.09661e+07,<br>
---------------------------------<br>
petsc_stiff33.dat:<br>
  type: seqaij<br>
  rows=1591812, cols=1591812, total: nonzeros=7.05468e+07,<br>
petsc_mass33.dat:<br>
  type: seqaij<br>
  rows=1591812, cols=1591812, total: nonzeros=4.13649e+07<br>
==============================<br>
<br>
As you see, K and M have different data structures (different non<br>
zeros) which makes<br>
MatAXPY() less efficient than the same data structure. You may create<br>
K and M with same data structure, i.e., inserting additional zeros to<br>
K or M. Then tells slepc that your matrices K and M have same non-zero<br>
structure.<br>
<div class="">><br>
> ----------------------------<br>
><br>
> In addition, do want to let you know that I tried the runtime command you<br>
> gave me using PETSC/3.4.4 (3.5 is not ready yet for me), it failed to<br>
> converge.<br>
><br>
> PETSC ERROR: !<br>
> PETSC ERROR: KSP did not converge (reason=DIVERGED_ITS)!<br>
<br>
</div>I used minres/bjacobi/ icc with np=32 CPUs and got very slow<br>
convergence. How many CPUs do you use?<br>
When I run sequential minres/ icc, I got better convergence<br>
(use '-st_ksp_monitor to monitor the convergence). If you use more<br>
than 32 CPUs, then your bjacobi has more blocks than 32, thus a weaker<br>
preconditioner than the one I used. Finding an efficient<br>
preconditioner seems the key for your application.<br>
<div class="">><br>
> I also tried to different preconditioners:<br>
> minres/bjacobi/ icc<br>
> minres/bjacobi/ asm<br>
<br>
</div>This should be minres/asm/icc<br>
Use  '-st_ksp_monitor', do you see improvement of asm over bjacobi?<br>
You may also increase levels of icc.<br>
<br>
> minres/bjacobi/ gamg<br>
Do not do this.<br>
<div class="">><br>
> All of them failed by the same error. I can try to increase the maximum<br>
> iteration number to remove this error message, but it will converge very<br>
> slow for sure.<br>
><br>
> Since I am already using -aij command, I am not sure if these slow<br>
> convergence performance will disappear if I upgrade to PETSC/3.5. Is there<br>
> anything else I can try on?<br>
<br>
</div>The bug in sbaij format is irrelevant to the convergence problems. I<br>
would suggest staying with aij format until we patch the petsc-3.5.<br>
<br>
When I find time, I may help you explore better preconditioners. Which<br>
matrices are you interested,<br>
petsc_mass20.dat and petsc_stiff20.dat, or something more challenging?<br>
<br>
I would suggest you sending email to petsc-maint instead of<br>
petsc-users. I guess Jose also on the mailing list of petsc-maint.<br>
<span class="HOEnZb"><font color="#888888"><br>
Hong<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
> On Mon, Aug 4, 2014 at 11:18 PM, <a href="mailto:hong@aspiritech.org">hong@aspiritech.org</a> <<a href="mailto:hong@aspiritech.org">hong@aspiritech.org</a>><br>
> wrote:<br>
>><br>
>> jifeng :<br>
>> ><br>
>> > I just want to check with you if there is any updates on why the code<br>
>> > crashes under -sbaij?<br>
>><br>
>> It is a bug in petsc. I've fixed it in the brach hzhang/mataxpy-bugfix:<br>
>> <a href="https://bitbucket.org/petsc/petsc/branch/hzhang/mataxpy-bugfix" target="_blank">https://bitbucket.org/petsc/petsc/branch/hzhang/mataxpy-bugfix</a><br>
>><br>
>> which will be merged to 'next' branch for tests, then patch to petsc-3.5.<br>
>> You can use this branch if you like.<br>
>><br>
>> Again, I like to add your matrices into petsc matrix collection.<br>
>> Can you give me a short sentence describing your matrices, e.g.,<br>
>> "The following matrices come from Rick Dean, Arco E&P Technology,<br>
>> <a href="mailto:rhd@arco.com">rhd@arco.com</a>.  They arise from multiphase flow modeling of oil<br>
>> reservoirs,..."<br>
>><br>
>> Thanks,<br>
>> Hong<br>
>><br>
>><br>
>> ><br>
>> > At the meanwhile, unfortunately PETSC-3.5 hasn't been installed on my<br>
>> > server<br>
>> > due to some technical problems. I hope technicians can get it done as<br>
>> > soon<br>
>> > as possible. I will update you when I have any new results. Thanks so<br>
>> > much.<br>
>> ><br>
>> > Best regards,<br>
>> > Jifeng<br>
>> ><br>
>> ><br>
>> > On Wed, Jul 30, 2014 at 2:53 PM, jifeng zhao<br>
>> > <<a href="mailto:jifengzhao2015@u.northwestern.edu">jifengzhao2015@u.northwestern.edu</a>> wrote:<br>
>> >><br>
>> >> Hello Hong,<br>
>> >><br>
>> >> Thanks a lot. The result makes sense, but I think I will need higher<br>
>> >> accuracy (smaller tolerance). I will take a try myself at the<br>
>> >> meanwhile.<br>
>> >><br>
>> >> Best regards,<br>
>> >> Jifeng Zhao<br>
>> >><br>
>> >><br>
>> >> On Wed, Jul 30, 2014 at 1:16 PM, <a href="mailto:hong@aspiritech.org">hong@aspiritech.org</a><br>
>> >> <<a href="mailto:hong@aspiritech.org">hong@aspiritech.org</a>><br>
>> >> wrote:<br>
>> >>><br>
>> >>> Jifeng,<br>
>> >>> Using petsc-3.5 and slepc-3.5 (maint branch), I tested your matrices<br>
>> >>><br>
>> >>> mpiexec -n 32 ./ex7 -f1 $data/zhao/petsc_stiff20.dat -f2<br>
>> >>> $data/zhao/petsc_mass20.dat -mat_view ascii::ascii_info -mat_type aij<br>
>> >>> -eps_gen_hermitian -eps_type krylovschur -eps_target -0.1 -st_ksp_type<br>
>> >>> minres -st_pc_type bjacobi -st_sub_pc_type icc -st_ksp_rtol 1.e-2<br>
>> >>> -eps_tol 1.e-2 -eps_nev 40 -st_type sinvert -log_summary |& tee<br>
>> >>> log.mat20.ex7.np32.tol-2<br>
>> >>><br>
>> >>> The output is attached.<br>
>> >>><br>
>> >>> When using '-mat_type sbaij', I got same error as reported, which<br>
>> >>> might be a bug in our libraries. I'll investigate it.<br>
>> >>> Switching to '-mat_type aij' works (I'm not sure if the computed<br>
>> >>> eigenvalues are meaningful though), but the linear solver<br>
>> >>> minres/bjacobi/icc converges very slow, takes around 500 - 1000 linear<br>
>> >>> iterations for each eps iteration. You may experiment with stronger<br>
>> >>> pc_type, e.g., '-pc_type asm' etc.<br>
>> >>><br>
>> >>> I'll let you know why sbaij crashes.<br>
>> >>><br>
>> >>> Hong<br>
>> >>><br>
>> >>> On Mon, Jul 28, 2014 at 4:52 PM, Jose E. Roman <<a href="mailto:jroman@dsic.upv.es">jroman@dsic.upv.es</a>><br>
>> >>> wrote:<br>
>> >>> ><br>
>> >>> > El 28/07/2014, a las 23:48, jifeng zhao escribió:<br>
>> >>> ><br>
>> >>> >> Hi Barry,<br>
>> >>> >><br>
>> >>> >> Thanks for the reply. I see. I am still testing it and looking for<br>
>> >>> >> the<br>
>> >>> >> bug.<br>
>> >>> >><br>
>> >>> >> It is pretty weird that the error appears, since the code I am<br>
>> >>> >> running<br>
>> >>> >> is ex7 and I didn't change anything.<br>
>> >>> >><br>
>> >>> >> My matrices are assembled in binary files separately. As I<br>
>> >>> >> explained<br>
>> >>> >> earlier, I have a series of matrices to solve, each of them have<br>
>> >>> >> the same<br>
>> >>> >> patterns but with different values. The way I assembly the matrix<br>
>> >>> >> has proven<br>
>> >>> >> to be correct for all the other cases. Only for this one, when the<br>
>> >>> >> matrix<br>
>> >>> >> has an zero eigenvalue, ex7 failed to solve it.<br>
>> >>> >><br>
>> >>> >> In fact, I don't understand why this "Out of range" error could<br>
>> >>> >> possibly appear? 1. my matrices have the correct parrellel lay up.<br>
>> >>> >> 2. In<br>
>> >>> >> ex7, I am not explicitly accessing to any elements at all! All I<br>
>> >>> >> did is<br>
>> >>> >> EPSSolve();<br>
>> >>> >><br>
>> >>> >> Any ideas?<br>
>> >>> >><br>
>> >>> >> Best regards,<br>
>> >>> >> Jifeng Zhao<br>
>> >>> >><br>
>> >>> ><br>
>> >>> > Tomorrow we will release slepc-3.5. I would suggest trying with the<br>
>> >>> > new<br>
>> >>> > version. If the problem persist we can help to track down the<br>
>> >>> > problem.<br>
>> >>> ><br>
>> >>> > Jose<br>
>> >>> ><br>
>> >><br>
>> >><br>
>> >><br>
>> >><br>
>> >> --<br>
>> >> Jifeng Zhao<br>
>> >> PhD candidate at Northwestern University, US<br>
>> >> Theoretical and Applied Mechanics Program<br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> > --<br>
>> > Jifeng Zhao<br>
>> > PhD candidate at Northwestern University, US<br>
>> > Theoretical and Applied Mechanics Program<br>
><br>
><br>
><br>
><br>
> --<br>
> Jifeng Zhao<br>
> PhD candidate at Northwestern University, US<br>
> Theoretical and Applied Mechanics Program<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Jifeng Zhao<div>PhD candidate at Northwestern University, US</div><div>Theoretical and Applied Mechanics Program</div></div>
</div></div>