Always send -log_summary when asking about performance.<br><br><div class="gmail_quote">On Mon, Jun 4, 2012 at 4:11 PM, TAY wee-beng <span dir="ltr"><<a href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I tried using PETSc multigrid on my 2D CFD code. I had converted ksp eg. ex29 to Fortran and then added into my code to solve the Poisson equation.<br>
<br>
The main subroutines are:<br>
<br>
call KSPCreate(PETSC_COMM_WORLD,<u></u>ksp,ierr)<br>
<br>
call DMDACreate2d(PETSC_COMM_WORLD,<u></u>DMDA_BOUNDARY_NONE,DMDA_<u></u>BOUNDARY_NONE,DMDA_STENCIL_<u></u>STAR,i3,i3,PETSC_DECIDE,PETSC_<u></u>DECIDE,i1,i1,PETSC_NULL_<u></u>INTEGER,PETSC_NULL_INTEGER,da,<u></u>ierr)<br>

call DMSetFunction(da,ComputeRHS,<u></u>ierr)<br>
call DMSetJacobian(da,<u></u>ComputeMatrix,ierr)<br>
call KSPSetDM(ksp,da,ierr)<br>
<br>
call KSPSetFromOptions(ksp,ierr)<br>
call KSPSetUp(ksp,ierr)<br>
call KSPSolve(ksp,PETSC_NULL_<u></u>OBJECT,PETSC_NULL_OBJECT,ierr)<br>
call KSPGetSolution(ksp,x,ierr)<br>
call VecView(x,PETSC_VIEWER_STDOUT_<u></u>WORLD,ierr)<br>
call KSPDestroy(ksp,ierr)<br>
call DMDestroy(da,ierr)<br>
call PetscFinalize(ierr)<br>
<br>
<br>
Since the LHS matrix doesn't change, I only set up at the 1st time step, thereafter I only called ComputeRHS every time step.<br>
<br>
I was using HYPRE's geometric multigrid and the speed was much faster.<br>
<br>
What other options can I tweak to improve the speed? Or should I call the subroutines above at every timestep?<br>
<br>
Thanks!<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
-- <br>
Yours sincerely,<br>
<br>
TAY wee-beng<br>
<br>
</font></span></blockquote></div><br>