[petsc-users] PETSc binary write format

Sajid Ali sajidsyed2021 at u.northwestern.edu
Wed Dec 5 12:40:02 CST 2018


Exactly.

When I run ex10 and inspect it with cat, I get garbage since the data is in
binary :

[sajid at xrm temp]$ cat vector.dat
{N?�@@@@▒@@ @"@$@&@(@*@, at .@0 at 1@2 at 3[sajid at xrm temp]$


But doing a binary dump shows the data :
[sajid at xrm temp]$ xxd -b vector.dat
0000000: 00000000 00010010 01111011 01001110 00000000 00000000  ..{N..
0000006: 00000000 00010100 00000000 00000000 00000000 00000000  ......
000000c: 00000000 00000000 00000000 00000000 00111111 11110000  ....?.
0000012: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000018: 01000000 00000000 00000000 00000000 00000000 00000000  @.....
000001e: 00000000 00000000 01000000 00001000 00000000 00000000  .. at ...
0000024: 00000000 00000000 00000000 00000000 01000000 00010000  .... at .
000002a: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000030: 01000000 00010100 00000000 00000000 00000000 00000000  @.....
0000036: 00000000 00000000 01000000 00011000 00000000 00000000  .. at ...
000003c: 00000000 00000000 00000000 00000000 01000000 00011100  .... at .
0000042: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000048: 01000000 00100000 00000000 00000000 00000000 00000000  @ ....
000004e: 00000000 00000000 01000000 00100010 00000000 00000000  ..@"..
0000054: 00000000 00000000 00000000 00000000 01000000 00100100  ....@$
000005a: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000060: 01000000 00100110 00000000 00000000 00000000 00000000  @&....
0000066: 00000000 00000000 01000000 00101000 00000000 00000000  ..@(..
000006c: 00000000 00000000 00000000 00000000 01000000 00101010  ....@*
0000072: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000078: 01000000 00101100 00000000 00000000 00000000 00000000  @,....
000007e: 00000000 00000000 01000000 00101110 00000000 00000000  .. at ...
0000084: 00000000 00000000 00000000 00000000 01000000 00110000  .... at 0
000008a: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000090: 01000000 00110001 00000000 00000000 00000000 00000000  @1....
0000096: 00000000 00000000 01000000 00110010 00000000 00000000  .. at 2..
000009c: 00000000 00000000 00000000 00000000 01000000 00110011  .... at 3
00000a2: 00000000 00000000 00000000 00000000 00000000 00000000  ......

I think that the special characters on the right are just an attempt at
converting the binary data to ascii so they're not relevant to us.

I've created the same file as per the format specified in this thread, i.e.
VEC_FILE_CLASSID, num_elements followed by the elements in ieee-754 64-bit
format.

I've saved everything as 1's and 0's in a file as shown above. If it were
indeed a binary file, doing a cat on it should output garbage as it did for
the file above. But it instead interprets each 0 and 1 as an ascii
character.

The specific error is :
[sajid at xrm temp]$ ./ex10 -binary
reading vector in binary from vector.dat ...
[0]PETSC ERROR: --------------------- Error Message
--------------------------------------------------------------
[0]PETSC ERROR: Invalid argument
[0]PETSC ERROR: Not a vector next in file
[0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for
trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.10.2, unknown
[0]PETSC ERROR: ./ex10 on a  named xrm by sajid Wed Dec  5 12:39:40 2018
[0]PETSC ERROR: Configure options
--prefix=/raid/home/sajid/packages/spack/opt/spack/linux-rhel7-x86_64/gcc-7.3.0/petsc-3.10.2.1-xnahapbbgtr1
[0]PETSC ERROR: #1 PetscViewerBinaryReadVecHeader_Private() line 26 in
/tmp/sajid/spack-stage/spack-stage-7h2QI3/petsc/src/vec/vec/utils/vecc
[0]PETSC ERROR: #2 VecLoad_Binary() line 84 in
/tmp/sajid/spack-stage/spack-stage-7h2QI3/petsc/src/vec/vec/utils/vecio.c
[0]PETSC ERROR: #3 VecLoad_Default() line 516 in
/tmp/sajid/spack-stage/spack-stage-7h2QI3/petsc/src/vec/vec/utils/vecio.c
[0]PETSC ERROR: #4 VecLoad() line 933 in
/tmp/sajid/spack-stage/spack-stage-7h2QI3/petsc/src/vec/vec/interface/vector.c
[0]PETSC ERROR: #5 main() line 155 in
/raid/home/sajid/packages/xwp_petsc/temp/ex10.c
[0]PETSC ERROR: PETSc Option Table entries:
[0]PETSC ERROR: -binary
[0]PETSC ERROR: -vecload_block_size 1
[0]PETSC ERROR: ----------------End of Error Message -------send entire
error message to petsc-maint at mcs.anl.gov----------
application called MPI_Abort(MPI_COMM_WORLD, 62) - process 0
[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=62
:
system msg for write_line failure : Bad file descriptor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20181205/6a517b86/attachment.html>


More information about the petsc-users mailing list