1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 <2015> 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 <2015> 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: xspress3 |
From: | <[email protected]> |
To: | <[email protected]>, <[email protected]> |
Cc: | [email protected] |
Date: | Mon, 20 Jul 2015 08:51:28 +0000 |
Hi Matt (and Matt), First I want to start by apologising for missing/not being aware of the pull request from Matt Newville. I have just looked at it and it seems we are going
in basically the same direction (eliminating a lot of the crap from the data files), except Matt has made quite a few changes to an example IOC which is auto-generated so if we need to keep this we will have to move it somewhere else or else it will be trodden
on by the next time we auto-generate the code. The auto-generation has been essential up until now because otherwise there is been no practical way to easily write IOC’s for Xspress3’s with differing numbers
of channels. I hope to change this. So, in answer to Matt Moore, the driver still needs work, but we want to fix it. Most of the changes are on GitHub, either in Matt Newvilles area (https://github.com/newville/xspress3)
or Adam Bark’s (https://github.com/AdamBark/xspress3). We need to work on a merge of all these. Cheers, Nick Rees Principal Software Engineer Phone: +44 (0)1235-778430 Diamond Light Source Fax: +44 (0)1235-446713 From: [email protected] [mailto:[email protected]]
On Behalf Of Matt Newville Hi Matt, On Fri, Jul 17, 2015 at 4:42 PM, Matthew D. Moore <[email protected]> wrote: I am looking for a quick survey of people with a xspress3 from Quantum Detectors.
I have a fork of Nick Rees' github repo that I use for our Xspress3. I changed many of the (weirdly, for a machine from a vendor) DLS-specific configuration, so that it would build well on the system provided
by Quantum. I trimmed many of the useless attributes from being saved to HDF5 files (for example, ROI definitions were being saved at each pixel -- not a lot of extra data, but certainly unnecessary).
I worked on saving data as Float32 instead of Float64. Float64 is simply not necessary for this data. In fact, like the saving of the ROI limits at each pixel, it sort of demonstrates a fundamental lack of
understanding of what the detector does. I made a Pull Request against Nick's repository in January. It has not been merged, and Nick's repo has not been updated since. I had taken this to mean that no one else was working on this code.
Meanwhile, Nick wrote:
You mean the HDF5 data files? Then, no. The ROIs are not necessary here. If one has the full array and knows the ROI definitions, these are as easy to extract as they are to read from a separate dataset.
One thing we've found to be very important for performance is to use compression on the HDF5 files. We typically acquire data for 10 to 100 ms per spectra. Since the max count rate is ~3MHz and there are 4096 bins, the typical count
is around 10 to 100 in each bin. Even with the data stored as Int32 or Float32 (and especially as Float64), the data are highly compressible, and disk i/o dwarfs compression / decompression time. We typically use Zlib compression level 1. I think saving the SCA and DTC data is a good idea, but the ROI data is not necessary. I trimmed my copy of XSP3.xml from ~250 to ~75 lines (for a 4 element array).
The main complaint with the Xspress3 is the lack of dead time information. This seems to not be an Epics issue, but an issue from the vendor.
--Matt Newville <newville at
cars.uchicago.edu> 630-252-0431
-- This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail. |