From 1a30a43a2dcf0cd0b15039d66946037b5cdbc316 Mon Sep 17 00:00:00 2001 From: James Osborn Date: Mon, 12 Dec 2022 14:21:38 -0600 Subject: [PATCH] add optional QIOlite reader --- build/configBase.nims | 3 +- qex.nimble | 2 +- src/io/reader.nim | 286 +-------------------------------------- src/io/readerQio.nim | 282 ++++++++++++++++++++++++++++++++++++++ src/io/readerQiolite.nim | 225 ++++++++++++++++++++++++++++++ src/rng/milcrng.nim | 1 - 6 files changed, 516 insertions(+), 283 deletions(-) create mode 100644 src/io/readerQio.nim create mode 100644 src/io/readerQiolite.nim diff --git a/build/configBase.nims b/build/configBase.nims index 34afd1bd..5287f704 100644 --- a/build/configBase.nims +++ b/build/configBase.nims @@ -116,7 +116,8 @@ proc getNimFlags*(fo: flagsOpts): seq[string] = verbosity ~ buildVerbosity nimcache ~ nimcache warning[SmallLshouldNotBeUsed] ~ off - styleCheck ~ usages + if (NimMajor, NimMinor) >= (1, 6): + styleCheck ~ usages embedsrc ~ "" #exceptions ~ quirky #if not nimargs.any(proc (x:string):bool = x.startswith("--mm:")): diff --git a/qex.nimble b/qex.nimble index c6766fe2..c5c267b8 100644 --- a/qex.nimble +++ b/qex.nimble @@ -30,7 +30,7 @@ requires "mdevolve >= 1.0.0" if primmeDir != "": requires "primme >= 3.0.0" -requires "https://github.com/usqcd-software/qiolite" +requires "https://github.com/usqcd-software/qiolite#head" # Helpers diff --git a/src/io/reader.nim b/src/io/reader.nim index 3c8f368f..f5d2fdd0 100644 --- a/src/io/reader.nim +++ b/src/io/reader.nim @@ -1,282 +1,8 @@ -import base -import layout -import qio -import strutils -import macros -import field -#import comms import os -#import stdUtils -import iocommon -proc getFileLattice*(s:string):seq[int] = - if not fileExists(s): - warn "file not found: ", s - return - var ql:QIO_Layout - ql.this_node = myRank.cint - ql.number_of_nodes = nRanks.cint - var qs = QIO_string_create() - var qr = QIO_open_read(qs, s, ql.addr, nil, nil) - let nd = QIO_get_reader_latdim(qr) - #echo nd - let ls = QIO_get_reader_latsize(qr) - result.newSeq(nd) - for i in 0.. 0: + echo &"read seconds layout: {t1-t0} read: {t2-t1} put: {t3-t2} finish: {t4-t3}" + +proc check(rd: Reader, l: Layout) = + var err = false + let nd = l.nDim + if rd.sr.lattice.len != nd: + err = true + else: + for i in 0..