<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, 4 Dec 2018 at 19:53, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Dec 4, 2018 at 11:11 AM Lisandro Dalcin via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr">PetscByteSwap ? But be careful, you should (1) vec get array, byteswap, vec restore array, (2) view, (3) vec get array, byteswap, vec restore array. Of course, if you do not care about the final Vec contents, you can just omit step (3) and let it be, let it be...</div><div dir="ltr"><br></div><div>PS: Eventually, PETSc binary viewers should gain an API like PetscViewerBinarySetByteOrder(viewer, PETSC_LITTLE_ENDIAN) ...</div></div></blockquote><div><br></div><div>Note that this enables exactly what we wanted to avoid, namely binary files that an incompatible with some installations.</div><div><br></div></div></div></blockquote><div><br></div><div>1) As a confessed libertarian (not to be confused with liberal), IMHO, we should not prevent power users to do something if they explicitly ask for it. Maybe someone has to dump a binary file in little endian with no headers, so that some other crappy software  that do not care about endianness can happily read the file and do something with it. Why would we not add the feature (at least if someone contributes it)?</div><div><br></div><div>2) The whole native binary I/O in PETSc is messy.</div><div><br></div><div>3) In an ideal word, every PETSc binary file should start with a header 8bitEndianFlag,sizeof(PetscInt),sizeof(PetscReal),sizeof(PetscScalar), And maybe readers should handle gracefully binary files produced by PETSc builds with different integer/real sizes.</div><div><br></div></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Lisandro Dalcin<br>============<br>Research Scientist<br>Computer, Electrical and Mathematical Sciences & Engineering (CEMSE)<br>Extreme Computing Research Center (ECRC)<br>King Abdullah University of Science and Technology (KAUST)<br><a href="http://ecrc.kaust.edu.sa/" target="_blank">http://ecrc.kaust.edu.sa/</a><br><br>4700 King Abdullah University of Science and Technology<br>al-Khawarizmi Bldg (Bldg 1), Office # 0109<br>Thuwal 23955-6900, Kingdom of Saudi Arabia<br><a href="http://www.kaust.edu.sa" target="_blank">http://www.kaust.edu.sa</a><br><br>Office Phone: +966 12 808-0459</div></div>