In the H5D__link_chunk_filtered_collective_io() function, all ranks (after some 
initialization work) should first hit H5D__construct_filtered_io_info_list(). 
Inside that function, at line 2741, each rank counts the number of chunks it 
has selected. Only if a rank has any selected should it then proceed with 
building its local list of chunks. At that point, all the ranks which aren't 
participating should skip this and wait for the other ranks to get done before 
everyone participates in the chunk redistribution. Then, the non-participating 
ranks shouldn't have any chunks assigned to them since they could not be 
considered among the crowd of ranks writing the most to any of the chunks. They 
should then return from the function back to 
H5D__link_chunk_filtered_collective_io(), with chunk_list_num_entries telling 
them that they have no chunks to work on. At that point they should skip the 
loop at 1471-1474 and wait for the others. The only case I can currently 
imagine where the chunk redistribution could get confused would be where no one 
at all is writing to anything. Multi-chunk I/O specifically handles this but 
I'm not sure if Link-chunk I/O will handle the case as well as Multi-Chunk does.

This is all of course if I understand what you mean by the zero-sized chunks, 
which I believe I understand due to the fact that your file space for the 
chunks is positive in size.
_______________________________________________
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

Reply via email to