Skip to content

Commit a95e7d5

Browse files
committed
pncio, a new I/O driver
1 parent 059d594 commit a95e7d5

File tree

182 files changed

+18551
-4001
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

182 files changed

+18551
-4001
lines changed

DEVELOPER_NOTES.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,12 +149,17 @@
149149
10. Generate SHA1 checksums
150150
* Run command:
151151
```
152-
openssl sha1 pnetcdf-1.11.0.tar.gz`
152+
openssl sha1 pnetcdf-1.11.0.tar.gz
153153
```
154154
* Example command-line output:
155155
```
156156
SHA1(pnetcdf-1.11.0.tar.gz)= 495d42f0a41abbd09d276262dce0f7c1c535968a
157157
```
158+
* Or use SHA 256
159+
```
160+
sha256sum pnetcdf-1.11.0.tar.gz
161+
a18a1a43e6c4fd7ef5827dbe90e9dcf1363b758f513af1f1356ed6c651195a9f pnetcdf-1.11.0.tar.gz
162+
```
158163
11. Update PnetCDF Web Page
159164
* https://github.com/Parallel-NetCDF/Parallel-NetCDF.github.io
160165
* Create a new file of release note Parallel-NetCDF.github.io/Release_notes/1.11.0.md.

benchmarks/C/Makefile.am

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,30 @@ CLEANFILES = core core.* *.gcda *.gcno *.gcov gmon.out \
4040
# be used to compare NetCDF4 performance against PnetCDF.
4141
EXTRA_DIST = parallel_run.sh netcdf_put_vara.c
4242

43-
ptest ptests ptest4: $(check_PROGRAMS)
43+
ptest ptest4: $(check_PROGRAMS)
4444
@echo "==========================================================="
4545
@echo " $(subdir): Parallel testing on 4 MPI processes"
4646
@echo "==========================================================="
4747
@$(TESTS_ENVIRONMENT) \
4848
$(srcdir)/parallel_run.sh 4 || exit 1
4949

50-
ptest2 ptest6 ptest8 ptest10:
50+
ptest2: $(check_PROGRAMS)
51+
@echo "==========================================================="
52+
@echo " $(subdir): Parallel testing on 2 MPI processes"
53+
@echo "==========================================================="
54+
@$(TESTS_ENVIRONMENT) \
55+
$(srcdir)/parallel_run.sh 2 || exit 1
56+
57+
ptest10: $(check_PROGRAMS)
58+
@echo "==========================================================="
59+
@echo " $(subdir): Parallel testing on 10 MPI processes"
60+
@echo "==========================================================="
61+
@$(TESTS_ENVIRONMENT) \
62+
$(srcdir)/parallel_run.sh 10 || exit 1
63+
64+
ptest6 ptest8:
65+
66+
ptests: ptest2 ptest4 ptest10
5167

5268
# build check targets but not invoke
5369
tests-local: all $(check_PROGRAMS)

benchmarks/C/parallel_run.sh

Lines changed: 90 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,18 @@ set -e
1010
VALIDATOR=../../src/utils/ncvalidator/ncvalidator
1111
NCMPIDIFF=../../src/utils/ncmpidiff/ncmpidiff
1212

13-
# remove file system type prefix if there is any
14-
OUTDIR=`echo "$TESTOUTDIR" | cut -d: -f2-`
15-
1613
MPIRUN=`echo ${TESTMPIRUN} | ${SED} -e "s/NP/$1/g"`
1714
# echo "MPIRUN = ${MPIRUN}"
1815
# echo "check_PROGRAMS=${check_PROGRAMS}"
1916

17+
# remove file system type prefix if there is any
18+
OUTDIR=`echo "$TESTOUTDIR" | cut -d: -f2-`
19+
20+
# let NTHREADS=$1*6-1
21+
NTHREADS=`expr $1 \* 6 - 1`
22+
2023
# echo "PNETCDF_DEBUG = ${PNETCDF_DEBUG}"
21-
if test ${PNETCDF_DEBUG} = 1 ; then
24+
if test "x${PNETCDF_DEBUG}" = x1 ; then
2225
safe_modes="0 1"
2326
else
2427
safe_modes="0"
@@ -27,60 +30,112 @@ fi
2730
# prevent user environment setting of PNETCDF_HINTS to interfere
2831
unset PNETCDF_HINTS
2932

33+
fixed_length=23
34+
3035
for i in ${check_PROGRAMS} ; do
36+
3137
for j in ${safe_modes} ; do
32-
for intra_aggr in 0 1 ; do
3338
if test "$j" = 1 ; then # test only in safe mode
34-
export PNETCDF_HINTS="romio_no_indep_rw=true"
39+
SAFE_HINTS="romio_no_indep_rw=true"
40+
safe_hint=" SAFE"
3541
else
36-
export PNETCDF_HINTS=
42+
SAFE_HINTS="romio_no_indep_rw=false"
43+
safe_hint="NOSAFE"
3744
fi
45+
OUT_PREFIX="${TESTOUTDIR}/$i"
46+
47+
for mpiio_mode in 0 1 ; do
48+
if test "$mpiio_mode" = 1 ; then
49+
USEMPIO_HINTS="nc_pncio=disable"
50+
DRIVER_OUT_FILE="${OUT_PREFIX}.mpio"
51+
driver_hint=" MPIO"
52+
else
53+
USEMPIO_HINTS="nc_pncio=enable"
54+
DRIVER_OUT_FILE="${OUT_PREFIX}.pncio"
55+
driver_hint="PNCIO"
56+
fi
57+
for intra_aggr in 0 1 ; do
3858
if test "$intra_aggr" = 1 ; then
39-
export PNETCDF_HINTS="${PNETCDF_HINTS};nc_num_aggrs_per_node=2"
59+
INA_HINTS="nc_num_aggrs_per_node=2"
60+
INA_OUT_FILE="${DRIVER_OUT_FILE}.ina"
61+
ina_hint=" INA"
62+
else
63+
INA_HINTS="nc_num_aggrs_per_node=0"
64+
INA_OUT_FILE="${DRIVER_OUT_FILE}"
65+
ina_hint="NOINA"
66+
fi
67+
68+
OUT_FILE=$INA_OUT_FILE
69+
TEST_OPTS="$safe_hint $driver_hint $ina_hint"
70+
71+
PNETCDF_HINTS=
72+
if test "x$SAFE_HINTS" != x ; then
73+
PNETCDF_HINTS="$SAFE_HINTS"
4074
fi
75+
if test "x$USEMPIO_HINTS" != x ; then
76+
PNETCDF_HINTS="$USEMPIO_HINTS;$PNETCDF_HINTS"
77+
fi
78+
if test "x$INA_HINTS" != x ; then
79+
PNETCDF_HINTS="$INA_HINTS;$PNETCDF_HINTS"
80+
fi
81+
82+
export PNETCDF_HINTS="$PNETCDF_HINTS"
4183
export PNETCDF_SAFE_MODE=$j
42-
# echo "set PNETCDF_SAFE_MODE ${PNETCDF_SAFE_MODE}"
84+
# echo "PNETCDF_SAFE_MODE=$PNETCDF_SAFE_MODE PNETCDF_HINTS=$PNETCDF_HINTS"
4385

44-
OPTS=
86+
CMD_OPTS="-q -l 10"
4587
if test "$i" = "aggregation" ; then
46-
OPTS="-b -c -i -j"
88+
CMD_OPTS+=" -b -c -i -j"
4789
fi
48-
# echo "${MPIRUN} ./$i -q ${OPTS} -l 10 ${TESTOUTDIR}/$i.nc"
49-
${MPIRUN} ./$i -q ${OPTS} -l 10 ${TESTOUTDIR}/$i.nc
90+
91+
# echo "${LINENO}: ${MPIRUN} ./$i $CMD_OPTS ${OUT_FILE}.nc"
92+
${MPIRUN} ./$i $CMD_OPTS ${OUT_FILE}.nc
93+
5094
if test $? = 0 ; then
51-
echo "PASS: C parallel run on $1 processes --------------- $i"
95+
printf "PASS: C nprocs=$1 %-${fixed_length}s -------- $i\n" "$TEST_OPTS"
5296
fi
5397

54-
# echo "--- validating file ${TESTOUTDIR}/$i.nc"
55-
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.nc
56-
# echo ""
98+
# echo "${LINENO}:--- validating file ${OUT_FILE}.nc"
99+
${TESTSEQRUN} ${VALIDATOR} -q ${OUT_FILE}.nc
57100

58101
if test "x${ENABLE_BURST_BUFFER}" = x1 ; then
59-
# echo "test burst buffering feature"
102+
# echo "---- test burst buffering feature"
60103
saved_PNETCDF_HINTS=${PNETCDF_HINTS}
61104
export PNETCDF_HINTS="${PNETCDF_HINTS};nc_burst_buf=enable;nc_burst_buf_dirname=${TESTOUTDIR};nc_burst_buf_overwrite=enable"
62-
${MPIRUN} ./$i -q -l 10 ${TESTOUTDIR}/$i.bb.nc
105+
# echo "${LINENO}: ${MPIRUN} ./$i ${OUT_FILE}.bb.nc"
106+
${MPIRUN} ./$i $CMD_OPTS ${OUT_FILE}.bb.nc
107+
63108
if test $? = 0 ; then
64-
echo "PASS: C parallel run on $1 processes --------------- $i"
109+
printf "PASS: C nprocs=$1 %-${fixed_length}s -------- $i\n" "$TEST_OPTS BB"
65110
fi
111+
66112
export PNETCDF_HINTS=${saved_PNETCDF_HINTS}
67113

68-
# echo "--- validating file ${TESTOUTDIR}/$i.bb.nc"
69-
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.bb.nc
114+
# echo "${LINENO}: --- validating file ${OUT_FILE}.bb.nc"
115+
${TESTSEQRUN} ${VALIDATOR} -q ${OUT_FILE}.bb.nc
70116

71-
# echo "--- ncmpidiff $i.nc $i.bb.nc ---"
72-
${MPIRUN} ${NCMPIDIFF} -q ${TESTOUTDIR}/$i.nc ${TESTOUTDIR}/$i.bb.nc
117+
DIFF_OPT="-q"
118+
# echo "${LINENO}: --- ncmpidiff $DIFF_OPT $OUT_FILE.nc $OUT_FILE.bb.nc ---"
119+
${MPIRUN} ${NCMPIDIFF} $DIFF_OPT $OUT_FILE.nc $OUT_FILE.bb.nc
73120
fi
74121

75-
if test "x${ENABLE_NETCDF4}" = x1 ; then
76-
# echo "test netCDF-4 feature"
77-
${MPIRUN} ./$i -q -l 10 ${TESTOUTDIR}/$i.nc4 4
78-
# Validator does not support nc4
79-
fi
80-
done
81-
done
82-
rm -f ${OUTDIR}/$i.nc
83-
rm -f ${OUTDIR}/$i.bb.nc
84-
rm -f ${OUTDIR}/$i.nc4
85-
done
122+
if test "x${ENABLE_NETCDF4}" = x1 ; then
123+
# echo "${LINENO}: test netCDF-4 feature"
124+
${MPIRUN} ./$i $CMD_OPTS ${OUT_FILE}.nc4 4
125+
# Validator does not support nc4
126+
fi
127+
done # intra_aggr
128+
done # mpiio_mode
129+
130+
DIFF_OPT="-q"
131+
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc ---"
132+
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc
133+
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc ---"
134+
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc
135+
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.ina.nc ---"
136+
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.ina.nc
137+
138+
done # safe_modes
139+
rm -f ${OUTDIR}/$i*nc*
140+
done # check_PROGRAMS
86141

benchmarks/FLASH-IO/Makefile.am

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,30 @@ if BUILD_BENCHMARKS_IN_PNETCDF
9191
endif
9292

9393

94-
ptest ptests ptest4: $(check_PROGRAMS)
94+
ptest ptest4: $(check_PROGRAMS)
9595
@echo "==========================================================="
9696
@echo " $(subdir): Parallel testing on 4 MPI processes"
9797
@echo "==========================================================="
9898
@$(TESTS_ENVIRONMENT) \
9999
$(srcdir)/parallel_run.sh 4 || exit 1
100100

101-
ptest2 ptest6 ptest8 ptest10:
101+
ptest2: $(check_PROGRAMS)
102+
@echo "==========================================================="
103+
@echo " $(subdir): Parallel testing on 2 MPI processes"
104+
@echo "==========================================================="
105+
@$(TESTS_ENVIRONMENT) \
106+
$(srcdir)/parallel_run.sh 2 || exit 1
107+
108+
ptest10: $(check_PROGRAMS)
109+
@echo "==========================================================="
110+
@echo " $(subdir): Parallel testing on 10 MPI processes"
111+
@echo "==========================================================="
112+
@$(TESTS_ENVIRONMENT) \
113+
$(srcdir)/parallel_run.sh 10 || exit 1
114+
115+
ptest6 ptest8:
116+
117+
ptests: ptest2 ptest4 ptest10
102118

103119
# build check targets but not invoke
104120
tests-local: all $(check_PROGRAMS)

0 commit comments

Comments
 (0)