EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  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  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Comparing catime performance
From: Daron Chabot <[email protected]>
To: Andrew Johnson <[email protected]>
Cc: [email protected]
Date: Mon, 12 Jan 2009 12:52:17 -0600
Andrew Johnson wrote:
Hi Matt,

On Thursday 08 January 2009 22:40:55 Matt Rippa wrote:
I've setup an mvme2700 with RTEMS and an exampleApp (R3.14.10). I was
wondering how my catime results compare with other sites using other boards
or OS. Is there an expectation for a 10/100 port?

Here are my results for an MVME2700 IOC running on vxWorks 5.5.2:

tux% ./epics/base/3-14-dev/bin/linux-x86_64/catime anj:aiExample
Testing with 10000 channels named anj:aiExample
channel connect test
Elapsed Per Item =   0.00003874 sec,    25810.8 Items per sec, 14.0 Mbps
Search tries per chan - mean=1.000000 std dev=0.000000 min=1.000000 max=1.000000
channel name=anj:aiExample, native type=6, native count=1
        pend event test
Elapsed Per Item =   0.00000345 sec,   289767.4 Items per sec
float test
        async put test
Elapsed Per Item =   0.00001462 sec,    68411.5 Items per sec, 9.3 Mbps
        async get test
Elapsed Per Item =   0.00001230 sec,    81294.3 Items per sec, 21.5 Mbps
        synch get test
Elapsed Per Item =   0.00026592 sec,     3760.5 Items per sec, 1.0 Mbps
double test
        async put test
Elapsed Per Item =   0.00001454 sec,    68754.2 Items per sec, 9.4 Mbps
        async get test
Elapsed Per Item =   0.00001127 sec,    88727.2 Items per sec, 23.4 Mbps
        synch get test
Elapsed Per Item =   0.00034435 sec,     2904.0 Items per sec, 0.8 Mbps
string test
        async put test
Elapsed Per Item =   0.00001853 sec,    53980.3 Items per sec, 9.1 Mbps
        async get test
Elapsed Per Item =   0.00001281 sec,    78077.5 Items per sec, 23.1 Mbps
        synch get test
Elapsed Per Item =   0.00027493 sec,     3637.3 Items per sec, 1.1 Mbps
integer test
        async put test
Elapsed Per Item =   0.00001472 sec,    67928.8 Items per sec, 9.2 Mbps
        async get test
Elapsed Per Item =   0.00001143 sec,    87478.8 Items per sec, 23.1 Mbps
        synch get test
Elapsed Per Item =   0.00025829 sec,     3871.6 Items per sec, 1.0 Mbps
round trip jitter test
Round trip get delays - mean=0.000255 sec, std dev=0.000053 sec, min=0.000225 sec max=0.004384 sec
free test
Elapsed Per Item =   0.00000084 sec,  1193582.6 Items per sec, 0.0 Mbps


For comparison, these are from an MVME5100 (which has a 10/100 network and a faster CPU) running vxWorks 5.5.2 and exactly the same IOC binary:

tux% ./epics/base/3-14-dev/bin/linux-x86_64/catime anj:aiExample
Testing with 10000 channels named anj:aiExample
channel connect test
Elapsed Per Item =   0.00005100 sec,    19609.8 Items per sec, 10.7 Mbps
Search tries per chan - mean=1.000000 std dev=0.000000 min=1.000000 max=1.000000
channel name=anj:aiExample, native type=6, native count=1
        pend event test
Elapsed Per Item =   0.00000344 sec,   290548.5 Items per sec
float test
        async put test
Elapsed Per Item =   0.00001347 sec,    74245.0 Items per sec, 10.1 Mbps
        async get test
Elapsed Per Item =   0.00000965 sec,   103586.2 Items per sec, 27.3 Mbps
        synch get test
Elapsed Per Item =   0.00042115 sec,     2374.5 Items per sec, 0.6 Mbps
double test
        async put test
Elapsed Per Item =   0.00001325 sec,    75457.5 Items per sec, 10.3 Mbps
        async get test
Elapsed Per Item =   0.00000860 sec,   116330.8 Items per sec, 30.7 Mbps
        synch get test
Elapsed Per Item =   0.00037642 sec,     2656.6 Items per sec, 0.7 Mbps
string test
        async put test
Elapsed Per Item =   0.00001809 sec,    55264.4 Items per sec, 9.3 Mbps
        async get test
Elapsed Per Item =   0.00000971 sec,   102951.4 Items per sec, 30.5 Mbps
        synch get test
Elapsed Per Item =   0.00037095 sec,     2695.8 Items per sec, 0.8 Mbps
integer test
        async put test
Elapsed Per Item =   0.00001372 sec,    72912.3 Items per sec, 9.9 Mbps
        async get test
Elapsed Per Item =   0.00000875 sec,   114266.4 Items per sec, 30.2 Mbps
        synch get test
Elapsed Per Item =   0.00037644 sec,     2656.5 Items per sec, 0.7 Mbps
round trip jitter test
Round trip get delays - mean=0.000375 sec, std dev=0.000856 sec, min=0.000329 sec max=0.085398 sec
free test
Elapsed Per Item =   0.00000085 sec,  1182483.6 Items per sec, 0.0 Mbps


Finally from an MVME6100, vxWorks 5.5.2 and the same IOC binary and 100Mbps network but an even faster CPU:

tux% ./epics/base/3-14-dev/bin/linux-x86_64/catime anj:aiExample
Testing with 10000 channels named anj:aiExample
channel connect test
Elapsed Per Item =   0.00001952 sec,    51226.7 Items per sec, 27.9 Mbps
Search tries per chan - mean=1.000000 std dev=0.000000 min=1.000000 max=1.000000
channel name=anj:aiExample, native type=6, native count=1
        pend event test
Elapsed Per Item =   0.00000345 sec,   290170.8 Items per sec
float test
        async put test
Elapsed Per Item =   0.00000378 sec,   264433.8 Items per sec, 36.0 Mbps
        async get test
Elapsed Per Item =   0.00000471 sec,   212208.6 Items per sec, 56.0 Mbps
        synch get test
Elapsed Per Item =   0.00022625 sec,     4419.9 Items per sec, 1.2 Mbps
double test
        async put test
Elapsed Per Item =   0.00000376 sec,   265718.1 Items per sec, 36.1 Mbps
        async get test
Elapsed Per Item =   0.00000439 sec,   228009.3 Items per sec, 60.2 Mbps
        synch get test
Elapsed Per Item =   0.00025025 sec,     3995.9 Items per sec, 1.1 Mbps
string test
        async put test
Elapsed Per Item =   0.00000467 sec,   214319.2 Items per sec, 36.0 Mbps
        async get test
Elapsed Per Item =   0.00000473 sec,   211639.6 Items per sec, 62.6 Mbps
        synch get test
Elapsed Per Item =   0.00017418 sec,     5741.3 Items per sec, 1.7 Mbps
integer test
        async put test
Elapsed Per Item =   0.00000384 sec,   260597.1 Items per sec, 35.4 Mbps
        async get test
Elapsed Per Item =   0.00000445 sec,   224667.4 Items per sec, 59.3 Mbps
        synch get test
Elapsed Per Item =   0.00017441 sec,     5733.5 Items per sec, 1.5 Mbps
round trip jitter test
Round trip get delays - mean=0.000160 sec, std dev=0.000037 sec, min=0.000143 sec max=0.001319 sec
free test
Elapsed Per Item =   0.00000085 sec,  1178270.6 Items per sec, 0.0 Mbps


For grins, these are the results from an MVME172, a much slower 68060 CPU that also has a 10Mbps network, still on vxWorks 5.5.2:

tux% ./epics/base/3-14-dev/bin/linux-x86_64/catime anj:aiExample
Testing with 10000 channels named anj:aiExample
channel connect test
Elapsed Per Item =   0.00040487 sec,     2469.9 Items per sec, 1.3 Mbps
Search tries per chan - mean=1.020300 std dev=0.141025 min=1.000000 max=2.000000
channel name=anj:aiExample, native type=6, native count=1
        pend event test
Elapsed Per Item =   0.00000344 sec,   290717.6 Items per sec
float test
        async put test
Elapsed Per Item =   0.00016272 sec,     6145.7 Items per sec, 0.8 Mbps
        async get test
Elapsed Per Item =   0.00010047 sec,     9953.0 Items per sec, 2.6 Mbps
        synch get test
Elapsed Per Item =   0.00134354 sec,      744.3 Items per sec, 0.2 Mbps
double test
        async put test
Elapsed Per Item =   0.00016162 sec,     6187.3 Items per sec, 0.8 Mbps
        async get test
Elapsed Per Item =   0.00009026 sec,    11079.4 Items per sec, 2.9 Mbps
        synch get test
Elapsed Per Item =   0.00132881 sec,      752.6 Items per sec, 0.2 Mbps
string test
        async put test
Elapsed Per Item =   0.00021103 sec,     4738.7 Items per sec, 0.8 Mbps
        async get test
Elapsed Per Item =   0.00017505 sec,     5712.5 Items per sec, 1.7 Mbps
        synch get test
Elapsed Per Item =   0.00144579 sec,      691.7 Items per sec, 0.2 Mbps
integer test
        async put test
Elapsed Per Item =   0.00016138 sec,     6196.6 Items per sec, 0.8 Mbps
        async get test
Elapsed Per Item =   0.00009144 sec,    10935.7 Items per sec, 2.9 Mbps
        synch get test
Elapsed Per Item =   0.00143598 sec,      696.4 Items per sec, 0.2 Mbps
round trip jitter test
Round trip get delays - mean=0.001324 sec, std dev=0.000230 sec, min=0.001206 sec max=0.007993 sec
free test
Elapsed Per Item =   0.00000087 sec,  1147919.8 Items per sec, 0.0 Mbps


The OS and speed of the client machine you're testing from do appear to have some effect on the results as well, but they are secondary to the speed of the IOC and its network bandwidth for an MVME2700 IOC at least.
These are the catime results for base-3.14.10, RTEMS-pc386 on a 3 GHz Pentium 4 with 100 Mbps ethernet card:

chabotd@opi2043-001--> catime chabotd:aiExample
Testing with 10000 channels named chabotd:aiExample
search test
Warning: Duplicate EPICS CA Address list entry "10.108.20.19:5064" discarded
Elapsed Per Item =   0.00001840 sec,    54361.7 Items per sec, 30.4 Mbps
Search tries per chan - mean=1.000000 std dev=0.000000 min=1.000000 max=1.000000channel name=chabotd:aiExample, native type=6, native count=1
       pend event test
Elapsed Per Item =   0.00001000 sec,   100040.0 Items per sec
float test
       async put test
Elapsed Per Item =   0.00000321 sec,   311708.1 Items per sec, 42.4 Mbps
       async get test
Elapsed Per Item =   0.00000460 sec,   217374.3 Items per sec, 57.4 Mbps
       synch get test
Elapsed Per Item =   0.00031544 sec,     3170.2 Items per sec, 0.8 Mbps
double test
       async put test
Elapsed Per Item =   0.00000318 sec,   314010.2 Items per sec, 42.7 Mbps
       async get test
Elapsed Per Item =   0.00000451 sec,   221737.4 Items per sec, 58.5 Mbps
       synch get test
Elapsed Per Item =   0.00027821 sec,     3594.4 Items per sec, 0.9 Mbps
string test
       async put test
Elapsed Per Item =   0.00000312 sec,   320498.4 Items per sec, 53.8 Mbps
       async get test
Elapsed Per Item =   0.00000435 sec,   229652.8 Items per sec, 68.0 Mbps
       synch get test
Elapsed Per Item =   0.00028864 sec,     3464.5 Items per sec, 1.0 Mbps
integer test
       async put test
Elapsed Per Item =   0.00000309 sec,   323754.5 Items per sec, 44.0 Mbps
       async get test
Elapsed Per Item =   0.00000431 sec,   231797.0 Items per sec, 61.2 Mbps
       synch get test
Elapsed Per Item =   0.00029251 sec,     3418.7 Items per sec, 0.9 Mbps
round trip jitter test
Round trip get delays - mean=0.000250 sec, std dev=0.000038 sec, min=0.000185 sec max=0.002084 sec
free test
Elapsed Per Item =   0.00000729 sec,   137104.6 Items per sec, 0.0 Mbps

...fairly comparable to the mvme5100 and mvme6100 platforms. The host machine is a dual-cpu 3.0 GHz P4, also with 100 Mbps Ethernet.


-- dc

References:
Comparing catime performance Matt Rippa
Re: Comparing catime performance Andrew Johnson

Navigate by Date:
Prev: RE: USB streaming device to linux/epics Mark Rivers
Next: SSCAN MDA to database? IRMIS? Eric Berryman
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Comparing catime performance Andrew Johnson
Next: EPICS XOP for IGOR Pro Wang Xiaoqiang
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·