Hi Marius,
On Oct 12, 2011, at 2:30 AM, Marius Muja wrote:
> I have a similar problem with H5Dread hanging for collective IO. Each MPI
> process tries to read in a fraction of the dataset. If the dataset size is a
> multiple of the number of processes (each process reads the same amount of
> data) all is fine, otherwise the code below hangs in the H5Dread function.
>
> Is it required for collective IO for all processes to read the same amount
> of data?
No, and your code snippet below looks reasonable. What version of HDF5
are you using?
Quincey
> Thanks.
>
> //------------------- BEGINNING OF SOURCE CODE --------------------
>
> MPI_Comm comm = MPI_COMM_WORLD;
> MPI_Info info = MPI_INFO_NULL;
>
> int mpi_size, mpi_rank;
> MPI_Comm_size(comm, &mpi_size);
> MPI_Comm_rank(comm, &mpi_rank);
>
> herr_t status;
>
> hid_t plist_id = H5Pcreate(H5P_FILE_ACCESS);
> H5Pset_fapl_mpio(plist_id, comm, info);
> hid_t file_id = H5Fopen(filename.c_str(), H5F_ACC_RDWR, plist_id);
> CHECK_ERROR(file_id,"Error opening hdf5 file.");
> H5Pclose(plist_id);
> hid_t dataset_id;
> #if H5Dopen_vers == 2
> dataset_id = H5Dopen2(file_id, name.c_str(), H5P_DEFAULT);
> #else
> dataset_id = H5Dopen(file_id, name.c_str());
> #endif
> CHECK_ERROR(dataset_id,"Error opening dataset in file.");
>
> hid_t space_id = H5Dget_space(dataset_id);
> hsize_t dims[2];
> H5Sget_simple_extent_dims(space_id, dims, NULL);
>
> hsize_t count[2];
> hsize_t offset[2];
>
> hsize_t item_cnt = dims[0]/mpi_size+(dims[0]%mpi_size==0 ? 0 : 1);
> hsize_t cnt = (mpi_rank<mpi_size-1 ? item_cnt :
> dims[0]-item_cnt*(mpi_size-1));
>
> count[0] = cnt;
> count[1] = dims[1];
> offset[0] = mpi_rank*item_cnt;
> offset[1] = 0;
>
> hid_t memspace_id = H5Screate_simple(2,count,NULL);
>
> H5Sselect_hyperslab(space_id, H5S_SELECT_SET, offset, NULL, count,
> NULL);
>
> plist_id = H5Pcreate(H5P_DATASET_XFER);
> H5Pset_dxpl_mpio(plist_id, H5FD_MPIO_COLLECTIVE);
> status = H5Dread(dataset_id, get_hdf5_type<T>(), memspace_id, space_id,
> plist_id, ptr);
>
> //------------------- BEGINNING OF SOURCE CODE --------------------
>
> --
> View this message in context:
> http://hdf-forum.184993.n3.nabble.com/H5Fclose-hangs-when-using-parallel-HDF5-tp3369047p3415023.html
> Sent from the hdf-forum mailing list archive at Nabble.com.
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org