1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-11-10 07:55:35 +00:00

Merge branch 'develop' into feature/contractor

This commit is contained in:
Antonin Portelli 2018-10-22 18:27:18 +01:00
commit b48611b80f
4 changed files with 40 additions and 9 deletions

View File

@ -233,7 +233,8 @@ class GridLimeReader : public BinaryIO {
// std::cout << " ReadLatticeObject from offset "<<offset << std::endl; // std::cout << " ReadLatticeObject from offset "<<offset << std::endl;
BinarySimpleMunger<sobj,sobj> munge; BinarySimpleMunger<sobj,sobj> munge;
BinaryIO::readLatticeObject< vobj, sobj >(field, filename, munge, offset, format,nersc_csum,scidac_csuma,scidac_csumb); BinaryIO::readLatticeObject< vobj, sobj >(field, filename, munge, offset, format,nersc_csum,scidac_csuma,scidac_csumb);
std::cout << GridLogMessage << "SciDAC checksum A " << std::hex << scidac_csuma << std::dec << std::endl;
std::cout << GridLogMessage << "SciDAC checksum B " << std::hex << scidac_csumb << std::dec << std::endl;
///////////////////////////////////////////// /////////////////////////////////////////////
// Insist checksum is next record // Insist checksum is next record
///////////////////////////////////////////// /////////////////////////////////////////////

View File

@ -263,7 +263,7 @@ void A2AVectorsIo::write(const std::string fileStem, std::vector<Field> &vec,
Record record; Record record;
GridBase *grid = vec[0]._grid; GridBase *grid = vec[0]._grid;
ScidacWriter binWriter(grid->IsBoss()); ScidacWriter binWriter(grid->IsBoss());
std::string filename = vecFilename(fileStem, multiFile, trajectory); std::string filename = vecFilename(fileStem, trajectory, multiFile);
if (multiFile) if (multiFile)
{ {
@ -301,7 +301,7 @@ void A2AVectorsIo::read(std::vector<Field> &vec, const std::string fileStem,
{ {
Record record; Record record;
ScidacReader binReader; ScidacReader binReader;
std::string filename = vecFilename(fileStem, multiFile, trajectory); std::string filename = vecFilename(fileStem, trajectory, multiFile);
if (multiFile) if (multiFile)
{ {

View File

@ -242,8 +242,12 @@ void TA2AVectors<FImpl, Pack>::execute(void)
// I/O if necessary // I/O if necessary
if (!par().output.empty()) if (!par().output.empty())
{ {
A2AVectorsIo::write(par().output + "_w", w, par().multiFile, vm().getTrajectory()); startTimer("V I/O");
A2AVectorsIo::write(par().output + "_v", v, par().multiFile, vm().getTrajectory()); A2AVectorsIo::write(par().output + "_v", v, par().multiFile, vm().getTrajectory());
stopTimer("V I/O");
startTimer("W I/O");
A2AVectorsIo::write(par().output + "_w", w, par().multiFile, vm().getTrajectory());
stopTimer("W I/O");
} }
} }

View File

@ -35,7 +35,7 @@ using namespace Hadrons;
template <typename FOut, typename FIn> template <typename FOut, typename FIn>
void convert(const std::string outFilename, const std::string inFilename, void convert(const std::string outFilename, const std::string inFilename,
const unsigned int Ls, const bool rb, const unsigned int size, const unsigned int Ls, const bool rb, const unsigned int size,
const bool multiFile) const bool multiFile, const bool testRead)
{ {
assert(outFilename != inFilename); assert(outFilename != inFilename);
@ -102,6 +102,7 @@ void convert(const std::string outFilename, const std::string inFilename,
LOG(Message) << "Out type : " << typeName<FOut>() << std::endl; LOG(Message) << "Out type : " << typeName<FOut>() << std::endl;
LOG(Message) << "#vectors : " << size << std::endl; LOG(Message) << "#vectors : " << size << std::endl;
LOG(Message) << "Multifile : " << (multiFile ? "yes" : "no") << std::endl; LOG(Message) << "Multifile : " << (multiFile ? "yes" : "no") << std::endl;
LOG(Message) << "Test read : " << (testRead ? "yes" : "no") << std::endl;
if (multiFile) if (multiFile)
{ {
for(unsigned int k = 0; k < size; ++k) for(unsigned int k = 0; k < size; ++k)
@ -112,6 +113,8 @@ void convert(const std::string outFilename, const std::string inFilename,
LOG(Message) << "==== Converting vector " << k << std::endl; LOG(Message) << "==== Converting vector " << k << std::endl;
LOG(Message) << "In : " << inV << std::endl; LOG(Message) << "In : " << inV << std::endl;
LOG(Message) << "Out: " << outV << std::endl; LOG(Message) << "Out: " << outV << std::endl;
// conversion
LOG(Message) << "-- Doing conversion" << std::endl;
makeFileDir(outV, gOut); makeFileDir(outV, gOut);
binWriter.open(outV); binWriter.open(outV);
binReader.open(inV); binReader.open(inV);
@ -121,10 +124,20 @@ void convert(const std::string outFilename, const std::string inFilename,
EigenPackIo::writeElement<FIn, FOut>(binWriter, bufIn, eval, k, &bufOut, &testIn); EigenPackIo::writeElement<FIn, FOut>(binWriter, bufIn, eval, k, &bufOut, &testIn);
binWriter.close(); binWriter.close();
binReader.close(); binReader.close();
// read test
if (testRead)
{
LOG(Message) << "-- Test read" << std::endl;
binReader.open(outV);
EigenPackIo::readElement<FOut>(bufOut, eval, k, binReader);
binReader.close();
}
} }
} }
else else
{ {
// conversion
LOG(Message) << "-- Doing conversion" << std::endl;
makeFileDir(outFilename, gOut); makeFileDir(outFilename, gOut);
binWriter.open(outFilename); binWriter.open(outFilename);
binReader.open(inFilename); binReader.open(inFilename);
@ -137,6 +150,18 @@ void convert(const std::string outFilename, const std::string inFilename,
} }
binWriter.close(); binWriter.close();
binReader.close(); binReader.close();
// read test
if (testRead)
{
LOG(Message) << "-- Test read" << std::endl;
binReader.open(outFilename);
EigenPackIo::readHeader(record, binReader);
for(unsigned int k = 0; k < size; ++k)
{
EigenPackIo::readElement<FOut>(bufOut, eval, k, binReader);
}
binReader.close();
}
} }
} }
@ -154,11 +179,11 @@ int main(int argc, char *argv[])
// parse command line // parse command line
std::string outFilename, inFilename; std::string outFilename, inFilename;
unsigned int size, Ls; unsigned int size, Ls;
bool rb, multiFile; bool rb, multiFile, testRead;
if (argc < 7) if (argc < 8)
{ {
std::cerr << "usage: " << argv[0] << " <out eigenpack> <in eigenpack> <Ls> <red-black (0|1)> <#vector> <multifile (0|1)> [Grid options]"; std::cerr << "usage: " << argv[0] << " <out eigenpack> <in eigenpack> <Ls> <red-black {0|1}> <#vector> <multifile {0|1}> <test read {0|1}> [Grid options]";
std::cerr << std::endl; std::cerr << std::endl;
std::exit(EXIT_FAILURE); std::exit(EXIT_FAILURE);
} }
@ -168,6 +193,7 @@ int main(int argc, char *argv[])
rb = (std::string(argv[4]) != "0"); rb = (std::string(argv[4]) != "0");
size = std::stoi(std::string(argv[5])); size = std::stoi(std::string(argv[5]));
multiFile = (std::string(argv[6]) != "0"); multiFile = (std::string(argv[6]) != "0");
testRead = (std::string(argv[7]) != "0");
// initialization // initialization
Grid_init(&argc, &argv); Grid_init(&argc, &argv);
@ -176,7 +202,7 @@ int main(int argc, char *argv[])
// execution // execution
try try
{ {
convert<FOUT, FIN>(outFilename, inFilename, Ls, rb, size, multiFile); convert<FOUT, FIN>(outFilename, inFilename, Ls, rb, size, multiFile, testRead);
} }
catch (const std::exception& e) catch (const std::exception& e)
{ {