[petsc-users] matload and petsc4py

Klaij, Christiaan C.Klaij at marin.nl
Fri Jun 7 03:17:53 CDT 2024


Well, after trying a second time, the binary file is fine and loads into python without issues. No idea how the first file got corrupted. I've also tried without the PetscViewerPushFormat call, and that works equally well. Thanks for your help!

Chris

________________________________________

dr. ir. Christiaan Klaij
 | Senior Researcher | Research & Development
T +31 317 49 33 44 |  C.Klaij at marin.nl | https://urldefense.us/v3/__http://www.marin.nl__;!!G_uCfscf7eWS!a9GfF_LhoavWZziwYJYPGdit19o_V12PJ7Va7HZ4FOqQrLcBCZOHGqnoEpTXlLRFh4MBui66Jv03qp9Zf3lKuoo$ 
From: Barry Smith <bsmith at petsc.dev>
Sent: Thursday, June 6, 2024 7:08 PM
To: Klaij, Christiaan
Cc: Stefano Zampini; PETSc users list
Subject: Re: [petsc-users] matload and petsc4py

You don't often get email from bsmith at petsc.dev. Learn why this is important<https://urldefense.us/v3/__https://aka.ms/LearnAboutSenderIdentification__;!!G_uCfscf7eWS!a9GfF_LhoavWZziwYJYPGdit19o_V12PJ7Va7HZ4FOqQrLcBCZOHGqnoEpTXlLRFh4MBui66Jv03qp9ZRPyqNHc$ >

   Try without this line CALL PetscViewerPushFormat(viewer, PETSC_VIEWER_DEFAULT, ier)
it shouldn't matter but worth trying.

On Jun 6, 2024, at 9:50 AM, Klaij, Christiaan <C.Klaij at marin.nl> wrote:

This Message Is From an External Sender
This message came from outside your organization.

The matrix was saved as with this code:

CALL PetscViewerBinaryOpen(PETSC_COMM_WORLD, filename, FILE_MODE_WRITE, viewer, ier)
CALL PetscViewerPushFormat(viewer, PETSC_VIEWER_DEFAULT, ier)
CALL MatView(A, viewer, ier)
CALL PetscViewerDestroy(viewer, ier)

I will try again to check for file corruption

________________________________________
From: Stefano Zampini <stefano.zampini at gmail.com<mailto:stefano.zampini at gmail.com>>
Sent: Thursday, June 6, 2024 3:01 PM
To: Klaij, Christiaan
Cc: PETSc users list
Subject: Re: [petsc-users] matload and petsc4py

You don't often get email from stefano.zampini at gmail.com<mailto:stefano.zampini at gmail.com>. Learn why this is important<https://urldefense.us/v3/__https://aka.ms/LearnAboutSenderIdentification__;!!G_uCfscf7eWS!dhd_vSPt_mzy9yVfgQZvw3KcZQwq--Wojmk9JdzuGmnjbC_54Z7IF0WH6qosvtdRyyjv94blDuN1lAlZepr0msg$>


On Thu, Jun 6, 2024, 14:53 Klaij, Christiaan <C.Klaij at marin.nl<mailto:C.Klaij at marin.nl><mailto:C.Klaij at marin.nl>> wrote:
I'm writing a matrix to file from my fortran code (that uses petsc-3. 19. 4) with -mat_view binary. Then, I'm trying to load this mat into python (that uses petsc-3. 21. 0). This works fine using single or multiple procs when the marix
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.

ZjQcmQRYFpfptBannerEnd
I'm writing a matrix to file from my fortran code (that uses petsc-3.19.4) with -mat_view binary. Then, I'm trying to load this mat into python (that uses petsc-3.21.0). This works fine using single or multiple procs when the marix was written using a single proc (attached file a_mat_np_1.dat). However, when the matrix was written using mulitple procs (attached file a_mat_n_2.dat) I get the error below. Is this supposed to work? If so, what I'm I doing wrong?


This should work. And your script seems ok too . How did you save the matrix in parallel? I suspect that file is corrupt

$ cat test_matrixImport_binary.py
import sys
import petsc4py
from petsc4py import PETSc
from mpi4py import MPI

# mat files
#filename = "./a_mat_np_1.dat" # Works
filename = "./a_mat_np_2.dat" # Doesn't work

# Initialize PETSc
petsc4py.init(sys.argv)

# Create a viewer for reading the binary file
viewer = PETSc.Viewer().createBinary(filename, mode='r', comm=PETSc.COMM_WORLD)

# Create a matrix and load data from the binary file
A = PETSc.Mat().create(comm=PETSc.COMM_WORLD)
A.load(viewer)

$ python test_matrixImport_binary.py
Traceback (most recent call last):
File "/projects/P35662.700/test_cklaij/test_matrixImport_binary.py", line 18, in <module>
A.load(viewer)
File "petsc4py/PETSc/Mat.pyx", line 2025, in petsc4py.PETSc.Mat.load
petsc4py.PETSc.Error: error code 79
[0] MatLoad() at /home/cklaij/petsc-3.21.0/src/mat/interface/matrix.c:1344
[0] MatLoad_SeqAIJ() at /home/cklaij/petsc-3.21.0/src/mat/impls/aij/seq/aij.c:5091
[0] MatLoad_SeqAIJ_Binary() at /home/cklaij/petsc-3.21.0/src/mat/impls/aij/seq/aij.c:5142
[0] Unexpected data in file
[0] Inconsistent matrix data in file: nonzeros = 460, sum-row-lengths = 761

$ mpirun -n 2 python test_matrixImport_binary.py
Traceback (most recent call last):
File "/projects/P35662.700/test_cklaij/test_matrixImport_binary.py", line 18, in <module>
Traceback (most recent call last):
File "/projects/P35662.700/test_cklaij/test_matrixImport_binary.py", line 18, in <module>
A.load(viewer)
File "petsc4py/PETSc/Mat.pyx", line 2025, in petsc4py.PETSc.Mat.load
A.load(viewer)
File "petsc4py/PETSc/Mat.pyx", line 2025, in petsc4py.PETSc.Mat.load
petsc4py.PETSc.Error: error code 79
[0] MatLoad() at /home/cklaij/petsc-3.21.0/src/mat/interface/matrix.c:1344
[0] MatLoad_MPIAIJ() at /home/cklaij/petsc-3.21.0/src/mat/impls/aij/mpi/mpiaij.c:3035
[0] MatLoad_MPIAIJ_Binary() at /home/cklaij/petsc-3.21.0/src/mat/impls/aij/mpi/mpiaij.c:3087
[0] Unexpected data in file
[0] Inconsistent matrix data in file: nonzeros = 460, sum-row-lengths = 761
petsc4py.PETSc.Error: error code 79
[1] MatLoad() at /home/cklaij/petsc-3.21.0/src/mat/interface/matrix.c:1344
[1] MatLoad_MPIAIJ() at /home/cklaij/petsc-3.21.0/src/mat/impls/aij/mpi/mpiaij.c:3035
[1] MatLoad_MPIAIJ_Binary() at /home/cklaij/petsc-3.21.0/src/mat/impls/aij/mpi/mpiaij.c:3087
[1] Unexpected data in file
[1] Inconsistent matrix data in file: nonzeros = 460, sum-row-lengths = 761


[cid:ii_18feda229ee74859a161]
dr. ir.​​​​     Christiaan       Klaij
 |      Senior Researcher        |      Research & Development
T +31 317 49 33 44<tel:+31%20317%2049%2033%2044>         |       C.Klaij at marin.nl<mailto:C.Klaij at marin.nl><mailto:C.Klaij at marin.nl>      | https://urldefense.us/v3/__http://www.marin.nl__;!!G_uCfscf7eWS!dhd_vSPt_mzy9yVfgQZvw3KcZQwq--Wojmk9JdzuGmnjbC_54Z7IF0WH6qosvtdRyyjv94blDuN1lAlZod9brMU$<https://urldefense.us/v3/__https://www.marin.nl/__;!!G_uCfscf7eWS!YrcVeQ6V8OD3jKxSzzxpyuTgFdncWh4YcL1SgDT8NHqystMpzO1pkd17oNGni-ll5I8qH9_ueOtj3WYWBYeP9zg$>
[Facebook]<https://urldefense.us/v3/__https://www.facebook.com/marin.wageningen__;!!G_uCfscf7eWS!YrcVeQ6V8OD3jKxSzzxpyuTgFdncWh4YcL1SgDT8NHqystMpzO1pkd17oNGni-ll5I8qH9_ueOtj3WYWzqK6wKw$>
[LinkedIn]<https://urldefense.us/v3/__https://www.linkedin.com/company/marin__;!!G_uCfscf7eWS!YrcVeQ6V8OD3jKxSzzxpyuTgFdncWh4YcL1SgDT8NHqystMpzO1pkd17oNGni-ll5I8qH9_ueOtj3WYWIUyfXbM$>
[YouTube]<https://urldefense.us/v3/__https://www.youtube.com/marinmultimedia__;!!G_uCfscf7eWS!YrcVeQ6V8OD3jKxSzzxpyuTgFdncWh4YcL1SgDT8NHqystMpzO1pkd17oNGni-ll5I8qH9_ueOtj3WYWjtUkoeg$>


<image337700.png><image563921.png><image268336.png><image799923.png>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240607/fec7b80c/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image634986.png
Type: image/png
Size: 5004 bytes
Desc: image634986.png
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240607/fec7b80c/attachment-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image728206.png
Type: image/png
Size: 487 bytes
Desc: image728206.png
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240607/fec7b80c/attachment-0005.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image424860.png
Type: image/png
Size: 504 bytes
Desc: image424860.png
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240607/fec7b80c/attachment-0006.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image994549.png
Type: image/png
Size: 482 bytes
Desc: image994549.png
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240607/fec7b80c/attachment-0007.png>


More information about the petsc-users mailing list