Skip to content

Commit 19324b5

Browse files
committed
new pncio driver
1 parent 43c1210 commit 19324b5

File tree

188 files changed

+18847
-4044
lines changed

Some content is hidden

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

188 files changed

+18847
-4044
lines changed

.github/workflows/mac_mpich.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,42 @@ jobs:
142142
run: |
143143
cd ${GITHUB_WORKSPACE}
144144
make ptests
145+
- name: Build PnetCDF (default configuration)
146+
run: |
147+
cd ${GITHUB_WORKSPACE}
148+
export PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/bin:${PATH}"
149+
export LD_LIBRARY_PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/lib:${LD_LIBRARY_PATH}"
150+
make distclean
151+
rm -rf pnetcdf_output
152+
mkdir -p pnetcdf_output
153+
./configure --disable-fortran \
154+
--with-mpi=${GITHUB_WORKSPACE}/MPICH \
155+
TESTOUTDIR=${GITHUB_WORKSPACE}/pnetcdf_output
156+
make -j 8 tests
157+
- name: Print config.log (default configuration)
158+
if: ${{ always() }}
159+
run: |
160+
cat ${GITHUB_WORKSPACE}/config.log
161+
- name: make check (default configuration)
162+
run: |
163+
cd ${GITHUB_WORKSPACE}
164+
make check
165+
- name: Print test log files (default configuration)
166+
if: ${{ always() }}
167+
run: |
168+
cd ${GITHUB_WORKSPACE}
169+
fname=`find src test examples benchmarks -type f -name "*.log"`
170+
for f in $fname ; do \
171+
bname=`basename $f` ; \
172+
if test "x$bname" != xconfig.log ; then \
173+
echo "-------- dump $f ----------------------------" ; \
174+
cat $f ; \
175+
fi ; \
176+
done
177+
- name: make ptests (default configuration)
178+
run: |
179+
cd ${GITHUB_WORKSPACE}
180+
make ptests
145181
- name: make distcheck
146182
run: |
147183
cd ${GITHUB_WORKSPACE}

.github/workflows/mac_openmpi.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,42 @@ jobs:
144144
run: |
145145
cd ${GITHUB_WORKSPACE}
146146
make ptests
147+
- name: Build PnetCDF (default configuration)
148+
run: |
149+
cd ${GITHUB_WORKSPACE}
150+
export PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/bin:${PATH}"
151+
export LD_LIBRARY_PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/lib:${LD_LIBRARY_PATH}"
152+
make distclean
153+
rm -rf pnetcdf_output
154+
mkdir -p pnetcdf_output
155+
./configure --disable-fortran \
156+
--with-mpi=${GITHUB_WORKSPACE}/OPENMPI \
157+
TESTOUTDIR=${GITHUB_WORKSPACE}/pnetcdf_output
158+
make -j 8 tests
159+
- name: Print config.log (default configuration)
160+
if: ${{ always() }}
161+
run: |
162+
cat ${GITHUB_WORKSPACE}/config.log
163+
- name: make check (default configuration)
164+
run: |
165+
cd ${GITHUB_WORKSPACE}
166+
make check
167+
- name: Print test log files (default configuration)
168+
if: ${{ always() }}
169+
run: |
170+
cd ${GITHUB_WORKSPACE}
171+
fname=`find src test examples benchmarks -type f -name "*.log"`
172+
for f in $fname ; do \
173+
bname=`basename $f` ; \
174+
if test "x$bname" != xconfig.log ; then \
175+
echo "-------- dump $f ----------------------------" ; \
176+
cat $f ; \
177+
fi ; \
178+
done
179+
- name: make ptests (default configuration)
180+
run: |
181+
cd ${GITHUB_WORKSPACE}
182+
make ptests
147183
- name: make distcheck
148184
run: |
149185
cd ${GITHUB_WORKSPACE}

.github/workflows/ubuntu_mpich.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,39 @@ jobs:
154154
run: |
155155
cd ${GITHUB_WORKSPACE}
156156
make ptests
157+
- name: Build PnetCDF (default configuration)
158+
run: |
159+
cd ${GITHUB_WORKSPACE}
160+
export PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/bin:${PATH}"
161+
export LD_LIBRARY_PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/lib:${LD_LIBRARY_PATH}"
162+
make distclean
163+
./configure --prefix=${GITHUB_WORKSPACE}/PnetCDF \
164+
--with-mpi=${GITHUB_WORKSPACE}/MPICH
165+
make -j 8 tests
166+
- name: Print config.log (default configuration)
167+
if: ${{ always() }}
168+
run: |
169+
cat ${GITHUB_WORKSPACE}/config.log
170+
- name: make check (default configuration)
171+
run: |
172+
cd ${GITHUB_WORKSPACE}
173+
make check
174+
- name: Print test log files (default configuration)
175+
if: ${{ always() }}
176+
run: |
177+
cd ${GITHUB_WORKSPACE}
178+
fname=`find src test examples benchmarks -type f -name "*.log"`
179+
for f in $fname ; do \
180+
bname=`basename $f` ; \
181+
if test "x$bname" != xconfig.log ; then \
182+
echo "-------- dump $f ----------------------------" ; \
183+
cat $f ; \
184+
fi ; \
185+
done
186+
- name: make ptests (default configuration)
187+
run: |
188+
cd ${GITHUB_WORKSPACE}
189+
make ptests
157190
- name: make distcheck
158191
run: |
159192
cd ${GITHUB_WORKSPACE}

.github/workflows/ubuntu_openmpi.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,41 @@ jobs:
150150
run: |
151151
cd ${GITHUB_WORKSPACE}
152152
make ptests
153+
- name: Build PnetCDF (default configuration)
154+
run: |
155+
cd ${GITHUB_WORKSPACE}
156+
export PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/bin:${PATH}"
157+
export LD_LIBRARY_PATH="${GITHUB_WORKSPACE}/AUTOTOOLS/lib:${LD_LIBRARY_PATH}"
158+
make distclean
159+
mkdir -p pnetcdf_output
160+
./configure --prefix=${GITHUB_WORKSPACE}/PnetCDF \
161+
--with-mpi=${GITHUB_WORKSPACE}/OPENMPI \
162+
TESTOUTDIR=${GITHUB_WORKSPACE}/pnetcdf_output
163+
make -j 8 tests
164+
- name: Print config.log (default configuration)
165+
if: ${{ always() }}
166+
run: |
167+
cat ${GITHUB_WORKSPACE}/config.log
168+
- name: make check (default configuration)
169+
run: |
170+
cd ${GITHUB_WORKSPACE}
171+
make check
172+
- name: Print test log files (default configuration)
173+
if: ${{ always() }}
174+
run: |
175+
cd ${GITHUB_WORKSPACE}
176+
fname=`find src test examples benchmarks -type f -name "*.log"`
177+
for f in $fname ; do \
178+
bname=`basename $f` ; \
179+
if test "x$bname" != xconfig.log ; then \
180+
echo "-------- dump $f ----------------------------" ; \
181+
cat $f ; \
182+
fi ; \
183+
done
184+
- name: make ptests (default configuration)
185+
run: |
186+
cd ${GITHUB_WORKSPACE}
187+
make ptests
153188
- name: make distcheck
154189
run: |
155190
cd ${GITHUB_WORKSPACE}

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_use_mpi_io=true"
50+
DRIVER_OUT_FILE="${OUT_PREFIX}.mpio"
51+
driver_hint=" MPIO"
52+
else
53+
USEMPIO_HINTS="nc_use_mpi_io=false"
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

0 commit comments

Comments
 (0)