[petsc-users] PETSc binary write format
Smith, Barry F.
bsmith at mcs.anl.gov
Wed Dec 5 12:57:00 CST 2018
> On Dec 5, 2018, at 12:40 PM, Sajid Ali <sajidsyed2021 at u.northwestern.edu> wrote:
>
> 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.
How did you create this file? Can you send us the code that creates the file and writes out the data?
Barry
>
> 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
>
>
More information about the petsc-users
mailing list