EPICS V 4 for Neutron Data Kay Kasemir

  • Slides: 11
Download presentation
EPICS V 4 for Neutron Data Kay Kasemir, July 2014

EPICS V 4 for Neutron Data Kay Kasemir, July 2014

V 4 for Neutron Data? http: //www. motorang. com/AIA/pic/tex-rubinowitz-cartoon. jpg

V 4 for Neutron Data? http: //www. motorang. com/AIA/pic/tex-rubinowitz-cartoon. jpg

“V 4” pv. Data – Structured Data – Java, C++ – Normative Types: Structs

“V 4” pv. Data – Structured Data – Java, C++ – Normative Types: Structs w/ time, alarm, . . pv. Access – Network protocol – – – Similar to CA: UDP 5076, TCP 5075 Server decides on byte order Partial transfers, whatever client requests Clever ‘size’: 1 byte if <255, … Multicast under development Active development, ~daily commits

SNS Neutron Data uint 64 event. ID uint 64 pulse. ID // time. Stamp

SNS Neutron Data uint 64 event. ID uint 64 pulse. ID // time. Stamp double proton. Charge struct { uint 32 time_of_flight uint 32 pixel } events[]

Direct Translation into V 4 pv. Data Structure ulong event. ID time_t time. Stamp

Direct Translation into V 4 pv. Data Structure ulong event. ID time_t time. Stamp double proton. Charge Structure Event[] uint time_of_flight uint pixel

. . With Normative Types? Structure // Time stamp for all; // event. ID

. . With Normative Types? Structure // Time stamp for all; // event. ID in. user. Tag time_t time. Stamp NTScalar proton. Charge double value NTScalar. Array time_of_flight uint[] value NTScalar. Array pixel uint[] value

Test Setup • Server: ‘neutron. Server. Main’ – Based on pv. Database. CPP –

Test Setup • Server: ‘neutron. Server. Main’ – Based on pv. Database. CPP – Configurable: Update. Rate, Event Array Size • Client: ‘neutron. Client. Main’ – Tests for missing ‘event ID’ – Network traffic checked via ‘nethogs’

What you get for free

What you get for free

Performance

Performance

Performance • 150000 events, 100 packets/second: – 15 million events/sec – Server: 30% CPU

Performance • 150000 events, 100 packets/second: – 15 million events/sec – Server: 30% CPU on bl 9 -dassrv 1 – Client: 26% CPU on bl 9 -dasopi 1 • 1 ‘event’ �T. o. F + pixel � 8 bytes – Indeed about 8 bytes/event on network!!

Methinks. . Looking good! + + Can package data in flexible ways Already have

Methinks. . Looking good! + + Can package data in flexible ways Already have network tools to inspect, monitor Community of developers and users Performance is good Note + Limited compatibility between versions + pvget doesn’t show “disconnected” + It’s C++ (std: : tr 1: : shared_ptr, core dumps, …) Next + Fix coredump + Create data to ‘attach’ to result (as for PVTimestamp. . ) + Create library for more tests and later use @ SNS