[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1-47-ge45b4c8
Service Account
noreply at mpich.org
Sat Mar 15 14:01:10 CDT 2014
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/e45b4c853e02a0d702a3eea800967903a3bad419
commit e45b4c853e02a0d702a3eea800967903a3bad419
Author: Rob Latham <robl at mcs.anl.gov>
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 <pkcoff at us.ibm.com>
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
More information about the commits
mailing list