[petsc-users] GAMG speed
Michele Rosso
mrosso at uci.edu
Tue Aug 13 20:25:56 CDT 2013
Matt,
thank you! I will try to reduce the number of levels and see how it goes.
I asked about the speed since CG + Block Jacobi with ICC in each block
runs faster then CG + MG, so I thought I was missing something.
Could you please tell me how to get rid of Chebichev?
Best,
Michele
On 08/13/2013 05:51 M, Matthew Knepley wrote:
> On Tue, Aug 13, 2013 at 7:05 PM, Michele Rosso <mrosso at uci.edu
> <mailto:mrosso at uci.edu>> wrote:
>
> Hi Matt,
>
> I attached the output of the commands you suggested.
> The options I used are:
>
> -log_summary -ksp_monitor -ksp_view -ksp_converged_reason -pc_type
> mg -pc_mg_galerkin -pc_mg_levels 5 -options_left
>
>
> The convergence is great. I notice that your coarse solve takes no
> time. You could probably use fewer levels for
> this problem. For this problem there is no easy things left I think.
> We are currently debating how you can squeeze
> something extra out of the smoother. Here you could probably get rid
> of Chebychev and use only SOR.
>
> Matt
>
> and here are the lines of codes where I setup the solution process:
>
> call DMDACreate3d( PETSC_COMM_WORLD
> , &
> & DMDA_BOUNDARY_PERIODIC ,
> DMDA_BOUNDARY_PERIODIC, &
> & DMDA_BOUNDARY_PERIODIC ,
> DMDA_STENCIL_STAR, &
> & N_Z , N_Y , N_X , N_B3 , N_B2 , 1_ip, 1_ip
> , 1_ip , &
> & NNZ ,NNY , NNX, da , ierr)
>
>
> ! Create Global Vectors
> call DMCreateGlobalVector(da,b,ierr)
> call VecDuplicate(b,x,ierr)
>
> ! Set initial guess for first use of the module to 0
> call VecSet(x,0.0_rp,ierr)
>
> ! Create matrix
> call DMCreateMatrix(da,MATAIJ,A,ierr)
>
> ! Create solver
> call KSPCreate(PETSC_COMM_WORLD,ksp,ierr)
> call KSPSetDM(ksp,da,ierr)
> call KSPSetDMActive(ksp,PETSC_FALSE,ierr)
> call KSPSetOperators(ksp,A,A,SAME_NONZERO_PATTERN,ierr)
> call KSPSetType(ksp,KSPCG,ierr)
> call KSPSetNormType(ksp,KSP_NORM_UNPRECONDITIONED,ierr)
> call KSPSetInitialGuessNonzero(ksp,PETSC_TRUE,ierr)
> call KSPSetTolerances(ksp, tol ,PETSC_DEFAULT_DOUBLE_PRECISION,&
> & PETSC_DEFAULT_DOUBLE_PRECISION,PETSC_DEFAULT_INTEGER,ierr)
>
> ! Nullspace removal
> call MatNullSpaceCreate(
> PETSC_COMM_WORLD,PETSC_TRUE,PETSC_NULL_INTEGER,&
> & PETSC_NULL_INTEGER,nullspace,ierr)
> call KSPSetNullspace(ksp,nullspace,ierr)
> call MatNullSpaceDestroy(nullspace,ierr)
>
> ! To allow using option from command line
> call KSPSetFromOptions(ksp,ierr)
>
>
> Hope I did not omit anything useful.
> Thank you for your time.
>
> Best,
> Michele
>
>
>
>
> On 08/13/2013 04:26 PM, Matthew Knepley wrote:
>> On Tue, Aug 13, 2013 at 6:09 PM, Michele Rosso <mrosso at uci.edu
>> <mailto:mrosso at uci.edu>> wrote:
>>
>> Hi Karli,
>>
>> thank you for your hint: now it works.
>> Now I would like to speed up the solution: I was counting on
>> increasing the number of levels/the number of processors
>> used, but now I see I cannot do that.
>> Do you have any hint to achieve better speed?
>> Thanks!
>>
>>
>> "Better speed" is not very helpful for us, and thus we cannot
>> offer much help. You could
>>
>> 1) Send the output of -log_summary -ksp_monitor -ksp_view
>>
>> 2) Describe the operator succintly
>>
>> Matt
>>
>> Best,
>> Michele
>>>>>>>>>>>>>>>>>>
>
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130813/72c8eddf/attachment.html>
More information about the petsc-users
mailing list