John, did this get resolved?
Mark

On Mar 15, 2012, at 4:24 PM, John Mousel wrote:

> Mark,
> 
> Running without the options you mentioned before leads to slightly worse 
> performance (175 iterations). 
> I have not been able to get run coarse grid solve to work with LU while 
> running ML. It keeps experiencing a zero pivot, and all the combinations of 
> shifting i've tried haven't lead me anywhere, hence the SOR on the course 
> grid. Also, the ML manual suggests limiting the number of levels to 3 or 4 
> and performing a few sweeps of an iterative method as opposed to a direct 
> solve. 
> 
> John
> 
> On Thu, Mar 15, 2012 at 12:04 PM, Mark F. Adams <mark.adams at columbia.edu> 
> wrote:
> You also want:  -pc_gamg_agg_nsmooths 1
> 
> You are running plain aggregation.  If it is Poisson then smoothing is good.
> 
> Is this problem singular?  Can you try running ML with these parameters and 
> see if its performance degrades?  The ML implementation uses the PETSC 
> infrastructure and uses a very similar algorithm to GAMG-SA.  We should be 
> able to get these two to match pretty well.
> 
> Mark
> 
> 
> On Mar 15, 2012, at 12:21 PM, John Mousel wrote:
> 
>> Mark,
>> 
>> I ran with those options removed (see the run options listed below). Things 
>> actually got slightly worse. Now it's up to 142 iterations. I have attached 
>> the ksp_view output.
>> 
>> -ksp_type bcgsl -pc_type gamg -pc_gamg_sym_graph -ksp_diagonal_scale 
>> -ksp_diagonal_scale_fix -mg_levels_ksp_type richardson -mg_levels_pc_type 
>> sor -pc_gamg_verbose 1 
>> 
>> 
>> John
>> 
>> 
>> On Thu, Mar 15, 2012 at 10:55 AM, Mark F. Adams <mark.adams at columbia.edu> 
>> wrote:
>> John, can you run again with:  -pc_gamg_verbose 1
>> 
>> And I would not use: -pc_mg_levels 4 -mg_coarse_ksp_type preonly 
>> -mg_coarse_pc_type sor -mg_coarse_pc_sor_its 8
>> 
>> 1) I think -mg_coarse_ksp_type preonly and -mg_coarse_pc_sor_its 8 do not do 
>> what you think.  I think this is the same as 1 iteration.  I think you want 
>> 'richardson' not 'preonly'.
>> 
>> 2) Why are you using sor as the coarse solver?  If your problem is singular 
>> then you want to use as many levels as possible to get the coarse grid to be 
>> tiny.  I'm pretty sure HYPRE ignores the coarse solver parameters.  But ML 
>> uses them and it is converging well.
>> 
>> 3) I would not specify the number of levels.  GAMG, and I think the rest, 
>> have internal logic for stopping a the right level.  If the coarse level is 
>> large and you use just 8 iterations of sor then convergence will suffer.
>> 
>> Mark
>> 
>> On Mar 15, 2012, at 11:13 AM, John Mousel wrote:
>> 
>>> Mark,
>>> 
>>> The changes pulled through this morning. I've run it with the options
>>> 
>>> -ksp_type bcgsl -pc_type gamg -pc_gamg_sym_graph -ksp_diagonal_scale 
>>> -ksp_diagonal_scale_fix -pc_mg_levels 4 -mg_levels_ksp_type richardson 
>>> -mg_levels_pc_type sor -mg_coarse_ksp_type preonly -mg_coarse_pc_type sor 
>>> -mg_coarse_pc_sor_its 8
>>> 
>>> and it converges in the true residual, but it's not converging as fast as 
>>> anticpated. The matrix arises from a non-symmetric discretization of the 
>>> Poisson equation. The solve takes GAMG 114 iterations, whereas ML takes 24 
>>> iterations, BoomerAMG takes 22 iterations, and -ksp_type bcgsl -pc_type 
>>> bjacobi -sub_pc_type ilu -sub_pc_factor_levels 4 takes around 170. I've 
>>> attached the -ksp_view results for ML,GAMG, and HYPRE. I've attempted to 
>>> make all the options the same on all levels for ML and GAMG. 
>>> 
>>> Any thoughts?
>>> 
>>> John
>>> 
>>> 
>>> On Wed, Mar 14, 2012 at 6:04 PM, Mark F. Adams <mark.adams at columbia.edu> 
>>> wrote:
>>> Humm, I see it with hg view (appended).  
>>> 
>>> Satish, my main repo looks hosed.  I see this:
>>> 
>>> ~/Codes/petsc-dev>hg update
>>> abort: crosses branches (merge branches or use --clean to discard changes)
>>> ~/Codes/petsc-dev>hg merge
>>> abort: branch 'default' has 3 heads - please merge with an explicit rev
>>> (run 'hg heads .' to see heads)
>>> ~/Codes/petsc-dev>hg heads
>>> changeset:   22496:8e2a98268179
>>> tag:         tip
>>> user:        Barry Smith <bsmith at mcs.anl.gov>
>>> date:        Wed Mar 14 16:42:25 2012 -0500
>>> files:       src/vec/is/interface/f90-custom/zindexf90.c 
>>> src/vec/vec/interface/f90-custom/zvectorf90.c
>>> description:
>>> undoing manually changes I put in because Satish had a better fix
>>> 
>>> 
>>> changeset:   22492:bda4df63072d
>>> user:        Mark F. Adams <mark.adams at columbia.edu>
>>> date:        Wed Mar 14 17:39:52 2012 -0400
>>> files:       src/ksp/pc/impls/gamg/tools.c
>>> description:
>>> fix for unsymmetric matrices.
>>> 
>>> 
>>> changeset:   22469:b063baf366e4
>>> user:        Mark F. Adams <mark.adams at columbia.edu>
>>> date:        Wed Mar 14 14:22:28 2012 -0400
>>> files:       src/ksp/pc/impls/gamg/tools.c
>>> description:
>>> added fix for preallocation for unsymetric matrices.
>>> 
>>> Mark
>>> 
>>> my 'hg view' on my merge repo:
>>> 
>>> Revision: 22492
>>> Branch: default
>>> Author: Mark F. Adams <mark.adams at columbia.edu>  2012-03-14 17:39:52
>>> Committer: Mark F. Adams <mark.adams at columbia.edu>  2012-03-14 17:39:52
>>> Tags: tip
>>> Parent: 22491:451bbbd291c2 (Small fixes to the BT linesearch)
>>> 
>>>     fix for unsymmetric matrices.
>>> 
>>> 
>>> ------------------------ src/ksp/pc/impls/gamg/tools.c 
>>> ------------------------
>>> @@ -103,7 +103,7 @@
>>>    PetscErrorCode ierr;
>>>    PetscInt       Istart,Iend,Ii,jj,ncols,nnz0,nnz1, NN, MM, nloc;
>>>    PetscMPIInt    mype, npe;
>>> -  Mat            Gmat = *a_Gmat, tGmat;
>>> +  Mat            Gmat = *a_Gmat, tGmat, matTrans;
>>>    MPI_Comm       wcomm = ((PetscObject)Gmat)->comm;
>>>    const PetscScalar *vals;
>>>    const PetscInt *idx;
>>> @@ -127,6 +127,10 @@
>>>    ierr = MatDiagonalScale( Gmat, diag, diag ); CHKERRQ(ierr);
>>>    ierr = VecDestroy( &diag );           CHKERRQ(ierr);
>>>  
>>> +  if( symm ) {
>>> +    ierr = MatTranspose( Gmat, MAT_INITIAL_MATRIX, &matTrans );    
>>> CHKERRQ(ierr);
>>> +  }
>>> +
>>>    /* filter - dup zeros out matrix */
>>>    ierr = PetscMalloc( nloc*sizeof(PetscInt), &d_nnz ); CHKERRQ(ierr);
>>>    ierr = PetscMalloc( nloc*sizeof(PetscInt), &o_nnz ); CHKERRQ(ierr);
>>> @@ -135,6 +139,12 @@
>>>      d_nnz[jj] = ncols;
>>>      o_nnz[jj] = ncols;
>>>      ierr = MatRestoreRow(Gmat,Ii,&ncols,PETSC_NULL,PETSC_NULL); 
>>> CHKERRQ(ierr);
>>> +    if( symm ) {
>>> +      ierr = MatGetRow(matTrans,Ii,&ncols,PETSC_NULL,PETSC_NULL); 
>>> CHKERRQ(ierr);
>>> +      d_nnz[jj] += ncols;
>>> +      o_nnz[jj] += ncols;
>>> +      ierr = MatRestoreRow(matTrans,Ii,&ncols,PETSC_NULL,PETSC_NULL); 
>>> CHKERRQ(ierr);
>>> +    }
>>>      if( d_nnz[jj] > nloc ) d_nnz[jj] = nloc;
>>>      if( o_nnz[jj] > (MM-nloc) ) o_nnz[jj] = MM - nloc;
>>>    }
>>> @@ -142,6 +152,9 @@
>>>    CHKERRQ(ierr);
>>>    ierr = PetscFree( d_nnz ); CHKERRQ(ierr); 
>>>    ierr = PetscFree( o_nnz ); CHKERRQ(ierr); 
>>> +  if( symm ) {
>>> +    ierr = MatDestroy( &matTrans );  CHKERRQ(ierr);
>>> +  }
>>>  
>>> 
>>> 
>>> 
>>> On Mar 14, 2012, at 5:53 PM, John Mousel wrote:
>>> 
>>>> Mark,
>>>> 
>>>> No change. Can you give me the location that you patched so I can check to 
>>>> make sure it pulled?
>>>> I don't see it on the petsc-dev change log.
>>>> 
>>>> John
>>>> 
>>>> On Wed, Mar 14, 2012 at 4:40 PM, Mark F. Adams <mark.adams at 
>>>> columbia.edu> wrote:
>>>> John, I've committed these changes, give a try.
>>>> 
>>>> Mark
>>>> 
>>>> On Mar 14, 2012, at 3:46 PM, Satish Balay wrote:
>>>> 
>>>> > This is the usual merge [with uncommited changes] issue.
>>>> >
>>>> > You could use 'hg shelf' extension to shelve your local changes and
>>>> > then do a merge [as Sean would suggest] - or do the merge in a
>>>> > separate/clean clone [I normally do this..]
>>>> >
>>>> > i.e
>>>> > cd ~/Codes
>>>> > hg clone petsc-dev petsc-dev-merge
>>>> > cd petsc-dev-merge
>>>> > hg pull ssh://petsc at petsc.cs.iit.edu//hg/petsc/petsc-dev   #just to 
>>>> > be sure, look for latest chagnes before merge..
>>>> > hg merge
>>>> > hg commit
>>>> > hg push ssh://petsc at petsc.cs.iit.edu//hg/petsc/petsc-dev
>>>> >
>>>> > [now update your petsc-dev to latest]
>>>> > cd ~/Codes/petsc-dev
>>>> > hg pull
>>>> > hg update
>>>> >
>>>> > Satish
>>>> >
>>>> > On Wed, 14 Mar 2012, Mark F. Adams wrote:
>>>> >
>>>> >> Great, that seems to work.
>>>> >>
>>>> >> I did a 'hg commit tools.c'
>>>> >>
>>>> >> and I want to push this file only.  I guess its the only thing in the 
>>>> >> change set so 'hg push' should be fine.  But I see this:
>>>> >>
>>>> >> ~/Codes/petsc-dev/src/ksp/pc/impls/gamg>hg update
>>>> >> abort: crosses branches (merge branches or use --clean to discard 
>>>> >> changes)
>>>> >> ~/Codes/petsc-dev/src/ksp/pc/impls/gamg>hg merge
>>>> >> abort: outstanding uncommitted changes (use 'hg status' to list changes)
>>>> >> ~/Codes/petsc-dev/src/ksp/pc/impls/gamg>hg status
>>>> >> M include/petscmat.h
>>>> >> M include/private/matimpl.h
>>>> >> M src/ksp/pc/impls/gamg/agg.c
>>>> >> M src/ksp/pc/impls/gamg/gamg.c
>>>> >> M src/ksp/pc/impls/gamg/gamg.h
>>>> >> M src/ksp/pc/impls/gamg/geo.c
>>>> >> M src/mat/coarsen/coarsen.c
>>>> >> M src/mat/coarsen/impls/hem/hem.c
>>>> >> M src/mat/coarsen/impls/mis/mis.c
>>>> >>
>>>> >> Am I ready to do a push?
>>>> >>
>>>> >> Thanks,
>>>> >> Mark
>>>> >>
>>>> >> On Mar 14, 2012, at 2:44 PM, Satish Balay wrote:
>>>> >>
>>>> >>> If commit is the last hg operation that you've done - then 'hg 
>>>> >>> rollback' would undo this commit.
>>>> >>>
>>>> >>> Satish
>>>> >>>
>>>> >>> On Wed, 14 Mar 2012, Mark F. Adams wrote:
>>>> >>>
>>>> >>>> Damn, I'm not preallocating the graph perfectly for unsymmetric 
>>>> >>>> matrices and PETSc now dies on this.
>>>> >>>>
>>>> >>>> I have a fix but I committed it with other changes that I do not want 
>>>> >>>> to commit.  The changes are all in one file so I should be able to 
>>>> >>>> just commit this file.
>>>> >>>>
>>>> >>>> Anyone know how to delete a commit?
>>>> >>>>
>>>> >>>> I've tried:
>>>> >>>>
>>>> >>>> ~/Codes/petsc-dev/src/ksp/pc/impls/gamg>hg strip 22487:26ffb9eef17f
>>>> >>>> hg: unknown command 'strip'
>>>> >>>> 'strip' is provided by the following extension:
>>>> >>>>
>>>> >>>>   mq  manage a stack of patches
>>>> >>>>
>>>> >>>> use "hg help extensions" for information on enabling extensions
>>>> >>>>
>>>> >>>> But have not figured out how to load extensions.
>>>> >>>>
>>>> >>>> Mark
>>>> >>>>
>>>> >>>> On Mar 14, 2012, at 12:54 PM, John Mousel wrote:
>>>> >>>>
>>>> >>>>> Mark,
>>>> >>>>>
>>>> >>>>> I have a non-symmetric matrix. I am running with the following 
>>>> >>>>> options.
>>>> >>>>>
>>>> >>>>> -pc_type gamg -pc_gamg_sym_graph -ksp_monitor_true_residual
>>>> >>>>>
>>>> >>>>> and with the inclusion of -pc_gamg_sym_graph, I get a new malloc 
>>>> >>>>> error:
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> 0]PETSC ERROR: --------------------- Error Message 
>>>> >>>>> ------------------------------------
>>>> >>>>> [0]PETSC ERROR: Argument out of range!
>>>> >>>>> [0]PETSC ERROR: New nonzero at (5150,9319) caused a malloc!
>>>> >>>>> [0]PETSC ERROR: 
>>>> >>>>> ------------------------------------------------------------------------
>>>> >>>>> [0]PETSC ERROR: Petsc Development HG revision: 
>>>> >>>>> 587b25035091aaa309c87c90ac64c13408ecf34e  HG Date: Wed Mar 14 
>>>> >>>>> 09:22:54 2012 -0500
>>>> >>>>> [0]PETSC ERROR: See docs/changes/index.html for recent updates.
>>>> >>>>> [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
>>>> >>>>> [0]PETSC ERROR: See docs/index.html for manual pages.
>>>> >>>>> [0]PETSC ERROR: 
>>>> >>>>> ------------------------------------------------------------------------
>>>> >>>>> [0]PETSC ERROR: ../JohnRepo/VFOLD_exe on a linux-deb named 
>>>> >>>>> wv.iihr.uiowa.edu by jmousel Wed Mar 14 11:51:35 2012
>>>> >>>>> [0]PETSC ERROR: Libraries linked from 
>>>> >>>>> /home/jmousel/NumericalLibraries/petsc-hg/petsc-dev/linux-debug/lib
>>>> >>>>> [0]PETSC ERROR: Configure run at Wed Mar 14 09:46:39 2012
>>>> >>>>> [0]PETSC ERROR: Configure options --download-blacs=1 
>>>> >>>>> --download-hypre=1 --download-metis=1 --download-ml=1 
>>>> >>>>> --download-mpich=1 --download-parmetis=1 --download-scalapack=1 
>>>> >>>>> --with-blas-lapack-dir=/opt/intel11/mkl/lib/em64t --with-cc=gcc 
>>>> >>>>> --with-cmake=/usr/local/bin/cmake --with-cxx=g++ --with-fc=ifort 
>>>> >>>>> PETSC_ARCH=linux-debug
>>>> >>>>> [0]PETSC ERROR: 
>>>> >>>>> ------------------------------------------------------------------------
>>>> >>>>> [0]PETSC ERROR: MatSetValues_MPIAIJ() line 506 in 
>>>> >>>>> /home/jmousel/NumericalLibraries/petsc-hg/petsc-dev/src/mat/impls/aij/mpi/mpiaij.c
>>>> >>>>> [0]PETSC ERROR: MatSetValues() line 1141 in 
>>>> >>>>> /home/jmousel/NumericalLibraries/petsc-hg/petsc-dev/src/mat/interface/matrix.c
>>>> >>>>> [0]PETSC ERROR: scaleFilterGraph() line 155 in 
>>>> >>>>> /home/jmousel/NumericalLibraries/petsc-hg/petsc-dev/src/ksp/pc/impls/gamg/tools.c
>>>> >>>>> [0]PETSC ERROR: PCGAMGgraph_AGG() line 865 in 
>>>> >>>>> /home/jmousel/NumericalLibraries/petsc-hg/petsc-dev/src/ksp/pc/impls/gamg/agg.c
>>>> >>>>> [0]PETSC ERROR: PCSetUp_GAMG() line 516 in 
>>>> >>>>> /home/jmousel/NumericalLibraries/petsc-hg/petsc-dev/src/ksp/pc/impls/gamg/gamg.c
>>>> >>>>> [0]PETSC ERROR: PCSetUp() line 832 in 
>>>> >>>>> /home/jmousel/NumericalLibraries/petsc-hg/petsc-dev/src/ksp/pc/interface/precon.c
>>>> >>>>> [0]PETSC ERROR: KSPSetUp() line 261 in 
>>>> >>>>> /home/jmousel/NumericalLibraries/petsc-hg/petsc-dev/src/ksp/ksp/interface/itfunc.c
>>>> >>>>> [0]PETSC ERROR: KSPSolve() line 385 in 
>>>> >>>>> /home/jmousel/NumericalLibraries/petsc-hg/petsc-dev/src/ksp/ksp/interface/itfunc.c
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> John
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> On Wed, Mar 14, 2012 at 11:27 AM, Mark F. Adams <mark.adams at 
>>>> >>>>> columbia.edu> wrote:
>>>> >>>>>
>>>> >>>>> On Mar 14, 2012, at 11:56 AM, John Mousel wrote:
>>>> >>>>>
>>>> >>>>>> Mark,
>>>> >>>>>>
>>>> >>>>>> The matrix is asymmetric. Does this require the setting of an 
>>>> >>>>>> option?
>>>> >>>>>
>>>> >>>>> Yes:  -pc_gamg_sym_graph
>>>> >>>>>
>>>> >>>>> Mark
>>>> >>>>>
>>>> >>>>>> I pulled petsc-dev this morning, so I should have (at least close 
>>>> >>>>>> to) the latest code.
>>>> >>>>>>
>>>> >>>>>> John
>>>> >>>>>>
>>>> >>>>>> On Wed, Mar 14, 2012 at 10:54 AM, Mark F. Adams <mark.adams at 
>>>> >>>>>> columbia.edu> wrote:
>>>> >>>>>>
>>>> >>>>>> On Mar 14, 2012, at 11:08 AM, John Mousel wrote:
>>>> >>>>>>
>>>> >>>>>>> I'm getting the following error when using GAMG.
>>>> >>>>>>>
>>>> >>>>>>> petsc-dev/src/ksp/pc/impls/gamg/agg.c:508: smoothAggs: Assertion 
>>>> >>>>>>> `sgid==-1' failed.
>>>> >>>>>>
>>>> >>>>>> Is it possible that your matrix is structurally asymmetric?
>>>> >>>>>>
>>>> >>>>>> This code is evolving fast and so you will need to move to the dev 
>>>> >>>>>> version if you are not already using it. (I think I fixed a bug 
>>>> >>>>>> that hit this assert).
>>>> >>>>>>
>>>> >>>>>>>
>>>> >>>>>>> When I try to alter the type of aggregation at the command line 
>>>> >>>>>>> using -pc_gamg_type pa, I'm getting
>>>> >>>>>>>
>>>> >>>>>>> [0]PETSC ERROR: [1]PETSC ERROR: --------------------- Error 
>>>> >>>>>>> Message ------------------------------------
>>>> >>>>>>> [1]PETSC ERROR: Unknown type. Check for miss-spelling or missing 
>>>> >>>>>>> external package needed for type:
>>>> >>>>>>> see 
>>>> >>>>>>> http://www.mcs.anl.gov/petsc/documentation/installation.html#external!
>>>> >>>>>>> [1]PETSC ERROR: Unknown GAMG type pa given!
>>>> >>>>>>>
>>>> >>>>>>> Has there been a change in the aggregation options? I just pulled 
>>>> >>>>>>> petsc-dev this morning.
>>>> >>>>>>>
>>>> >>>>>>
>>>> >>>>>> Yes, this option is gone now.  You can use -pc_gamg_type agg for 
>>>> >>>>>> now.
>>>> >>>>>>
>>>> >>>>>> Mark
>>>> >>>>>>
>>>> >>>>>>> John
>>>> >>>>>>
>>>> >>>>>>
>>>> >>>>>
>>>> >>>>>
>>>> >>>>
>>>> >>>>
>>>> >>>
>>>> >>>
>>>> >>
>>>> >>
>>>> >
>>>> >
>>>> 
>>>> 
>>> 
>>> 
>>> <GAMG_kspview.txt><ML_kspview.txt><HYPRE_kspview.txt>
>> 
>> 
>> <GAMG_kspview.txt>
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120316/1be32440/attachment-0001.htm>

Reply via email to