> On Mar 23, 2016, at 7:35 PM, Matthew Knepley <[email protected]> wrote: > > On Wed, Mar 23, 2016 at 2:28 PM, Barry Smith <[email protected]> wrote: > > Jed and Matt and anyone else who understands the HDF5 viewer > > No one has answered this. If I get no response I am going to assume > that PETSc requires HDF5 built with MPI and remove the #if defs in the code. > > Are you sure that the Vec code fails when HDF5 is serial?
How would I verify if the if the resulting hdf5 file is good or not? Barry > I don't know what happens when multiple > procs use H5Lexists() and friends. Maybe its transactional on the file. It > does use > > PetscStackCallHDF5Return(plist_id,H5Pcreate,(H5P_DATASET_XFER)); > #if defined(PETSC_HAVE_H5PSET_FAPL_MPIO) > PetscStackCallHDF5(H5Pset_dxpl_mpio,(plist_id, H5FD_MPIO_COLLECTIVE)); > #endif > > If it does require MPI, then fine, take out the #ifdefs. > > Matt > > Barry > > > On Mar 18, 2016, at 2:50 PM, Barry Smith <[email protected]> wrote: > > > > > > I am confused about the usage of HDF5 from PETSc. > > > > In hdf5.py > > > > def configureLibrary(self): > > if self.libraries.check(self.dlib, 'H5Pset_fapl_mpio'): > > self.addDefine('HAVE_H5PSET_FAPL_MPIO', 1) > > return > > > > So PETSc does not require HDF5 to have been built using MPI (for example > > if it was built by someone else without MPI.) > > > > In PetscErrorCode PetscViewerFileSetName_HDF5(PetscViewer viewer, const > > char name[]) > > > > #if defined(PETSC_HAVE_H5PSET_FAPL_MPIO) > > PetscStackCallHDF5(H5Pset_fapl_mpio,(plist_id, > > PetscObjectComm((PetscObject)viewer), info)); > > #endif > > > > so it only sets collective IO if the symbol was found and hence HDF5 was > > built for MPI > > > > But in places like VecView_MPI_HDF5(Vec xin, PetscViewer viewer) > > > > it uses MPI as if it was collective? Though it might not be because hdf5 > > could have been built without MPI > > > > So if I build PETSc with a non-MPI hdf5 and yet use the hdf5 viewer in > > parallel; do the generated hdf5 files contain garbage? > > > > It seems to me we need to have hdf5.py REQUIRE the existence of > > H5Pset_fapl_mpio? > > > > Barry > > > > > > > > > > > > > > > -- > What most experimenters take for granted before they begin their experiments > is infinitely more interesting than any results to which their experiments > lead. > -- Norbert Wiener
