Examples of how to use the rerun and read_dump commands with ADIOS
in.first - run on any number of procs for any size problem
in.rerun - run on same or different proc count for same size problem
in.read_dump - ditto to in.rerun
The thermo output on the same timesteps should be identical exactly,
or to within compression accuracy errors if compression is used.
$ grep "^ *[2468]00 " log.20Jan20.first.g++.7.4
200 0.75953175 -5.7618892 0 -4.6226272 0.20910575
400 0.74155675 -5.7343359 0 -4.6220356 0.3777989
600 0.72087255 -5.7029314 0 -4.6216563 0.55730354
800 0.70876958 -5.6840594 0 -4.6209382 0.66822293
$ grep "^ *[2468]00 " log.20Jan20.rerun.g++.7.4
200 0.75953175 -5.7618892 0 -4.6226272 0.20910575
400 0.74155675 -5.7343359 0 -4.6220356 0.3777989
600 0.72087255 -5.7029314 0 -4.6216563 0.55730354
800 0.70876958 -5.6840594 0 -4.6209382 0.66822293
$ grep "^ *[2468]00 " log.20Jan20.read_dump.g++.7.4 | sort -n
200 0.75953175 -5.7618892 0 -4.6226272 0.20910575
400 0.74155675 -5.7343359 0 -4.6220356 0.3777989
600 0.72087255 -5.7029314 0 -4.6216563 0.55730354
800 0.70876958 -5.6840594 0 -4.6209382 0.66822293
To dump the atom table from the lj_dump.bp, use the ADIOS bpls utility
$ bpls -l lj_dump.bp -d atoms -n 8 --format "%g" | less -S
double atoms 11*{32000, 8} = -3.97451 / 32000
( 0, 0,0) 1 1 0 0 0 -0.145828 -0.669946 -2.01722
( 0, 1,0) 2 1 0.839798 0.839798 0 -1.2587 1.4644 1.58791
( 0, 2,0) 3 1 0.839798 0 0.839798 -1.26427 -0.661341 1.11072
...
(10,31997,0) 32000 1 31.7633 32.7835 33.2632 -0.32891 0.00446725 0.478541
(10,31998,0) 31994 1 31.1663 32.7753 32.3628 -1.45085 0.668693 0.339836
(10,31999,0) 31924 1 32.8007 32.8736 32.5882 -0.980419 -0.237448 -1.21369
Concurrent rerun use case
=========================
The ADIOS BP4 engine allows for reading from the dump file (completed steps)
while the writer is still running (and dumping new steps). In two terminals,
one can run the in.first and in.rerun examples concurrently. The second
simulation will blocking wait for the steps from the first up to the timeout
specified in the rerun command.
$ mpirun -n 2 lmp -in in.first
$ mpirun -n 4 lmp -in in.rerun