Implement checksum to I/O (Feature #370)


Added by Christopher Pinke almost 6 years ago. Updated about 4 years ago.


Status:Done Start date:29 Nov 2012
Priority:Normal Due date:07 Dec 2012
Assignee:Matthias Bach % Done:

100%

Category:-
Target version:2012.12

Description

Before going to production, checksums for the gauge configurations have to be implemented to ensure compatibility with other programs and validity of the data.

In tmlqcd these fcts. can be found in /io/dml.* and are closely related to the QIO package of USQCD (http://usqcd.jlab.org/usqcd-docs/qio/). This package can also be downloaded.

Perhaps it is possible to simply use these fcts?


Related issues

related to CL2QCD - Feature #710: Ensure gaugefield read/write does not do stupid things on... Done 24 Sep 2014

Associated revisions

Revision c8a70504
Added by Matthias Bach almost 6 years ago

Code cleanup

refs #370

Revision d3ff4724
Added by Matthias Bach almost 6 years ago

Read checksum from configuration file

refs #370

Revision 28645ad2
Added by Matthias Bach almost 6 years ago

Initial checksumming

refs #370

Revision 5fe1726d
Added by Matthias Bach almost 6 years ago

Removed useless temporary buffers

refs #370

Revision 0ba88756
Added by Matthias Bach almost 6 years ago

Verify checksum when reading ildg files

refs #370

Revision c8b31e82
Added by Matthias Bach almost 6 years ago

Also verify checksum of read gaugefields in legacy code

refs #370

Revision 66424495
Added by Matthias Bach almost 6 years ago

Do endianess correction in ILDG format conversion

refs #370

Revision 5b7ae90e
Added by Matthias Bach almost 6 years ago

Write checksum when writing ILDG files

closes #370

Revision 483a9d3a
Added by Matthias Bach almost 6 years ago

Fix checksum of configuration used in testcases.

refs #370

History

Updated by Matthias Bach almost 6 years ago

  • Target version set to 2012.12

Updated by Matthias Bach almost 6 years ago

  • Status changed from New to In Progress

Updated by Matthias Bach almost 6 years ago

  • % Done changed from 0 to 50

Updated by Matthias Bach almost 6 years ago

  • % Done changed from 50 to 100
  • Status changed from In Progress to Done

Updated by Christopher Pinke about 4 years ago

Matthias, in 66424495 you simplified the code a lot and introduced the conversion to big Endian "on the fly".
My question is: Is this still valid if one has a system with big Endian, or is it assumed the operating system is little Endian?

  • Priority changed from High to Normal

Updated by Matthias Bach about 4 years ago

Took me a while to find the corresponding code again after all the resorting that has been going on. Currently it is implied that the code is always run on a little endian machine (I am not aware of any big endian mashines that run OpenCL). It could very easily be fixed, though. The endianess information is available in CMake and the function make_big_endian_from_float becomes trivial. If required I could fix it. Would give me a chance to fix that not 100% usage of a union I put in there, too.

Updated by Christopher Pinke about 4 years ago

If it is not too much work I think it would be a valuable "security line".
It will be of course a bit hard to write tests for these cases, so perhaps one can simply add a warning at some point, as it is, as you say, quite unlikely that the code is executed on a big endian machine...

Also available in: Atom PDF