mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-19 16:50:46 +08:00
[svn-r13829] Some systems (only SGI Altix ProPack 4 discovered so far) doesn't return correct
file size from MPI_File_get_size. Bypass this problem by replacing it with stat. Add an option --disable-mpi-size in configure to indicate this function doesn't work properly. Add a test in testpar/t_mpi.c, too. If it returns wrong file size, print out a warning. Tested on kagiso (parallel) because already tested the same change to v1.6 on several platforms (kagiso, cobalt, copper, and sol).
This commit is contained in:
parent
2aa1084117
commit
1280f90f81
@ -189,6 +189,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -160,6 +160,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -154,6 +154,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -190,6 +190,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -176,6 +176,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
83
configure
vendored
83
configure
vendored
@ -922,6 +922,7 @@ CLEARFILEBUF
|
||||
USINGMEMCHECKER
|
||||
ADD_PARALLEL_FILES
|
||||
MPE
|
||||
MPI_GET_SIZE
|
||||
FILTERS
|
||||
USE_FILTER_SHUFFLE
|
||||
USE_FILTER_FLETCHER32
|
||||
@ -1600,6 +1601,11 @@ Optional Features:
|
||||
picky about it's memory operations and also disables
|
||||
the library's free space manager code. Default=no.
|
||||
--enable-parallel Search for MPI-IO and MPI support files
|
||||
--enable-mpi-size Some systems (only SGI Altix Propack 4 so far)
|
||||
return wrong value from MPI_File_get_size. By
|
||||
disabling this function, the library will replace it
|
||||
with stat to get the correct file size.
|
||||
[default=yes]
|
||||
--enable-filters=all Turn on all internal I/O filters. One may also
|
||||
specify a comma-separated list of filters or the
|
||||
word no. The default is all internal I/O filters.
|
||||
@ -7840,7 +7846,7 @@ ia64-*-hpux*)
|
||||
;;
|
||||
*-*-irix6*)
|
||||
# Find out which ABI we are using.
|
||||
echo '#line 7843 "configure"' > conftest.$ac_ext
|
||||
echo '#line 7849 "configure"' > conftest.$ac_ext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
(eval $ac_compile) 2>&5
|
||||
ac_status=$?
|
||||
@ -10114,11 +10120,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:10117: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:10123: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:10121: \$? = $ac_status" >&5
|
||||
echo "$as_me:10127: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -10382,11 +10388,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:10385: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:10391: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:10389: \$? = $ac_status" >&5
|
||||
echo "$as_me:10395: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -10486,11 +10492,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:10489: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:10495: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:10493: \$? = $ac_status" >&5
|
||||
echo "$as_me:10499: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@ -12866,7 +12872,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 12869 "configure"
|
||||
#line 12875 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@ -12966,7 +12972,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 12969 "configure"
|
||||
#line 12975 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@ -15318,11 +15324,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:15321: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:15327: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:15325: \$? = $ac_status" >&5
|
||||
echo "$as_me:15331: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -15422,11 +15428,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:15425: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:15431: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:15429: \$? = $ac_status" >&5
|
||||
echo "$as_me:15435: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@ -16992,11 +16998,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:16995: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:17001: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:16999: \$? = $ac_status" >&5
|
||||
echo "$as_me:17005: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -17096,11 +17102,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:17099: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:17105: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:17103: \$? = $ac_status" >&5
|
||||
echo "$as_me:17109: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@ -19294,11 +19300,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:19297: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:19303: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:19301: \$? = $ac_status" >&5
|
||||
echo "$as_me:19307: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -19562,11 +19568,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:19565: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:19571: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:19569: \$? = $ac_status" >&5
|
||||
echo "$as_me:19575: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -19666,11 +19672,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:19669: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:19675: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:19673: \$? = $ac_status" >&5
|
||||
echo "$as_me:19679: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@ -50292,6 +50298,34 @@ echo "${ECHO_T}yes" >&6; }
|
||||
echo "${ECHO_T}no" >&6; }
|
||||
fi
|
||||
|
||||
# Check whether --enable-mpi-size was given.
|
||||
if test "${enable_mpi_size+set}" = set; then
|
||||
enableval=$enable_mpi_size; MPI_GET_SIZE=$enableval
|
||||
fi
|
||||
|
||||
|
||||
{ echo "$as_me:$LINENO: checking if MPI_File_get_size is enabled" >&5
|
||||
echo $ECHO_N "checking if MPI_File_get_size is enabled... $ECHO_C" >&6; }
|
||||
|
||||
|
||||
case "X-$MPI_GET_SIZE" in
|
||||
X-no)
|
||||
{ echo "$as_me:$LINENO: result: no" >&5
|
||||
echo "${ECHO_T}no" >&6; }
|
||||
MPI_GET_SIZE=no
|
||||
;;
|
||||
X-yes|*)
|
||||
{ echo "$as_me:$LINENO: result: yes" >&5
|
||||
echo "${ECHO_T}yes" >&6; }
|
||||
MPI_GET_SIZE=yes
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define HAVE_MPI_GET_SIZE 1
|
||||
_ACEOF
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
{ echo "$as_me:$LINENO: checking if irregular hyperslab optimization code works inside MPI-IO" >&5
|
||||
echo $ECHO_N "checking if irregular hyperslab optimization code works inside MPI-IO... $ECHO_C" >&6; }
|
||||
|
||||
@ -53392,6 +53426,7 @@ CLEARFILEBUF!$CLEARFILEBUF$ac_delim
|
||||
USINGMEMCHECKER!$USINGMEMCHECKER$ac_delim
|
||||
ADD_PARALLEL_FILES!$ADD_PARALLEL_FILES$ac_delim
|
||||
MPE!$MPE$ac_delim
|
||||
MPI_GET_SIZE!$MPI_GET_SIZE$ac_delim
|
||||
FILTERS!$FILTERS$ac_delim
|
||||
USE_FILTER_SHUFFLE!$USE_FILTER_SHUFFLE$ac_delim
|
||||
USE_FILTER_FLETCHER32!$USE_FILTER_FLETCHER32$ac_delim
|
||||
@ -53426,7 +53461,7 @@ LIBOBJS!$LIBOBJS$ac_delim
|
||||
LTLIBOBJS!$LTLIBOBJS$ac_delim
|
||||
_ACEOF
|
||||
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 86; then
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 87; then
|
||||
break
|
||||
elif $ac_last_try; then
|
||||
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
|
||||
|
31
configure.in
31
configure.in
@ -2510,6 +2510,37 @@ if test -n "$PARALLEL"; then
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
dnl ----------------------------------------------------------------------
|
||||
dnl Set the flag to indicate that the MPI_File_get_size() function
|
||||
dnl works. The default is enabled unless the user knows the function
|
||||
dnl doesn't work on the system and disables it. (This flag should be set
|
||||
dnl for all machines except for SGI Altix Propack 4 where the function
|
||||
dnl doesn't return correct file size.)
|
||||
dnl
|
||||
AC_ARG_ENABLE([mpi-size],
|
||||
[AC_HELP_STRING([--enable-mpi-size],
|
||||
[Some systems (only SGI Altix Propack 4 so far) return wrong value
|
||||
from MPI_File_get_size. By disabling this function, the library
|
||||
will replace it with stat to get the correct file size.
|
||||
[default=yes]])],
|
||||
[MPI_GET_SIZE=$enableval])
|
||||
|
||||
AC_MSG_CHECKING([if MPI_File_get_size is enabled])
|
||||
|
||||
AC_SUBST(MPI_GET_SIZE)
|
||||
case "X-$MPI_GET_SIZE" in
|
||||
X-no)
|
||||
AC_MSG_RESULT([no])
|
||||
MPI_GET_SIZE=no
|
||||
;;
|
||||
X-yes|*)
|
||||
AC_MSG_RESULT([yes])
|
||||
MPI_GET_SIZE=yes
|
||||
AC_DEFINE([HAVE_MPI_GET_SIZE], [1],
|
||||
[Define if MPI_File_get_size works correctly])
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl ----------------------------------------------------------------------
|
||||
dnl Check to see whether the complicate MPI derived datatype works.
|
||||
dnl In Dec. 20th, 2004, we found that IBM's MPIO implemention didn't
|
||||
|
@ -154,6 +154,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -164,6 +164,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -154,6 +154,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -217,6 +217,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -210,6 +210,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -167,6 +167,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -164,6 +164,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -160,6 +160,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -154,6 +154,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -179,6 +179,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -170,6 +170,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -154,6 +154,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -164,6 +164,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -154,6 +154,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -184,6 +184,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -174,6 +174,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -113,7 +113,7 @@ herr_t H5TBmake_table( const char *table_title,
|
||||
}
|
||||
|
||||
/* Create a simple data space with unlimited size */
|
||||
if ( (sid = H5Screate_simple( 1, dims, maxdims )) < 0 )
|
||||
if ( (sid = H5Screate_simple( 1, dims, maxdims )) < 0 )
|
||||
return -1;
|
||||
|
||||
/* Modify dataset creation properties, i.e. enable chunking */
|
||||
@ -249,7 +249,6 @@ herr_t H5TBmake_table( const char *table_title,
|
||||
if ( H5Tclose( mem_type_id ) < 0 )
|
||||
return -1;
|
||||
|
||||
|
||||
return 0;
|
||||
|
||||
/* error zone, gracefully close */
|
||||
@ -3281,7 +3280,8 @@ herr_t H5TBget_table_info ( hid_t loc_id,
|
||||
if ( H5LTget_attribute(loc_id,dset_name,"NROWS",H5T_NATIVE_LLONG,n)<0)
|
||||
return -1;
|
||||
|
||||
*nrecords = *n;
|
||||
/**nrecords = *n;*/
|
||||
*nrecords = n[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -180,6 +180,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -190,6 +190,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -354,7 +354,6 @@ int test_table(hid_t fid, int write)
|
||||
PASSED();
|
||||
}
|
||||
|
||||
|
||||
TESTING2("reading table");
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -1355,7 +1354,6 @@ int test_table(hid_t fid, int write)
|
||||
PASSED();
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* Functions tested:
|
||||
@ -1374,7 +1372,6 @@ int test_table(hid_t fid, int write)
|
||||
chunk_size,fill,compress,wbuf)<0)
|
||||
goto out;
|
||||
|
||||
|
||||
/* delete the field */
|
||||
if ( H5TBdelete_field(fid, "table14", "Pressure" ) < 0 )
|
||||
goto out;
|
||||
|
@ -161,6 +161,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -182,6 +182,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -205,6 +205,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -942,7 +942,10 @@ H5FD_mpio_open(const char *name, unsigned flags, hid_t fapl_id,
|
||||
MPI_Comm comm_dup=MPI_COMM_NULL;
|
||||
MPI_Info info_dup=MPI_INFO_NULL;
|
||||
H5FD_t *ret_value; /* Return value */
|
||||
|
||||
#ifndef H5_HAVE_MPI_GET_SIZE
|
||||
struct stat stat_buf;
|
||||
#endif
|
||||
|
||||
FUNC_ENTER_NOAPI(H5FD_mpio_open, NULL)
|
||||
|
||||
#ifdef H5FDmpio_DEBUG
|
||||
@ -1016,9 +1019,18 @@ H5FD_mpio_open(const char *name, unsigned flags, hid_t fapl_id,
|
||||
|
||||
/* Only processor p0 will get the filesize and broadcast it. */
|
||||
if (mpi_rank == 0) {
|
||||
/* Get current file size */
|
||||
/* Get current file size. If MPI_File_get_size is disabled in configuration
|
||||
* because it doesn't return correct value (SGI Altix Propack 4),
|
||||
* use stat to get the file size. */
|
||||
#ifdef H5_HAVE_MPI_GET_SIZE
|
||||
if (MPI_SUCCESS != (mpi_code=MPI_File_get_size(fh, &size)))
|
||||
HMPI_GOTO_ERROR(NULL, "MPI_File_get_size failed", mpi_code)
|
||||
#else
|
||||
if((mpi_code=HDstat(name, &stat_buf))<0)
|
||||
HMPI_GOTO_ERROR(NULL, "stat failed", mpi_code)
|
||||
/* Hopefully this casting is safe */
|
||||
size = (MPI_Offset)(stat_buf.st_size);
|
||||
#endif
|
||||
} /* end if */
|
||||
|
||||
/* Broadcast file size */
|
||||
|
@ -210,6 +210,9 @@
|
||||
/* Define to 1 if you have the <mpe.h> header file. */
|
||||
#undef HAVE_MPE_H
|
||||
|
||||
/* Define if MPI_File_get_size works correctly */
|
||||
#undef HAVE_MPI_GET_SIZE
|
||||
|
||||
/* Define if `MPI_Comm_c2f' and `MPI_Comm_f2c' exists */
|
||||
#undef HAVE_MPI_MULTI_LANG_Comm
|
||||
|
||||
|
@ -235,6 +235,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -444,6 +444,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -197,6 +197,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -36,7 +36,11 @@ get_filesize(const char *filename)
|
||||
int mpierr;
|
||||
MPI_File fd;
|
||||
MPI_Offset filesize;
|
||||
#ifndef H5_HAVE_MPI_GET_SIZE
|
||||
struct stat stat_buf;
|
||||
#endif
|
||||
|
||||
#ifdef H5_HAVE_MPI_GET_SIZE
|
||||
mpierr = MPI_File_open(MPI_COMM_SELF, (char*)filename, MPI_MODE_RDONLY,
|
||||
MPI_INFO_NULL, &fd);
|
||||
VRFY((mpierr == MPI_SUCCESS), "");
|
||||
@ -46,6 +50,16 @@ get_filesize(const char *filename)
|
||||
|
||||
mpierr = MPI_File_close(&fd);
|
||||
VRFY((mpierr == MPI_SUCCESS), "");
|
||||
#else
|
||||
/* Some systems (only SGI Altix Propack 4 so far) doesn't return correct
|
||||
* file size for MPI_File_get_size. Use stat instead.
|
||||
*/
|
||||
if((mpierr=stat(filename, &stat_buf))<0)
|
||||
VRFY((mpierr == MPI_SUCCESS), "");
|
||||
|
||||
/* Hopefully this casting is safe */
|
||||
filesize = (MPI_Offset)(stat_buf.st_size);
|
||||
#endif
|
||||
|
||||
return(filesize);
|
||||
}
|
||||
|
@ -202,9 +202,11 @@ test_mpio_gb_file(char *filename)
|
||||
int ntimes; /* how many times */
|
||||
char *buf = NULL;
|
||||
char expected;
|
||||
MPI_Offset size;
|
||||
MPI_Offset mpi_off;
|
||||
MPI_Offset mpi_off_old;
|
||||
MPI_Status mpi_stat;
|
||||
struct stat stat_buf;
|
||||
int is_signed, sizeof_mpi_offset;
|
||||
|
||||
nerrs = 0;
|
||||
@ -376,6 +378,44 @@ test_mpio_gb_file(char *filename)
|
||||
*/
|
||||
mrc = MPI_Barrier(MPI_COMM_WORLD);
|
||||
VRFY((mrc==MPI_SUCCESS), "Sync before leaving test");
|
||||
|
||||
/*
|
||||
* Check if MPI_File_get_size works correctly. Some systems (only SGI Altix
|
||||
* Propack 4 so far) return wrong file size. It can be avoided by reconfiguring
|
||||
* with "--disable-mpi-size".
|
||||
*/
|
||||
#ifdef H5_HAVE_MPI_GET_SIZE
|
||||
printf("Test if MPI_File_get_size works correctly with %s\n", filename);
|
||||
|
||||
mrc = MPI_File_open(MPI_COMM_WORLD, filename, MPI_MODE_RDONLY, info, &fh);
|
||||
VRFY((mrc==MPI_SUCCESS), "");
|
||||
|
||||
if (MAINPROCESS){ /* only process 0 needs to check it*/
|
||||
mrc = MPI_File_get_size(fh, &size);
|
||||
VRFY((mrc==MPI_SUCCESS), "");
|
||||
|
||||
mrc=stat(filename, &stat_buf);
|
||||
VRFY((mrc==0), "");
|
||||
|
||||
/* Hopefully this casting is safe */
|
||||
if(size != (MPI_Offset)(stat_buf.st_size)) {
|
||||
printf("Warning: MPI_File_get_size doesn't return correct file size. To avoid using it in the library, reconfigure and rebuild the library with --disable-mpi-size.\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* close file and free the communicator */
|
||||
mrc = MPI_File_close(&fh);
|
||||
VRFY((mrc==MPI_SUCCESS), "MPI_FILE_CLOSE");
|
||||
|
||||
/*
|
||||
* one more sync to ensure all processes have done reading
|
||||
* before ending this test.
|
||||
*/
|
||||
mrc = MPI_Barrier(MPI_COMM_WORLD);
|
||||
VRFY((mrc==MPI_SUCCESS), "Sync before leaving test");
|
||||
#else
|
||||
printf("Skipped testing MPI_File_get_size because it's disabled\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
finish:
|
||||
|
@ -161,6 +161,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -178,6 +178,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -185,6 +185,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -183,6 +183,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -178,6 +178,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -189,6 +189,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -172,6 +172,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -192,6 +192,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -177,6 +177,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
@ -201,6 +201,7 @@ MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPE = @MPE@
|
||||
MPI_GET_SIZE = @MPI_GET_SIZE@
|
||||
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
|
Loading…
x
Reference in New Issue
Block a user