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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: EPICS QT question |
From: | Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | Jörn Dreyer <j.dreyer at hzdr.de> |
Cc: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Thu, 24 Sep 2020 16:29:07 +0000 |
Hi Jörn, > One solution would be to implement all the magic math we use as plugins for areaDetector > and combine them to the necessary chain. > But the machine we use to read the camera is not powerful enough (Odroid XU1) to do that. > What would be the performance if we would run the plugins on a separate machine? What you propose is quite reasonable. The camera IOC would need to run the NDPluginPva, which is quite efficient. Here is a screen shot where it is processing 784 frames/s of 1024x1024 Float32 images = 3.2 GB/s. You can then run an IOC on a more powerful machine with the pvaDriver. Here is a screen shot when it is processing 303 frame/s of 1024x1024 Float32 images = 1.2 GB/s. Of course you need to make sure the network link between the machines can handle the required bandwidth. > And how to make sure that they all are in sync? Can you explain what you mean by that? Mark From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Jörn Dreyer
via Tech-talk <tech-talk at aps.anl.gov> Hi, I'm currently developing an application based on EPICS QT. This toolkit makes things so much easier than using PyQwt which I have used before for the first version of the app. The app reads a picture from a camera, displays the
original and does some processing of the image like fouriertransforms, peak finding and fitting etc. To make sure the analyzed pictures and the camera image are in sync, I wanted to read the image data from a PvaClient and display it in an QEImage.Then do all the math and display the results in other QEImage widgets. But unfortunately the set(Pva)Image function is private.
One solution would be to implement all the magic math we use as plugins for areaDetector and combine them to the necessary chain. But the machine we use to read the camera is not powerful enough (Odroid XU1) to do that. What would
be the performance if we would run the plugins on a separate machine? And how to make sure that they all are in sync? Are there any experiences with such a scenario? Regards Jörn Dreyer |