RPCexpress: a try to implement an efficient middleware from the ground up based on requirements of embedded software defined systems Qi Tang 1,3 , Jin Lian 2,1,3 , Li Zhou 1,3 , Shan Wang 1,3 , Haitao Zhao 1,3 , Jun Xiong 1,3 , Shengchun Huang 1,3 , Jibo Wei 1,3 1 National University of Defense Technology, Changsha, Hunan, P.R. China 2 Hunan university, Changsha 410082, China 3 Hunan Engineering Research Center of Software Radio, Changsha, China
Content u Introduction u Features of RPCexpress u Experiment method u Experimental results u Future work
Content u Introduction u Features of RPCexpress u Experiment setting u Experimental results u Future work
Software defined systems � The future of the world is software-defined, e.g., � Software defined radio (GNUradio, SORA, SCA, STRS, ALOE) � Cognitive radio � Software radar � Distributed computing � Embedded programmable System-on-Chip � Multiprocessor system � Cellphone
Model driven, component based � System complexity is increasing � Component-based software developing is appealing � Development simplicity � Test � Integration � Maintaining � The SDS is composed of a set of software components � How to interconnect different components � How to enable system reconfiguration � OS support � Architecture support � Middleware support
Middleware � "Middleware can be viewed as a reusable, expandable set of services and functions that are commonly needed by many applications to function well in a networked environment". � Classification � message oriented middleware (MOM): DDS, ZeroMQ � remote process all (RPC): ICE, RMI, gRPC, DDS-RPC and COM+ � object request broker (ORB): ACE TAO, omniORB, e*ORB, ORBexpress,ORBit � Database � ……
Content u Introduction u Features of RPCexpress u Experiment setting u Experimental results u Future work
RPCexpress � Features � Objecte-oritented � Language support: C++ � OS support: Windows, linux � Basic datatypes � (unsigned) char, short, int, long, float, double, string, etc,. � Complex datatypes � sequence, array, struct, interface, exception, Any , etc,. � C++ based IDL compiler
RPCexpress � Features � Support component-based development � Using shared memory, the fastest IPC mechanism � Support interface inheritance � Support clt-svc service � Clt, svc can locate in the same or different threads/processes
Content u Introduction u Features of RPCexpress u Experiment setting u Experimental results u Future work
Experiment environment � Host: � Intel Core i7-6700 processor � 3.4 GHz and 8 GB RAM � 64 bits Windows 7 � Virtual machine � Vmware � OS � Ubuntu 14
Compared middlewares � ACE TAO � omniORB � e*ORB � ORBit � PRCexpress
Experiment method � For each middleware � Create the same IDL interface � Generate the middleware-bound SVC/CLT related files � Implement the CLT and SVC � provide the same function, i.e., sending and receiving data sequence, according to the IDL interface � The SVC record the transfer delay
Comparison metrics � Different data types � Delay � throughput � Predictability � Static footprint occupation � Shared/executable file size � IDL compiler-generated stubs/skeletons file size � Dynamic memory occupation � Physical memory size of the process
Content u Introduction u Features of RPCexpress u Experiment setting u Experimental results u Future work
Latency RPCexpress TAO omniORB e*ORB ORBit 160 152 140 120 100 100 Latency (in us) 80 60 60 55 52 51 50 50 44 43 40 34 26 25 22 22 21 21 21 21 18 18 17 17 17 16 15 20 14 13 11 10 10 7 6 6 5 0 128 512 1024 4096 8192 16384 32768 Data Size (in bytes) the calling latency of each middleware for the double type data sequence with different data lengths
Latency RPCexpress TAO omniORB e*ORB ORBit 160 140 135 132 120 100 Latency (in us) 77 80 74 67 60 54 53 51 50 50 50 50 50 49 40 34 34 23 22 22 21 20 20 20 18 18 18 17 17 17 17 20 14 14 14 14 13 12 11 7 7 7 7 6 6 6 6 0 octet short long long long float double string Any complex_short Data Type the calling latency of each middleware for the 4k bytes data sequence with different data types
Latency RPCexpress TAO omniORB e*ORB ORBit 160 140 120 100 Latency (in us) 80 60 40 20 0 octet short long long long float double string Any complex_short Data Type the calling latency of each middleware for the 4k bytes data sequence with different data types
Predictability 200 177.5 180 160 140 Standard deviation 120 100 80 60 40 20 13.7 10.4 5.4 1.8 0 RPCexpress TAO omniORB e*ORB ORBit
Throughput RPCexpress TAO omniORB e*ORB ORBit 3000 2521 2500 2000 Throughput (in Mbps) 1638 1560 1500 1311 1000 780 630 585 546 512 455 500 372 315 293 228 214 171 164 159 163 120 102 85 82 60 45 34 26 30 23 19 12 8 6 12 3 0 128 512 1024 4096 8192 16384 32768 Data Size (in bytes) the throughput of each middleware for the double type data sequence with different data lengths
Throughput RPCexpress TAO omniORB e*ORB ORBit 800 683 683 683 683 700 585 585 585 585 600 Throughput (in Mbps) 500 372 400 341 315 293 293 293 293 300 241 241 241 241 228 228 228 205 205 205 189 183 178 179 200 120 117 84 82 82 80 82 82 82 77 76 100 61 55 53 30 31 0 octet short long long long float double string Any complex_short Data Type the throughput of each middleware for the 4k bytes data sequence with different data types
Static Memory Size RPCexpress TAO omniORB e*ORB ORBit 7000 5913 6000 5029 Static memory size (in k bytes) 5000 3937 4000 3000 2000 1000 134 370 266 174 140 137 81 56 30 57 23 18 25 13 14 13 12 0 stub&skeleton shared library server client
Dynamic Memory Size RPCexpress TAO omniORB e*ORB ORBit 250.0 222.2 200.0 Dynamic memory size (in k bypes) 158.4 150.0 100.0 83.2 68.4 50.0 30.8 19.3 20.1 8.0 2.7 2.7 0.0 Server Client
Content u Introduction u Features of RPCexpress u Experiment setting u Experimental results u Future work
Future work � Integrate with SCA-based SDR system � Test with SDR waveform, e.g., FM3TR � Extend to distributed systems � Further performance optimization � Extend to specific processors, e.g., DSP, FPGA
Thanks
Recommend
More recommend