Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions benchmarks/C/parallel_run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ unset PNETCDF_HINTS

fixed_length=23

TEST_MPIIO_MODES="0 1"

for i in ${check_PROGRAMS} ; do

for j in ${safe_modes} ; do
Expand All @@ -44,7 +46,7 @@ for i in ${check_PROGRAMS} ; do
fi
OUT_PREFIX="${TESTOUTDIR}/$i"

for mpiio_mode in 0 1 ; do
for mpiio_mode in ${TEST_MPIIO_MODES} ; do
if test "$mpiio_mode" = 1 ; then
USEMPIO_HINTS="nc_pncio=disable"
DRIVER_OUT_FILE="${OUT_PREFIX}.mpio"
Expand Down Expand Up @@ -128,12 +130,14 @@ for i in ${check_PROGRAMS} ; do
done # mpiio_mode

DIFF_OPT="-q"
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.ina.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.ina.nc
if test "x$TEST_MPIIO_MODES" = "x0 1" ; then
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc
fi
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.pncio.nc $OUT_PREFIX.pncio.ina.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.pncio.nc $OUT_PREFIX.pncio.ina.nc

done # safe_modes
rm -f ${OUTDIR}/$i*nc*
Expand Down
18 changes: 11 additions & 7 deletions benchmarks/FLASH-IO/parallel_run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ FILE_EXTS="ncmpi_chk_0000 ncmpi_plt_cnt_0000 ncmpi_plt_crn_0000"

fixed_length=23

TEST_MPIIO_MODES="0 1"

for i in ${check_PROGRAMS} ; do

for j in ${safe_modes} ; do
Expand All @@ -46,7 +48,7 @@ for i in ${check_PROGRAMS} ; do
fi
OUT_PREFIX="${TESTOUTDIR}/$i"

for mpiio_mode in 0 1 ; do
for mpiio_mode in ${TEST_MPIIO_MODES} ; do
if test "$mpiio_mode" = 1 ; then
USEMPIO_HINTS="nc_pncio=disable"
DRIVER_OUT_FILE="${OUT_PREFIX}.mpio"
Expand Down Expand Up @@ -134,12 +136,14 @@ for i in ${check_PROGRAMS} ; do
done # mpiio_mode

for ext in $FILE_EXTS ; do
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.$ext.nc $OUT_PREFIX.mpio.ina.$ext.nc ---"
$MPIRUN $NCMPIDIFF -q $OUT_PREFIX.mpio.$ext.nc $OUT_PREFIX.mpio.ina.$ext.nc
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.$ext.nc $OUT_PREFIX.pncio.$ext.nc ---"
$MPIRUN $NCMPIDIFF -q $OUT_PREFIX.mpio.$ext.nc $OUT_PREFIX.pncio.$ext.nc
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.$ext.nc $OUT_PREFIX.pncio.ina.$ext.nc ---"
$MPIRUN $NCMPIDIFF -q $OUT_PREFIX.mpio.$ext.nc $OUT_PREFIX.pncio.ina.$ext.nc
if test "x$TEST_MPIIO_MODES" = "x0 1" ; then
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.$ext.nc $OUT_PREFIX.mpio.ina.$ext.nc ---"
$MPIRUN $NCMPIDIFF -q $OUT_PREFIX.mpio.$ext.nc $OUT_PREFIX.mpio.ina.$ext.nc
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.$ext.nc $OUT_PREFIX.pncio.$ext.nc ---"
$MPIRUN $NCMPIDIFF -q $OUT_PREFIX.mpio.$ext.nc $OUT_PREFIX.pncio.$ext.nc
fi
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.pncio.$ext.nc $OUT_PREFIX.pncio.ina.$ext.nc ---"
$MPIRUN $NCMPIDIFF -q $OUT_PREFIX.pncio.$ext.nc $OUT_PREFIX.pncio.ina.$ext.nc
done # ext

done # safe_modes
Expand Down
18 changes: 11 additions & 7 deletions benchmarks/WRF-IO/parallel_run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ unset PNETCDF_HINTS

fixed_length=23

TEST_MPIIO_MODES="0 1"

for i in ${check_PROGRAMS} ; do

for j in ${safe_modes} ; do
Expand All @@ -44,7 +46,7 @@ for i in ${check_PROGRAMS} ; do
fi
OUT_PREFIX="${TESTOUTDIR}/$i"

for mpiio_mode in 0 1 ; do
for mpiio_mode in ${TEST_MPIIO_MODES} ; do
if test "$mpiio_mode" = 1 ; then
USEMPIO_HINTS="nc_pncio=disable"
DRIVER_OUT_FILE="${OUT_PREFIX}.mpio"
Expand Down Expand Up @@ -124,12 +126,14 @@ for i in ${check_PROGRAMS} ; do
done # mpiio_mode

DIFF_OPT="-q"
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.ina.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.ina.nc
if test "x$TEST_MPIIO_MODES" = "x0 1" ; then
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc
fi
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.pncio.nc $OUT_PREFIX.pncio.ina.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.pncio.nc $OUT_PREFIX.pncio.ina.nc

done # safe_modes
rm -f ${OUTDIR}/$i*nc*
Expand Down
8 changes: 4 additions & 4 deletions examples/parallel_run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -194,16 +194,16 @@ for i in ${check_PROGRAMS} ; do
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc.$j $OUT_PREFIX.mpio.ina.nc.$j
# echo "--- ncmpidiff $OUT_PREFIX.mpio.nc.$j $OUT_PREFIX.pncio.nc.$j ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc.$j $OUT_PREFIX.pncio.nc.$j
# echo "--- ncmpidiff $OUT_PREFIX.mpio.nc.$j $OUT_PREFIX.pncio.ina.nc.$j ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc.$j $OUT_PREFIX.pncio.ina.nc.$j
# echo "--- ncmpidiff $OUT_PREFIX.pncio.nc.$j $OUT_PREFIX.pncio.ina.nc.$j ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.pncio.nc.$j $OUT_PREFIX.pncio.ina.nc.$j
done
else
# echo "${LINENO}: --- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.mpio.ina.nc
# echo "--- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.nc
# echo "--- ncmpidiff $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.ina.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.mpio.nc $OUT_PREFIX.pncio.ina.nc
# echo "--- ncmpidiff $OUT_PREFIX.pncio.nc $OUT_PREFIX.pncio.ina.nc ---"
$MPIRUN $NCMPIDIFF $DIFF_OPT $OUT_PREFIX.pncio.nc $OUT_PREFIX.pncio.ina.nc
fi

done # safe_modes
Expand Down
4 changes: 4 additions & 0 deletions src/dispatchers/error_codes.c
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,8 @@ ncmpi_strerror(int err)
return "Variable fill value is inconsistent among processes.";
case NC_EMULTIDEFINE_CMODE:
return "File create mode is inconsistent among processes.";
case NC_EMULTIDEFINE_HINTS:
return "I/O hints are not consistent among processes.";
case NC_EBADLOG:
return "Unrecognized burst buffering log file format.";
case NC_EFLUSHED:
Expand Down Expand Up @@ -747,6 +749,8 @@ ncmpi_strerrno(int err)
case (NC_EMULTIDEFINE_VAR_FILL_MODE): return "NC_EMULTIDEFINE_VAR_FILL_MODE";
case (NC_EMULTIDEFINE_VAR_FILL_VALUE): return "NC_EMULTIDEFINE_VAR_FILL_VALUE";
case (NC_EMULTIDEFINE_CMODE): return "NC_EMULTIDEFINE_CMODE";
case (NC_EMULTIDEFINE_HINTS): return "NC_EMULTIDEFINE_HINTS";

default:
sprintf(unknown_str,"Unknown code %d",err);
}
Expand Down
33 changes: 16 additions & 17 deletions src/drivers/pncio/pncio.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,33 +101,32 @@
#define PNCIO_TYPE_OVERLAP 0x00000002 /* if contains overlapping regions */
#define PNCIO_TYPE_NEGATIVE 0x00000004 /* if one of displacements is negative */

enum {
PNCIO_HINT_AUTO = 0,
PNCIO_HINT_ENABLE = 1,
PNCIO_HINT_DISABLE = 2
};
#define PNCIO_HINT_AUTO -1
#define PNCIO_HINT_DISABLE 0
#define PNCIO_HINT_ENABLE 1

typedef struct {
int striping_factor;
int striping_unit;
int cb_read;
int cb_write;
int start_iodevice;
int cb_nodes;
int cb_buffer_size;
int ds_read;
int ds_write;
int no_indep_rw;
int ind_rd_buffer_size;
int ind_wr_buffer_size;
int start_iodevice;

int romio_cb_read;
int romio_cb_write;
int romio_ds_read;
int romio_ds_write;
int romio_no_indep_rw;

/* Hints for Lustre file system */
int lustre_overstriping_ratio;

/* Hints set by PnetCDF internally */
int lustre_num_osts;
int *ranklist;

union {
struct {
int num_osts;
int overstriping_ratio;
} lustre;
} fs_hints;
} PNCIO_Hints;

typedef struct {
Expand Down
8 changes: 5 additions & 3 deletions src/drivers/pncio/pncio_close.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@ int PNCIO_File_close(PNCIO_File *fh)
{
int err = NC_NOERR;

err = close(fh->fd_sys);
if (err != 0)
err = ncmpii_error_posix2nc("close");
if (fh->is_open) {
err = close(fh->fd_sys);
if (err != 0)
err = ncmpii_error_posix2nc("close");
}

if (fh->hints->ranklist != NULL)
NCI_Free(fh->hints->ranklist);
Expand Down
Loading