Problem in convergence after upgrade to petsc 3.0.0

Randall Mackie rlmackie862 at gmail.com
Fri Jan 30 23:19:08 CST 2009


	Barry,

	Some further hints:

	BCGSL doesn't give the same results	
	BCGS does better, but not exactly the same results	
	BICG gives same results
	GMRES gives same results
	IBCGS under 3.0.0-p2 bombs out with a fatal error in MPI_Allreduce.

	Randy


Randall Mackie wrote:
>     Barry,
> 
>     I've run ex10 from 2.3.3-p11 and from 3.0.0-p2 on the same binaryoutput
> using the same parameters input to ex10 (ksp=bcgsl and pc=bjacobi, 
> sub_pc=ilu)
> and the convergence is different. Note, this is the binaryoutput from the
> v 2.3.3-p11.
> 
> Here is the convergence for ex10 from 2.3.3-p11:
> 
> [rmackie ~/SPARSE/PETsc/petsc-2.3.3-p11/src/ksp/ksp/examples/tutorials] 
> ./cmd_test
>   0 KSP preconditioned resid norm 2.434324107505e-05 true resid norm 
> 3.334159901684e-02 ||Ae||/||Ax|| 1.000000000000e+00
>   2 KSP preconditioned resid norm 4.170258940641e-07 true resid norm 
> 1.624814448703e+04 ||Ae||/||Ax|| 4.873234927583e+05
>   4 KSP preconditioned resid norm 8.984963207977e-08 true resid norm 
> 2.848180153976e+04 ||Ae||/||Ax|| 8.542422193181e+05
>   6 KSP preconditioned resid norm 3.526062648105e-08 true resid norm 
> 1.884591980560e+04 ||Ae||/||Ax|| 5.652374319564e+05
>   8 KSP preconditioned resid norm 1.241153849592e-08 true resid norm 
> 1.045401827970e+04 ||Ae||/||Ax|| 3.135427990247e+05
>  10 KSP preconditioned resid norm 5.141701606491e-09 true resid norm 
> 5.371087738119e+03 ||Ae||/||Ax|| 1.610926859088e+05
>  12 KSP preconditioned resid norm 2.591522726108e-09 true resid norm 
> 3.519633363751e+03 ||Ae||/||Ax|| 1.055628244456e+05
>  14 KSP preconditioned resid norm 1.452300847705e-09 true resid norm 
> 2.509415501645e+03 ||Ae||/||Ax|| 7.526380184636e+04
>  16 KSP preconditioned resid norm 8.978785776773e-10 true resid norm 
> 1.872610647707e+03 ||Ae||/||Ax|| 5.616439231845e+04
>  18 KSP preconditioned resid norm 5.743601707920e-10 true resid norm 
> 1.266421550645e+03 ||Ae||/||Ax|| 3.798322779917e+04
>  20 KSP preconditioned resid norm 3.678705188041e-10 true resid norm 
> 7.536064149571e+02 ||Ae||/||Ax|| 2.260258767363e+04
>  22 KSP preconditioned resid norm 2.687340247327e-10 true resid norm 
> 5.533061905955e+02 ||Ae||/||Ax|| 1.659507062981e+04
>  24 KSP preconditioned resid norm 2.142070779181e-10 true resid norm 
> 4.684485692902e+02 ||Ae||/||Ax|| 1.404997309978e+04
>  26 KSP preconditioned resid norm 1.927583902818e-10 true resid norm 
> 6.146993326148e+02 ||Ae||/||Ax|| 1.843640829296e+04
>  28 KSP preconditioned resid norm 1.330050553611e-10 true resid norm 
> 4.217422387701e+02 ||Ae||/||Ax|| 1.264913055181e+04
>  30 KSP preconditioned resid norm 1.125778226987e-10 true resid norm 
> 3.058702983977e+02 ||Ae||/||Ax|| 9.173834111652e+03
>  32 KSP preconditioned resid norm 8.786382414490e-11 true resid norm 
> 2.001904013306e+02 ||Ae||/||Ax|| 6.004223169665e+03
>  34 KSP preconditioned resid norm 6.396029789854e-11 true resid norm 
> 1.761414838880e+02 ||Ae||/||Ax|| 5.282934504701e+03
>  36 KSP preconditioned resid norm 5.462116905743e-11 true resid norm 
> 1.540860953921e+02 ||Ae||/||Ax|| 4.621436881724e+03
>  38 KSP preconditioned resid norm 5.410616131680e-11 true resid norm 
> 1.910613970561e+02 ||Ae||/||Ax|| 5.730420936308e+03
>  40 KSP preconditioned resid norm 7.946054076400e-11 true resid norm 
> 2.743761797072e+02 ||Ae||/||Ax|| 8.229244781230e+03
>  42 KSP preconditioned resid norm 3.519925335531e-11 true resid norm 
> 1.022381658728e+02 ||Ae||/||Ax|| 3.066384603244e+03
>  42 KSP preconditioned resid norm 3.519925335531e-11 true resid norm 
> 1.022381658728e+02 ||Ae||/||Ax|| 3.066384603244e+03
> Number of iterations =  42
> 
> 
> Here is the convergence for ex10 from 3.0.0-p2:
> 
> rmackie ~/SPARSE/PETsc/petsc-3.0.0-p2/src/ksp/ksp/examples/tutorials] 
> ./cmd_test
>   0 KSP preconditioned resid norm 2.434324107505e-05 true resid norm 
> 3.334159901684e-02 ||Ae||/||Ax|| 1.000000000000e+00
>   2 KSP preconditioned resid norm 4.798562862178e-07 true resid norm 
> 1.642225014976e+04 ||Ae||/||Ax|| 4.925453677690e+05
>   4 KSP preconditioned resid norm 1.587355624039e-07 true resid norm 
> 3.502938376404e+04 ||Ae||/||Ax|| 1.050620989904e+06
>   6 KSP preconditioned resid norm 8.015528577103e-08 true resid norm 
> 2.536595627800e+04 ||Ae||/||Ax|| 7.607900348506e+05
>   8 KSP preconditioned resid norm 3.039306325625e-08 true resid norm 
> 1.253662335500e+04 ||Ae||/||Ax|| 3.760054623856e+05
>  10 KSP preconditioned resid norm 1.729327127129e-08 true resid norm 
> 8.080934369743e+03 ||Ae||/||Ax|| 2.423679309940e+05
>  12 KSP preconditioned resid norm 1.039787850500e-08 true resid norm 
> 4.777791224801e+03 ||Ae||/||Ax|| 1.432982030162e+05
>  14 KSP preconditioned resid norm 5.025780191774e-09 true resid norm 
> 3.147651686153e+03 ||Ae||/||Ax|| 9.440614064618e+04
>  16 KSP preconditioned resid norm 3.311781967950e-09 true resid norm 
> 2.688053658600e+03 ||Ae||/||Ax|| 8.062161797467e+04
>  18 KSP preconditioned resid norm 5.621276662229e-09 true resid norm 
> 3.098810918425e+03 ||Ae||/||Ax|| 9.294128085637e+04
>  20 KSP preconditioned resid norm 1.184533040734e-08 true resid norm 
> 5.469874887175e+03 ||Ae||/||Ax|| 1.640555656737e+05
>  22 KSP preconditioned resid norm 2.494642590524e-08 true resid norm 
> 1.003335643955e+04 ||Ae||/||Ax|| 3.009260723962e+05
>  24 KSP preconditioned resid norm 5.136091311727e-08 true resid norm 
> 1.828432513826e+04 ||Ae||/||Ax|| 5.483937686680e+05
>  26 KSP preconditioned resid norm 9.627430082715e-08 true resid norm 
> 1.175348501769e+04 ||Ae||/||Ax|| 3.525171366783e+05
>  28 KSP preconditioned resid norm 6.409712928943e-08 true resid norm 
> 5.524687582334e+03 ||Ae||/||Ax|| 1.656995388716e+05
>  30 KSP preconditioned resid norm 6.013091685526e-07 true resid norm 
> 1.371019320496e+04 ||Ae||/||Ax|| 4.112038297274e+05
>  32 KSP preconditioned resid norm 7.026562454712e-07 true resid norm 
> 1.053982255306e+04 ||Ae||/||Ax|| 3.161162890759e+05
>  34 KSP preconditioned resid norm 4.086784421188e-07 true resid norm 
> 5.503180350963e+03 ||Ae||/||Ax|| 1.650544818856e+05
>  36 KSP preconditioned resid norm 1.651444280250e-06 true resid norm 
> 1.984011183420e+04 ||Ae||/||Ax|| 5.950557987388e+05
>  38 KSP preconditioned resid norm 1.058319572456e-06 true resid norm 
> 1.403784173466e+04 ||Ae||/||Ax|| 4.210308488073e+05
>  40 KSP preconditioned resid norm 4.341084013969e-05 true resid norm 
> 3.837773616917e+05 ||Ae||/||Ax|| 1.151046659453e+07
>  42 KSP preconditioned resid norm 4.190225826231e-07 true resid norm 
> 6.768382935039e+03 ||Ae||/||Ax|| 2.030011497535e+05
>  44 KSP preconditioned resid norm 1.054511038261e-06 true resid norm 
> 4.966771429542e+03 ||Ae||/||Ax|| 1.489662036615e+05
>  46 KSP preconditioned resid norm 5.351004248086e-07 true resid norm 
> 5.112611747101e+03 ||Ae||/||Ax|| 1.533403285343e+05
>  48 KSP preconditioned resid norm 7.104477128923e-07 true resid norm 
> 5.478002736962e+03 ||Ae||/||Ax|| 1.642993407183e+05
>  50 KSP preconditioned resid norm 1.162050733932e-06 true resid norm 
> 5.395393687747e+03 ||Ae||/||Ax|| 1.618216836278e+05
> 
> 
> When I output binaryoutput using my code compiled under 3.0.0-p2 and run 
> ex10, I get exactly
> the same output as above. In other words, the matrix/rhs are exactly the 
> same (as they
> should be since I didn't change anything), and something about 3.0.0-p2 
> using BCGSL and ILU
> is not working correctly.
> 
> I changed ksptype to gmres, and I get the same convergence for both 
> 2.3.3-p11 and for
> 3.0.0-p2. Therefore, I conclude that bcgsl (PCBCGSL) is not working 
> correctly under 3.0.0-p2.
> 
> Randy
> 
> 
> Barry Smith wrote:
>>
>>   Run the old code with -ksp_view_binary this will create a file 
>> called binaryoutput; you can then
>> run src/ksp/ksp/examples/tutorials/ex10.c using that input file. Use 
>> the ex10 from the old version
>> of PETSc and then the ex10 from the new version. Do they have they 
>> same convergence?
>> Now run the new code (that is build your code with petsc-3.0.) with 
>> -ksp_view_binary and run that
>> binaryoutput file with the old and new ex10 to see what happens.
>>
>>    Basically there are two possible changes with the change in the 
>> version:
>> 1) the matrix/right hand side has changed or
>> 2) the solver has changed to behave differently.
>>
>>    By running the four cases you can start to get a handle on what has 
>> actually changed, this will
>> lead you to what needs to be investigated next.
>>
>>    Barry
>>
>> On Jan 30, 2009, at 8:01 PM, Randall Mackie wrote:
>>
>>> I just downloaded and compiled Petsc 3.0.0-p2, and after making some 
>>> changes
>>> in my code to specify the correct location of the include files, finally
>>> got everything to compile okay.
>>>
>>> Now, I'm trying to run my test problem, and it's not converging. When 
>>> I say
>>> not converging, the first line (with ksp_monitor_true_residual) shows 
>>> that
>>> the true and preconditioned residuals are the same as before, but 
>>> immediately
>>> thereafter, the preconditioned residual fails to go below 1e-8 
>>> whereas before
>>> it quickly went down to 1e-15.
>>>
>>> The options in my command file are:
>>>
>>> -ksp_type bcgsl
>>> -pc_type bjacobi
>>> -sub_pc_type ilu
>>> -sub_pc_factor_levels 3
>>> -sub_pc_factor_fill 6
>>>
>>>
>>> The only thing I see in the Change notes are that the ILU defaults to 
>>> shifting
>>> so that it's p.d. but I don't see an easy way to turn this off by the 
>>> command
>>> line to see if that's the problem. I tried to do it in my program, 
>>> but it's unclear
>>> if I did that correctly.
>>>
>>> Any suggestions?
>>>
>>> Thanks, Randy
>>


More information about the petsc-users mailing list