Thanks Anton, that's much appreciated! And let me reemphasize that I'm amazed by the performance of the serialization code you put into place. Very cool!
Regards Hartmut --------------- http://boost-spirit.com http://stellar.cct.lsu.edu > -----Original Message----- > From: Anton Bikineev [mailto:[email protected]] > Sent: Friday, March 18, 2016 9:53 AM > To: [email protected] > Cc: Vinay Amatya <[email protected]>; [email protected] > Subject: Re: About Serialization Library > > Graphs have been updated! > > > On Mar 17, 2016, at 8:00 PM, Hartmut Kaiser <[email protected]> > wrote: > > > > Thanks Anton, that's very much appreciated! Would you mind updating the > graphs on the github site with the data you collected? > > > > Regards Hartmut > > --------------- > > http://boost-spirit.com > > http://stellar.cct.lsu.edu > > > > > >> -----Original Message----- > >> From: Anton Bikineev [mailto:[email protected]] > >> Sent: Thursday, March 17, 2016 9:39 AM > >> To: [email protected] > >> Cc: Vinay Amatya <[email protected]>; hpx- > [email protected] > >> Subject: Re: About Serialization Library > >> > >> Hi all, > >> > >> Let me cc this to hpx-users, because it covers some recent results on > >> benchmarking our serialization library. > >> Vinay and Hartmut, please forgive me for being late in response, my > mind > >> has been exhausted at my day-to-day job. > >> > >> I’ve compiled those benchmarks (https://github.com/stellar-group/cpp- > >> serializers) using trunk-gcc (gcc-6.0), boost-1.60 and hpx with HEAD on > 17 > >> Feb. > >> I also removed avro library, because new gcc rejected to compile it, > and > >> updated thrift. Result I got are quite interesting — running benchmark > for > >> 1 million iterations gave me the following results: > >> > >> [09:02:07]:[email protected]:/home/abikineev/cpp- > >> serializers/build:0:$ ./test 1000000 > >> performing 1000000 iterations > >> > >> thrift-binary: version = 0.9.3 > >> thrift-binary: size = 17017 bytes > >> thrift-binary: time = 28548 milliseconds > >> > >> thrift-compact: version = 0.9.3 > >> thrift-compact: size = 11597 bytes > >> thrift-compact: time = 33778 milliseconds > >> > >> protobuf: version = 2006000 > >> protobuf: size = 12571 bytes > >> protobuf: time = 24545 milliseconds > >> > >> boost: version = 106000 > >> boost: size = 17470 bytes > >> boost: time = 16060 milliseconds > >> > >> msgpack: version = 0.5.9 > >> msgpack: size = 11902 bytes > >> msgpack: time = 30098 milliseconds > >> > >> cereal: size = 17416 bytes > >> cereal: time = 13382 milliseconds > >> > >> hpx: size = 17433 bytes > >> hpx: time = 12140 milliseconds > >> > >> hpx zero copy: size = 9433 bytes > >> hpx zero copy: time = 8122 milliseconds > >> > >> > >> Then I noticed, that version of cereal lib was quite old (namely 1.0.0) > >> and I updated it to the latest 1.1.2. And I got results as follows: > >> > >> [09:20:26]:[email protected]:/home/abikineev/cpp- > >> serializers/build:0:$ ./test 1000000 > >> performing 1000000 iterations > >> > >> thrift-binary: version = 0.9.3 > >> thrift-binary: size = 17017 bytes > >> thrift-binary: time = 28025 milliseconds > >> > >> thrift-compact: version = 0.9.3 > >> thrift-compact: size = 11597 bytes > >> thrift-compact: time = 33802 milliseconds > >> > >> protobuf: version = 2006000 > >> protobuf: size = 12571 bytes > >> protobuf: time = 23843 milliseconds > >> > >> boost: version = 106000 > >> boost: size = 17470 bytes > >> boost: time = 16188 milliseconds > >> > >> msgpack: version = 0.5.9 > >> msgpack: size = 11902 bytes > >> msgpack: time = 30051 milliseconds > >> > >> cereal: size = 17416 bytes > >> cereal: time = 13083 milliseconds > >> > >> hpx: size = 17433 bytes > >> hpx: time = 12371 milliseconds > >> > >> hpx zero copy: size = 9433 bytes > >> hpx zero copy: time = 8138 milliseconds > >> > >> Summarizing, to be honest I didn’t expect that we slightly outperform > >> cereal, because it is quite concentrated on serialization itself and > >> doesn’t perform some runtime checks as we do such as filter and zero- > copy > >> buffer presence, endianess, etc… > >> > >> If you want to play with parameters, I can send you the binary and my > >> envs, or my local changes for cpp-serializers and cmake command. > >> > >> Sincerely, > >> Anton. > >> > >>> On Mar 1, 2016, at 11:51 PM, Hartmut Kaiser <[email protected]> > >> wrote: > >>> > >>> Vinay, > >>> > >>>> Thank you so much Hartmut for the pointers. I'll go through the > links. > >> Any > >>>> quick insights on why HPX is a little slower than cereal? The byte > size > >>>> (for objects) seems to be similar for both. But the HPX results are > >>>> impressive nonetheless! > >>> > >>> Those numbers have been collected a while ago and I believe we have > >> improved on those already. I don't remember what the actual reason was, > >> however. I'm cc'ing Anton, he is the main author of our serialization > >> library, he might have some more insights. > >>> > >>> Regards Hartmut > >>> --------------- > >>> http://boost-spirit.com > >>> http://stellar.cct.lsu.edu > >>> > >>> > >>>> > >>>> Regards, > >>>> Vinay > >>>> > >>>> On Tue, Mar 1, 2016 at 12:17 PM, Hartmut Kaiser > >> <[email protected]> > >>>> wrote: > >>>> Hey Vinay, > >>>> > >>>>> I have a quick question with your experience with regards to > >>>> serialization > >>>>> library. I'm involved in another project(for graph processing - > still > >>>>> initial stage, at least for me) that is currently trying to decide > >> what > >>>>> serialization library works best for distributed runtime system. The > >>>>> criteria is it has to be C++11 enabled. They don't want to use > Boost. > >>>> The > >>>>> alternative we see is Cereal Serialization Library. What I wanted to > >> ask > >>>>> was did you have an experience with this library? Also, what test > >>>>> parameters should I look into that'd give me an idea about its > >>>> usefulness > >>>>> in general (besides the time overhead)? > >>>> > >>>> We gave up on Boost serialization as well (most out of performance > >>>> reasons) and implemented our own. The main criteria I'd look for is > >>>> genericity, extensibility and performance. One (possibly minor) thing > >> I'd > >>>> look out for is whether a library supports zero-copy operations (i.e. > >>>> avoids copying data, if possible). > >>>> > >>>>> Also, is there any other comparable library you could point to? > >>>> > >>>> There is a small project comparing the performance of various > libraries > >>>> here: https://github.com/thekvs/cpp-serializers. We have added our > own > >>>> serialization library to the mix in our fork of this project here: > >>>> https://github.com/STEllAR-GROUP/cpp-serializers. > >>>> > >>>>> Btw, I hope the last tropical storm was not too disruptive there. > >>>> > >>>> Yah, all went by gracefully and all we got was some rain. > >>>> > >>>> HTH > >>>> Regards Hartmut > >>>> --------------- > >>>> http://boost-spirit.com > >>>> http://stellar.cct.lsu.edu > >>>> > >>>> > >>> > >>> > > _______________________________________________ hpx-users mailing list [email protected] https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
