summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorRaymond Lu <songyulu@hdfgroup.org>2007-08-20 21:55:38 (GMT)
committerRaymond Lu <songyulu@hdfgroup.org>2007-08-20 21:55:38 (GMT)
commit6262a14f2e6f669f72e0212b4ce3654c9526f1dc (patch)
tree04eb74edc28e9abf1bfc1e9cf064291890b39c49 /config
parent2ab6b11aafaab9b09ba96781b19463e262990052 (diff)
downloadhdf5-6262a14f2e6f669f72e0212b4ce3654c9526f1dc.zip
hdf5-6262a14f2e6f669f72e0212b4ce3654c9526f1dc.tar.gz
hdf5-6262a14f2e6f669f72e0212b4ce3654c9526f1dc.tar.bz2
[svn-r14096] There're 3 changes in this checkin as below:
1. In H5Dwrite and H5Dread, let the data buffer point to a fake address if the application passes in an empty buffer. This is mainly for MPIO programs that some processes may not have any data to write or read but still participate the I/O. This solution solves some MPI's problem like the ChaMPIon on tungsten which doesn't support empty buffer. 2. The ChaMPIon on tungsten doesn't support complex derived MPI data type correctly and collective I/O when some processes don't have any data to write or read correctly. Detect the compiler "cmpicc" in the system-specific config file and set the variables for these two cases to false. The PHDF5 library already has set up a way to switch collective chunked I/O to independent under these two cases. 3. A bug fix - During the work of the optimization for compound data I/O, the case for switching collective chunked I/O to independent I/O was leftout. Fixed it by adding I/O caching to it in H5D_multi_chunk_collective_io in H5Dmpio.c. Tested on tungsten, cobalt, and kagiso for parallel; on linew and smirom for serial.
Diffstat (limited to 'config')
-rw-r--r--config/linux-gnulibc110
1 files changed, 10 insertions, 0 deletions
diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1
index 5ece750..015d079 100644
--- a/config/linux-gnulibc1
+++ b/config/linux-gnulibc1
@@ -116,6 +116,16 @@ fi
# Check MPICH settings
. $srcdir/config/mpich
+
+# The ChaMPIon on NCSA tungsten doesn't work correctly for either of the following
+# cases:
+# 1. collective I/O when some processes don't have any contributions;
+# 2. complex derived MPI data type.
+if test $CC_BASENAME = cmpicc; then
+ hdf5_mpi_special_collective_io_works=${hdf5_mpi_special_collective_io_works='no'}
+ hdf5_mpi_complex_derived_datatype_works=${hdf5_mpi_complex_derived_datatype_works='no'}
+fi
+
#Comment out the following line if your system supports collective IO when some processes
#don't have any contributions to IOs.
#hdf5_mpi_special_collective_io_works=${hdf5_mpi_special_collective_io_works='no'}