zero-copy transport between nodes
Hello, I know that one can easily obtain zero-copy transfers between nodelets within a single node but I was wondering if there is a way to avoid copy (and most importantly serialization/deserialization) between two nodes running on the same machine. I want the vrep simulator to send image messages to matlab and I am using the vreprosbridge and matlabrosbridge (I am one of the authors) for this. However the message passing is quite slow due to the multiple copies and serializations. On the other hand I cannot use nodelets because vrep and matlab each have their own executables. The only thing I could think of is to have two nodelets running in a single node and each one sharing a shared_memory portion with vrep and matlab respectively but this seems quite cumbersome. Any other idea? Thank you. Riccardo
Asked by rick187 on 2016-06-12 07:42:59 UTC
Comments
It's a bit old, but you could see whether the
sharedmem_transport
in the ethzasl_message_transport works for you.Note that most of the times you're trading one disadvantage for another in these cases.
Asked by gvdhoorn on 2016-06-13 07:16:40 UTC
Thanks a lot for the answer. I was aware of that package (I should have mentioned it in the question) but I am not sure that it actually skips the serialization/deserialization phase and (more importantly) that it is still supported. It also seem to require quite some changes in the code.
Asked by rick187 on 2016-06-14 02:35:01 UTC