NC_SHARE is a legacy flag inherited from NetCDF-3, whose purpose is to
provide some degree of data consistency for multiple processes concurrently
accessing a shared file. To achieve a stronger consistency, user
applications are required to also synchronize the processes, such as
calling MPI_Barrier, together with nc_sync.
Because PnetCDF follows the MPI file consistency, which only addresses the
case when all file accesses are relative to a specific file handle created
from a collective open, NC_SHARE becomes invalid. Note that NetCDF-3
supports only sequential I/O and thus has no collective file open per se.
Also see discussion in #107
This PR also deprecates --disable-file-sync. Similar to the above NC_SHARE
issue, this configure option alone does not provide a sufficient data consistency.
Users are suggested to call ncmpi_sync and MPI_Barrier to achieve a
desired consistency.
NC_SHARE is a legacy flag inherited from NetCDF-3, whose purpose is to provide some degree of data consistency for multiple processes concurrently accessing a shared file. To achieve a stronger consistency, user applications are required to also synchronize the processes, such as calling MPI_Barrier, together with nc_sync.
Because PnetCDF follows the MPI file consistency, which only addresses the case when all file accesses are relative to a specific file handle created from a collective open, NC_SHARE becomes invalid. Note that NetCDF-3 supports only sequential I/O and thus has no collective file open per se.
Also see discussion in #107
This PR also deprecates
--disable-file-sync
. Similar to the above NC_SHARE issue, this configure option alone does not provide a sufficient data consistency. Users are suggested to callncmpi_sync
andMPI_Barrier
to achieve a desired consistency.