[petsc-users] empty split for fieldsplit

Hoang Giang Bui hgbk2008 at gmail.com
Mon Jun 19 05:35:38 CDT 2017


Thanks Hong

I confirmed that it's fixed by your changes.

Giang

On Sun, Jun 18, 2017 at 4:45 PM, Hong <hzhang at mcs.anl.gov> wrote:

> Hoang,
> I pushed a fix
> https://bitbucket.org/petsc/petsc/commits/d4e3277789d24018f0db1641a80db7
> be76600165
> and added your test to
> petsc/src/ksp/ksp/examples/tests/ex53.c
>
> It is on the branch hzhang/fix-blockedIS-submat
> Let me know if it still does not fix your problem.
>
> Hong
>
> On Sat, Jun 17, 2017 at 4:06 PM, Zhang, Hong <hzhang at mcs.anl.gov> wrote:
>
>> never mind, I know it is ok to set blocksize=2
>> ------------------------------
>> *From:* Zhang, Hong
>> *Sent:* Saturday, June 17, 2017 3:56:35 PM
>>
>> *To:* Smith, Barry F.; Hoang Giang Bui
>> *Cc:* petsc-users
>> *Subject:* Re: [petsc-users] empty split for fieldsplit
>>
>>
>> Matrix A is a tridiagonal matrix with blocksize=1.
>>
>> Why do you set block_size=2 for A_IS and B_IS?
>>
>>
>> Hong
>> ------------------------------
>> *From:* Zhang, Hong
>> *Sent:* Friday, June 16, 2017 7:55:45 AM
>> *To:* Smith, Barry F.; Hoang Giang Bui
>> *Cc:* petsc-users
>> *Subject:* Re: [petsc-users] empty split for fieldsplit
>>
>>
>> I'm in Boulder and will be back home this evening.
>>
>> Will test it this weekend.
>>
>>
>> Hong
>> ------------------------------
>> *From:* Smith, Barry F.
>> *Sent:* Thursday, June 15, 2017 1:38:11 PM
>> *To:* Hoang Giang Bui; Zhang, Hong
>> *Cc:* petsc-users
>> *Subject:* Re: [petsc-users] empty split for fieldsplit
>>
>>
>>    Hong,
>>
>> Please build the attached code with master and run with
>>
>> petscmpiexec -n 2 ./ex1 -mat_size 40 -block_size 2 -method 2
>>
>> I think this is a bug in your new MatGetSubMatrix routines. You take the
>> block size of the outer IS and pass it into the inner IS but that inner IS
>> may not support the same block size hence the crash.
>>
>>    Can you please debug this?
>>
>>     Thanks
>>
>>      Barry
>>
>>
>>
>> > On Jun 15, 2017, at 7:56 AM, Hoang Giang Bui <hgbk2008 at gmail.com>
>> wrote:
>> >
>> > Hi Barry
>> >
>> > Thanks for pointing out the error. I think the problem coming from the
>> zero fieldsplit in proc 0. In this modified example, I parameterized the
>> matrix size and block size, so when you're executing
>> >
>> > mpirun -np 2 ./ex -mat_size 40 -block_size 2 -method 1
>> >
>> > everything was fine. With method = 1, fieldsplit size of B is nonzero
>> and is divided by the block size.
>> >
>> > With method=2, i.e mpirun -np 2 ./ex -mat_size 40 -block_size 2 -method
>> 2, the fieldsplit B is zero on proc 0, and the error is thrown
>> >
>> > [1]PETSC ERROR: --------------------- Error Message
>> --------------------------------------------------------------
>> > [1]PETSC ERROR: Arguments are incompatible
>> > [1]PETSC ERROR: Local size 11 not compatible with block size 2
>> >
>> > This is somehow not logical, because 0 is divided by block_size.
>> >
>> > Furthermore, if you execute  "mpirun -np 2 ./ex -mat_size 20
>> -block_size 2 -method 2", the code hangs at ISSetBlockSize, which is pretty
>> similar to my original problem. Probably the original one also hangs at
>> ISSetBlockSize, which I may not realize at that time.
>> >
>> > Giang
>> >
>> > On Wed, Jun 14, 2017 at 5:29 PM, Barry Smith <bsmith at mcs.anl.gov>
>> wrote:
>> >
>> > You can't do this
>> >
>> >    ierr = MatSetSizes(A,PETSC_DECIDE,N,N,N);CHKERRQ(ierr);
>> >
>> >   use PETSC_DECIDE for the third argument
>> >
>> > Also this is wrong
>> >
>> >   for (i = Istart; i < Iend; ++i)
>> >    {
>> >        ierr = MatSetValue(A,i,i,2,INSERT_VALUES);CHKERRQ(ierr);
>> >        ierr = MatSetValue(A,i+1,i,-1,INSERT_VALUES);CHKERRQ(ierr);
>> >        ierr = MatSetValue(A,i,i+1,-1,INSERT_VALUES);CHKERRQ(ierr);
>> >    }
>> >
>> > you will get
>> >
>> > $ petscmpiexec -n 2 ./ex1
>> > 0: Istart = 0, Iend = 60
>> > 1: Istart = 60, Iend = 120
>> > [1]PETSC ERROR: --------------------- Error Message
>> --------------------------------------------------------------
>> > [1]PETSC ERROR: Argument out of range
>> > [1]PETSC ERROR: Row too large: row 120 max 119
>> > [1]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html
>> for trouble shooting.
>> > [1]PETSC ERROR: Petsc Development GIT revision:
>> v3.7.6-4103-g93161b8192  GIT Date: 2017-06-11 14:49:39 -0500
>> > [1]PETSC ERROR: ./ex1 on a arch-basic named Barrys-MacBook-Pro.local by
>> barrysmith Wed Jun 14 18:26:52 2017
>> > [1]PETSC ERROR: Configure options PETSC_ARCH=arch-basic
>> > [1]PETSC ERROR: #1 MatSetValues_MPIAIJ() line 550 in
>> /Users/barrysmith/Src/petsc/src/mat/impls/aij/mpi/mpiaij.c
>> > [1]PETSC ERROR: #2 MatSetValues() line 1270 in
>> /Users/barrysmith/Src/petsc/src/mat/interface/matrix.c
>> > [1]PETSC ERROR: #3 main() line 30 in /Users/barrysmith/Src/petsc/te
>> st-dir/ex1.c
>> > [1]PETSC ERROR: PETSc Option Table entries:
>> > [1]PETSC ERROR: -malloc_test
>> >
>> > You need to get the example working so it ends with the error you
>> reported previously not these other bugs.
>> >
>> >
>> > > On Jun 12, 2017, at 10:19 AM, Hoang Giang Bui <hgbk2008 at gmail.com>
>> wrote:
>> > >
>> > > Dear Barry
>> > >
>> > > I made a small example with 2 process with one empty split in proc 0.
>> But it gives another strange error
>> > >
>> > > [1]PETSC ERROR: --------------------- Error Message
>> --------------------------------------------------------------
>> > > [1]PETSC ERROR: Arguments are incompatible
>> > > [1]PETSC ERROR: Local size 31 not compatible with block size 2
>> > >
>> > > The local size is always 60, so this is confusing.
>> > >
>> > > Giang
>> > >
>> > > On Sun, Jun 11, 2017 at 8:11 PM, Barry Smith <bsmith at mcs.anl.gov>
>> wrote:
>> > >   Could be, send us a simple example that demonstrates the problem
>> and we'll track it down.
>> > >
>> > >
>> > > > On Jun 11, 2017, at 12:34 PM, Hoang Giang Bui <hgbk2008 at gmail.com>
>> wrote:
>> > > >
>> > > > Hello
>> > > >
>> > > > I noticed that my code stopped very long, possibly hang, at
>> PCFieldSplitSetIS. There are two splits and one split is empty in one
>> process. May that be the possible reason that PCFieldSplitSetIS hang ?
>> > > >
>> > > > Giang
>> > >
>> > >
>> > > <ex.c>
>> >
>> >
>> > <ex.c>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170619/e71dba9a/attachment-0001.html>


More information about the petsc-users mailing list