[zeromq-dev] 0MQ for hard real time applications: the inproc communication

Davide Faconti faconti at icarustechnology.com
Thu Apr 18 14:38:44 CEST 2013


Hi,

first of all, congratulation for the amazing ZeroMQ library.
I would like to use ZeroMQ of real time operative systems, In particular
Linux (RT-preempt and later Xenomai) and QNX.

To do this I am planning to do some changes to the core of ZMQ, in
particular:
1) Use O(1) memory allocation.
2) Be able to set the Scheduling policy to set the thread priorities.
3) Use hard real time communication mechanism when possible.

About the last point, I would like to:
A) Use QNX messages for IPC transport.
B) Use lockfree data structures for INPROC transport.

My main question at the moment is about the current implementation of
INPROC transport.
Digging it seems like the actual implementation is the class pipe_t, am I
right?

I have done some benchmark using the perf tool (inproc_lat) and I get an
average latency of 8 usec.
It is not bad, but using lockfree FIFO I can achieve times that are TWO
orders of magnitude lower.
I know that the beauty of ZeroMQ it is that it doesn much more for me, but
I would like to understand better the current implementation of INPROC
sockets to see if I can contribute with a more efficient implementation.

Thanks in advance

-- 
Davide Faconti
----------------------------------------------
*Icarus Technology SLU <http://www.icarustechnology.com>*
----------------------------------------------
*NIF*: B64096571
tel. +34666722156
----------------------------------------------
c/ paris 45-47, entrlo 3º
08029, Barcelona, Spain
----------------------------------------------
www.icarustechnology.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130418/d69f658e/attachment.htm>


More information about the zeromq-dev mailing list