Login  Register

Re: Removing Boost dependency from QuantLib

Posted by quantlib-dev mailing list on Jul 04, 2017; 7:28pm
URL: http://quantlib.414.s1.nabble.com/Removing-Boost-dependency-from-QuantLib-tp18381p18395.html

Hi Peter and Luigi,

Thank you very much for your support! No, the performance gain is not from
MKL, as MKL is not used in the default setting. I am sorry that I cannot
pinpoint the exact source of performance gain yet. My hunch is that many
Boost modules are quite general, and provide features that's not used by
QuantLib. There are also safety checks in Boost that's not relevant to
QuantLib. By targeting only QuantLib, I do not need to write many
redundant features and safety checks, and avoid some extra instructions.
Also the move semantics in modern C++ may also help with speed. I
apologize that I cannot answer your question in more detail at this point.

Best Regards,

Hao
On Tuesday, July 4, 2017 11:38:00 AM EDT Peter Caspers wrote:

> Hi Hao, that's very interesting. Do you know where the performance gain
> is coming from, is it mostly MKL vs. UBLAS? Or are there other drivers
> as well? I'd also be interested in the motivation to do this in the
> first place, I never thought boost as such was a bad thing? The upgrade
> to C++17 is surely nice and makes sense, no doubt. Best Regards
> Peter
>
> > On 04 Jul 2017, at 09:42, Luigi Ballabio <[hidden email]>
> > wrote:
> >
> > Hello Hao,
> >
> >     that's great news---I've been wondering myself if this was
> >     possible.  I'll be sure to check out your project.>
> > I suggest you also post to quantlib-users for greater exposure.
> >
> > Later,
> >
> >     Luigi
> >
> > On Tue, Jul 4, 2017 at 5:24 AM Hao Zhang via QuantLib-dev
> > <[hidden email]
> > <mailto:[hidden email]>> wrote: Hello Everyone,
> >
> > I have removed all Boost dependency from QuantLib, and ported QuantLib
> > to C++17. The code is hosted on GitHub
> > (https://github.com/haozhangphd/ QuantLib-noBoost
> > <https://github.com/haozhangphd/QuantLib-noBoost>).
> >
> > The ported code passes all test cases, and there are significant
> > performance improvements in SOME functionalities. Using the QuantLib
> > Benchmark Suite, Quantlib-noBoost gives 3425 mflops (running time
> > 13.15s), while unmodified QuantLib gives 1440 mflops (running time
> > 44.8s) on my Dell Inspiron 13 i7348 laptop, both running under
> > identical conditions with identical compiler flags. The total running
> > time of the whole test suite is also shorter by ~10% after Boost is
> > removed.
> >
> > I will continue maintaining this project, and regularly backporting
> > latest commits from QuantLib. I will also make this project work on
> > other compilers besides GCC in the near future.
> >
> > Best Regards,
> >
> > Hao
> >
> > ----------------------------------------------------------------------
> > -------- Check out the vibrant tech community on one of the world's
> > most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > <http://sdm.link/slashdot>
> > _______________________________________________
> > QuantLib-dev mailing list
> > [hidden email]
> > <mailto:[hidden email]>
> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> > <https://lists.sourceforge.net/lists/listinfo/quantlib-dev>
> > ---------------------------------------------------------------------
> > --------- Check out the vibrant tech community on one of the world's
> > most engaging tech sites, Slashdot.org!
> > http://sdm.link/slashdot_____________________________________________
> > __ QuantLib-dev mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev