By zero-sized chunks do you mean to say that the actual chunks in the dataset are zero-sized or the data going to the write is zero-sized? It would seem odd to me if you were writing to an essentially zero-sized dataset composed of zero-sized chunks.
On the other hand, for ranks that aren't participating, they should never construct a list of chunks in the H5D__construct_filtered_io_info_list() function and thus should never participate in any chunk updating, only the collective file space re-allocations and re-insertion of chunks into the chunk index. That being said, if you are indeed seeing zero-sized malloc calls in the chunk update function, something must be wrong somewhere. While it is true that the chunks currently move to the rank with the largest contribution to the chunk which ALSO has the least amount of chunks currently assigned to it (to try and get a more even distribution of chunks among all the ranks), any rank which has a zero-sized contribution to a chunk should never have created a chunk struct entry for the chunk and thus should not be participating in the chunk updating loop (lines 1471-1474 in the current develop branch). They should pass that loop and wait at the subsequent H5D__mpio_array_gatherv() until the other ranks get done processing. Again, this is what should happen but in your case may not be the actuality of the situation.
_______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org Twitter: https://twitter.com/hdf5
