Hi Eliseo,
        Super, thanks!  I’ll pull it down and test with it, when I get closer 
to having the feature ready to work on.

                Quincey

> On Oct 23, 2017, at 12:51 PM, Eliseo Gamboa <[email protected]> wrote:
> 
> Hi Quincey, 
> 
> Here is a minimal working example
> https://github.com/slac-lcls/lcls2/tree/master/evtbuild/min_swmr_example
> 
> I’ve tested this on our flash-based filesystem. Note that the reader and 
> writer processes have to be run on different machines. Otherwise the reader 
> just grabs the data from the memory buffer. 
> 
> When the I/O gets gridlocked, I wait 50 ms between refreshes.
> 
> Thanks, 
> Eliseo
> 
> 
>> On Oct 23, 2017, at 7:13 AM, Quincey Koziol <[email protected]> wrote:
>> 
>> Hi Eliseo,
>>      This is very useful and interesting data, thanks for providing it.  
>> When the I/O gets gridlocked at the end, are you in a tight loop polling the 
>> file, or do you wait between poll operations?  Are you able to share your 
>> programs?  In a couple of months, I’ll be working on some improvements to 
>> the performance and memory for getting data from a writer to a reader and it 
>> would be good to have test code like this to work with.
>> 
>>      Quincey
>> 
>> 
>>> On Oct 20, 2017, at 3:47 PM, Eliseo Gamboa <[email protected]> wrote:
>>> 
>>> Hi, 
>>> 
>>> I am experiencing some major performance issues in SWMR mode when a reader 
>>> refreshes the metadata in a file. 
>>> 
>>> I’m testing I/O performance on our data systems using SWMR and h5py. I have 
>>> a process writing out random data to a single dataset, which is then read 
>>> by a single reader. The files are striped across a Lustre file system with 
>>> three OSTs. 
>>> 
>>> In a nutshell, the reader process refreshes the metadata, loops through and 
>>> reads the dataset until it runs out of data, then refreshes the metadata 
>>> again, loops through the new data and so on. 
>>> 
>>> Refreshing the metadata with dset.id.refresh() lags both the reader and 
>>> writer processes for several seconds. This gets worse the more data that is 
>>> refreshed (usually several gb at a time). 
>>> 
>>> Please see the attached image for plots of the reading/writing rates to 
>>> disk. The reading in this test case is slightly faster than the writing. 
>>> Eventually the reader catches up to the writer and tries to call 
>>> dset.id.refresh() on each loop iteration. At this point the I/O gets 
>>> gridlocked and comes to a near standstill. 
>>> 
>>> Thanks, 
>>> Eliseo
>>> 
>>> <PastedGraphic-1.tiff>
>>> 
>>> 
>>> Thanks, 
>>> Eliseo
>>> _______________________________________________
>>> 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
>> 
>> 
>> _______________________________________________
>> 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
> 
> 
> _______________________________________________
> 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


_______________________________________________
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