1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-11-10 07:55:35 +00:00
Grid/lib
Peter Boyle dc814f30da Binary IO file for generic Grid array parallel I/O.
Number of IO MPI tasks can be varied by selecting which
dimensions use parallel IO and which dimensions use Serial send to boss
I/O.

Thus can neck down from, say 1024 nodes = 4x4x8x8 to {1,8,32,64,128,256,1024} nodes
doing the I/O.

Interpolates nicely between ALL nodes write their data, a single boss per time-plane
in processor space [old UKQCD fortran code did this], and a single node doing all I/O.

Not sure I have the transfer sizes big enough and am not overly convinced fstream
is guaranteed to not give buffer inconsistencies unless I set streambuf size to zero.

Practically it has worked on 8 tasks, 2x1x2x2 writing /cloning NERSC configurations
on my MacOS + OpenMPI and Clang environment.

It is VERY easy to switch to pwrite at a later date, and also easy to send x-strips around from
each node in order to gather bigger chunks at the syscall level.

That would push us up to the circa 8x 18*4*8 == 4KB size write chunk, and by taking, say, x/y non
parallel we get to 16MB contiguous chunks written in multi 4KB transactions
per IOnode in 64^3 lattices for configuration I/O.

I suspect this is fine for system performance.
2015-08-26 13:40:29 +01:00
..
algorithms Added one flavour rational ratios (unprec) 2015-08-19 04:58:40 +01:00
cartesian Extra check that failed in quenched test 2015-06-16 14:04:56 +01:00
communicator Binary IO file for generic Grid array parallel I/O. 2015-08-26 13:40:29 +01:00
cshift Gparity modifications in the Gparity compressor variant. 2015-08-11 06:22:20 +01:00
lattice Threading bug in RNG fill fixed. 2015-08-19 14:41:05 +01:00
Old Cleaning up the recursion for traceIndex<n> after the changes the enable G++ to 2015-07-01 23:43:57 +01:00
parallelIO Binary IO file for generic Grid array parallel I/O. 2015-08-26 13:40:29 +01:00
pugixml XMLReader implementation and a virtual Reader/Writer template framework. 2015-08-20 16:21:26 +01:00
qcd Binary IO file for generic Grid array parallel I/O. 2015-08-26 13:40:29 +01:00
serialisation pull in original license. 2015-08-21 10:19:08 +01:00
simd Small change in the HMC interface. 2015-07-30 17:16:57 +09:00
stencil Gparity valence test now working. 2015-08-14 00:01:04 +01:00
tensors Rework/global edit to enforce type templating of fermion operators. 2015-08-10 20:47:44 +01:00
.dirstamp Addedd Ta functionality to the tensor types 2015-06-04 18:11:32 +09:00
Algorithms.h Variable preconditioned GCR with restarting. 2015-06-21 10:58:46 +01:00
AlignedAllocator.h Committing incomplete work for parameter file I/O. 2015-07-27 18:32:28 +09:00
Cartesian.h Reorganise of file naming 2015-06-03 12:47:05 +01:00
Communicator.h Reorganise of file naming 2015-06-03 12:47:05 +01:00
Config.h Small change in the HMC interface. 2015-07-30 17:16:57 +09:00
Config.h.in Small change in the HMC interface. 2015-07-30 17:16:57 +09:00
Cshift.h Reorganise of file naming 2015-06-03 12:47:05 +01:00
Grid.h Binary IO file for generic Grid array parallel I/O. 2015-08-26 13:40:29 +01:00
Init.cc Binary IO file for generic Grid array parallel I/O. 2015-08-26 13:40:29 +01:00
Init.h Committing incomplete work for parameter file I/O. 2015-07-27 18:32:28 +09:00
Lattice.h Reorganise of file naming 2015-06-03 12:47:05 +01:00
Log.cc Committing incomplete work for parameter file I/O. 2015-07-27 18:32:28 +09:00
Log.h Committing incomplete work for parameter file I/O. 2015-07-27 18:32:28 +09:00
Make.inc Text and Binary readers 2015-08-20 23:04:38 +01:00
Makefile.am Reorganise of file naming 2015-06-03 12:47:05 +01:00
Simd.h Change the SIMD command correctly with precision = double vs. single and 2015-07-01 22:45:15 +01:00
stamp-h1 Small change in the HMC interface. 2015-07-30 17:16:57 +09:00
Stencil.h Gparity valence test now working. 2015-08-14 00:01:04 +01:00
Tensors.h Cleaning up the recursion for traceIndex<n> after the changes the enable G++ to 2015-07-01 23:43:57 +01:00
Threads.h Reorganise of file naming 2015-06-03 12:47:05 +01:00
Timer.h Committing incomplete work for parameter file I/O. 2015-07-27 18:32:28 +09:00