[mpich] MPICH primary repository branch, master, updated. v3.1-47-ge45b4c8
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "MPICH primary repository". The branch, master has been updated via e45b4c853e02a0d702a3eea800967903a3bad419 (commit) from a9eca8fe6f800204a4b104098e7e519b7ef65f26 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.mpich.org/mpich.git/commitdiff/e45b4c853e02a0d702a3eea800967903a3... commit e45b4c853e02a0d702a3eea800967903a3bad419 Author: Rob Latham <[email protected]> Date: Fri Mar 14 11:53:40 2014 -0500 Feature check for scalable resize if we know the underlying file system supports "resize from one", then we do not need the non-aggregator processes to open the file Signed-off-by: Paul Coffman <[email protected]> diff --git a/src/mpi/romio/adio/ad_nfs/ad_nfs_features.c b/src/mpi/romio/adio/ad_nfs/ad_nfs_features.c index 5fb42da..05b061a 100644 --- a/src/mpi/romio/adio/ad_nfs/ad_nfs_features.c +++ b/src/mpi/romio/adio/ad_nfs/ad_nfs_features.c @@ -17,6 +17,7 @@ int ADIOI_NFS_Feature(ADIO_File fd, int flag) return 1; case ADIO_SCALABLE_OPEN: case ADIO_UNLINK_AFTER_CLOSE: + case ADIO_SCALABLE_RESIZE: default: return 0; } diff --git a/src/mpi/romio/adio/ad_pvfs2/ad_pvfs2_features.c b/src/mpi/romio/adio/ad_pvfs2/ad_pvfs2_features.c index 3ce72f3..89a82c1 100644 --- a/src/mpi/romio/adio/ad_pvfs2/ad_pvfs2_features.c +++ b/src/mpi/romio/adio/ad_pvfs2/ad_pvfs2_features.c @@ -11,6 +11,7 @@ int ADIOI_PVFS2_Feature(ADIO_File fd, int flag) { switch(flag) { case ADIO_SCALABLE_OPEN: + case ADIO_SCALABLE_RESIZE: return 1; case ADIO_SHARED_FP: case ADIO_LOCKS: diff --git a/src/mpi/romio/adio/common/ad_features.c b/src/mpi/romio/adio/common/ad_features.c index 571f2a5..480a42c 100644 --- a/src/mpi/romio/adio/common/ad_features.c +++ b/src/mpi/romio/adio/common/ad_features.c @@ -15,6 +15,7 @@ int ADIOI_GEN_Feature(ADIO_File fd, int flag) case ADIO_DATA_SIEVING_WRITES: case ADIO_UNLINK_AFTER_CLOSE: case ADIO_TWO_PHASE: + case ADIO_SCALABLE_RESIZE: return 1; break; case ADIO_SCALABLE_OPEN: diff --git a/src/mpi/romio/adio/include/adio.h b/src/mpi/romio/adio/include/adio.h index f2e68b4..a25855d 100644 --- a/src/mpi/romio/adio/include/adio.h +++ b/src/mpi/romio/adio/include/adio.h @@ -317,6 +317,8 @@ typedef struct { #define ADIO_TWO_PHASE 306 /* file system implements some version of two-phase collective buffering with aggregation */ +#define ADIO_SCALABLE_RESIZE 307 /* file system supports resizing from one + processor (nfs, e.g. does not) */ /* for default file permissions */ #define ADIO_PERM_NULL -1 diff --git a/src/mpi/romio/mpi-io/set_size.c b/src/mpi/romio/mpi-io/set_size.c index c15b71b..e36c1f9 100644 --- a/src/mpi/romio/mpi-io/set_size.c +++ b/src/mpi/romio/mpi-io/set_size.c @@ -78,7 +78,11 @@ int MPI_File_set_size(MPI_File fh, MPI_Offset size) } /* --END ERROR HANDLING-- */ - ADIOI_TEST_DEFERRED(adio_fh, "MPI_File_set_size", &error_code); + if (ADIO_Feature(adio_fh, ADIO_SCALABLE_RESIZE)) { + /* rare stupid file systems (like NFS) need to carry out resize on all + * processes */ + ADIOI_TEST_DEFERRED(adio_fh, "MPI_File_set_size", &error_code); + } ADIO_Resize(adio_fh, size, &error_code); /* TODO: what to do with error code? */ ----------------------------------------------------------------------- Summary of changes: src/mpi/romio/adio/ad_nfs/ad_nfs_features.c | 1 + src/mpi/romio/adio/ad_pvfs2/ad_pvfs2_features.c | 1 + src/mpi/romio/adio/common/ad_features.c | 1 + src/mpi/romio/adio/include/adio.h | 2 ++ src/mpi/romio/mpi-io/set_size.c | 6 +++++- 5 files changed, 10 insertions(+), 1 deletions(-) hooks/post-receive -- MPICH primary repository
participants (1)
-
noreply@mpich.org