[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