OpenFOAM® v1912: New and improved parallel
Updated file modification skew
When running a parallel case on multiple nodes the processor directories are
usually accessed using a network filing system, e.g. NFS. This might have a
non-trivial amount of latency to see changes to e.g. dictionaries. For this purpose
there is in etc/controlDict
which is the number of seconds of file-modification-time difference before a
dictionary is seen as having been changed. The second use is in dynamically
compiled code, e.g.
through the #codeStream
dictionary entry or coded
functionObject. Here it is the amount of time waiting for the resulting library in
sub-dictionary to become available. However, in some cases the
file server might have a large delay so this fileModificationSkew
has to be set
to the maximum expected value.
In this release the behaviour has been changed in that there is an additional
which is the maximum number of times the code checks after waiting
seconds. With this behaviour the fileModificationSkew
can now be set to a much lower value (minimum 1).
This above problem is only relevant for NFS mounted disks and multi-node
runs. Single-node runs will have a consistent view of the files for all cores so if
the master has finished compiling the code the slaves will see the same
For distributed runs, e.g. using different roots for different cores - see the
$FOAM_TUTORIALS/IO/fileHandler tutorial. Here the code needs to be
compiled on all cores anyway so there should be no synchronisation problem.
Updated ADIOS2 function object
The adiosWrite function object has been rewritten to use the ADIOS2 library for
parallel IO and is now available as a regular OpenFOAM module
The implementation supports checkpointing and restart read more...
More tests at scale are required and will be conducted as part of the activities
of the HPC Technical Committee