[petsc-users] how to use petsc4py with mpi subcommunicators?
Gaetan Kenway
gaetank at gmail.com
Wed Apr 12 12:17:02 CDT 2017
Hi Rodrigo
I just ran your example on Nasa's Pleiades system. Here's what I got:
PBS r459i4n11:~> time mpiexec -n 5 python3.5 another_split_ex.py
number of subcomms = 2.5
petsc rank=2, petsc size=5
sub rank 1/3, color:0
petsc rank=4, petsc size=5
sub rank 2/3, color:0
petsc rank=0, petsc size=5
sub rank 0/3, color:0
KSP Object: 2 MPI processes
type: cg
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000.
left preconditioning
using DEFAULT norm type for convergence test
PC Object: 2 MPI processes
type: none
PC has not been set up so information may be incomplete
linear system matrix = precond matrix:
Mat Object: 2 MPI processes
type: mpidense
rows=100, cols=100
total: nonzeros=10000, allocated nonzeros=10000
total number of mallocs used during MatSetValues calls =0
petsc rank=1, petsc size=5
sub rank 0/2, color:1
creating A in subcomm 1= 2, 0
petsc rank=3, petsc size=5
sub rank 1/2, color:1
creating A in subcomm 1= 2, 1
real 0m1.236s
user 0m0.088s
sys 0m0.008s
So everything looks like it went through fine. I know this doesn't help you
directly, but we can confirm at least the python code itself is fine.
Gaetan
On Wed, Apr 12, 2017 at 10:10 AM, Rodrigo Felicio <
Rodrigo.Felicio at iongeo.com> wrote:
> Going over my older codes I found out that I have already tried the
> approach of splitting PETSc.COMM_WORLD, but whenever I try to create a
> matrix using a subcommuicator, the program fails. For example, executing
> the following python code attached to this msg, I get the following output
>
> time mpirun -n 5 python another_split_ex.py
> petsc rank=2, petsc size=5
> petsc rank=3, petsc size=5
> petsc rank=0, petsc size=5
> petsc rank=1, petsc size=5
> petsc rank=4, petsc size=5
> number of subcomms = 2
> sub rank 0/3, color:0
> sub rank 0/2, color:1
> sub rank 1/3, color:0
> sub rank 1/2, color:1
> sub rank 2/3, color:0
> creating A in subcomm 1= 2, 1
> creating A in subcomm 1= 2, 0
> Traceback (most recent call last):
> File "another_split_ex.py", line 43, in <module>
> Traceback (most recent call last):
> File "another_split_ex.py", line 43, in <module>
> A = PETSc.Mat().createDense([n,n], comm=subcomm)
> File "PETSc/Mat.pyx", line 390, in petsc4py.PETSc.Mat.createDense
> (src/petsc4py.PETSc.c:113792)
> A = PETSc.Mat().createDense([n,n], comm=subcomm)
> File "PETSc/Mat.pyx", line 390, in petsc4py.PETSc.Mat.createDense
> (src/petsc4py.PETSc.c:113792)
> File "PETSc/petscmat.pxi", line 602, in petsc4py.PETSc.Mat_Create
> (src/petsc4py.PETSc.c:25274)
> File "PETSc/petscmat.pxi", line 602, in petsc4py.PETSc.Mat_Create
> (src/petsc4py.PETSc.c:25274)
> File "PETSc/petscsys.pxi", line 104, in petsc4py.PETSc.Sys_Layout
> (src/petsc4py.PETSc.c:13666)
> File "PETSc/petscsys.pxi", line 104, in petsc4py.PETSc.Sys_Layout
> (src/petsc4py.PETSc.c:13666)
> petsc4py.PETSc.Error: petsc4py.PETSc.Errorerror code 608517
> [1] PetscSplitOwnership() line 86 in ~/mylocal/petsc/src/sys/utils/
> psplit.c
> : error code 134826245
> [3] PetscSplitOwnership() line 86 in ~/mylocal/petsc/src/sys/utils/
> psplit.c
>
>
> Checking the traceback, all I can say is that when the subcommunicator
> object reaches psplit.c code it gets somehow corrupted, because
> PetscSplitOwnership() fails to retrieve the size of the subcommunicator ...
> :-(
>
> regards
> Rodrigo
>
> ________________________________
>
>
> This email and any files transmitted with it are confidential and are
> intended solely for the use of the individual or entity to whom they are
> addressed. If you are not the original recipient or the person responsible
> for delivering the email to the intended recipient, be advised that you
> have received this email in error, and that any use, dissemination,
> forwarding, printing, or copying of this email is strictly prohibited. If
> you received this email in error, please immediately notify the sender and
> delete the original.
>
>
> ________________________________
>
>
> This email and any files transmitted with it are confidential and are
> intended solely for the use of the individual or entity to whom they are
> addressed. If you are not the original recipient or the person responsible
> for delivering the email to the intended recipient, be advised that you
> have received this email in error, and that any use, dissemination,
> forwarding, printing, or copying of this email is strictly prohibited. If
> you received this email in error, please immediately notify the sender and
> delete the original.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170412/ea5e1bc7/attachment.html>
More information about the petsc-users
mailing list