You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(17) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(23) |
| 2002 |
Jan
(18) |
Feb
(20) |
Mar
(22) |
Apr
(41) |
May
(28) |
Jun
(25) |
Jul
(10) |
Aug
(7) |
Sep
(5) |
Oct
(20) |
Nov
(13) |
Dec
(11) |
| 2003 |
Jan
(28) |
Feb
(5) |
Mar
(6) |
Apr
(5) |
May
(17) |
Jun
(6) |
Jul
(45) |
Aug
(35) |
Sep
(24) |
Oct
(50) |
Nov
(53) |
Dec
(6) |
| 2004 |
Jan
(4) |
Feb
(10) |
Mar
(52) |
Apr
(46) |
May
(8) |
Jun
(25) |
Jul
(12) |
Aug
(6) |
Sep
(8) |
Oct
(8) |
Nov
(9) |
Dec
(7) |
| 2005 |
Jan
(18) |
Feb
(60) |
Mar
(19) |
Apr
(26) |
May
(14) |
Jun
(27) |
Jul
(8) |
Aug
(15) |
Sep
(19) |
Oct
(53) |
Nov
(20) |
Dec
(23) |
| 2006 |
Jan
(16) |
Feb
(27) |
Mar
(33) |
Apr
(51) |
May
(36) |
Jun
(25) |
Jul
(54) |
Aug
(30) |
Sep
(25) |
Oct
(67) |
Nov
(43) |
Dec
(13) |
| 2007 |
Jan
(23) |
Feb
(27) |
Mar
(55) |
Apr
(79) |
May
(60) |
Jun
(66) |
Jul
(46) |
Aug
(30) |
Sep
(90) |
Oct
(49) |
Nov
(85) |
Dec
(74) |
| 2008 |
Jan
(68) |
Feb
(59) |
Mar
(64) |
Apr
(28) |
May
(66) |
Jun
(35) |
Jul
(73) |
Aug
(76) |
Sep
(65) |
Oct
(46) |
Nov
(41) |
Dec
(19) |
| 2009 |
Jan
(46) |
Feb
(90) |
Mar
(51) |
Apr
(104) |
May
(13) |
Jun
(24) |
Jul
(20) |
Aug
(39) |
Sep
(109) |
Oct
(101) |
Nov
(117) |
Dec
(57) |
| 2010 |
Jan
(55) |
Feb
(42) |
Mar
(39) |
Apr
(22) |
May
(33) |
Jun
(41) |
Jul
(25) |
Aug
(52) |
Sep
(75) |
Oct
(60) |
Nov
(62) |
Dec
(52) |
| 2011 |
Jan
(70) |
Feb
(31) |
Mar
(26) |
Apr
(28) |
May
(17) |
Jun
(38) |
Jul
(51) |
Aug
(35) |
Sep
(27) |
Oct
(35) |
Nov
(10) |
Dec
(20) |
| 2012 |
Jan
(21) |
Feb
(29) |
Mar
(13) |
Apr
(37) |
May
(33) |
Jun
(12) |
Jul
(34) |
Aug
(27) |
Sep
(29) |
Oct
(35) |
Nov
(58) |
Dec
(27) |
| 2013 |
Jan
(27) |
Feb
(16) |
Mar
(40) |
Apr
(16) |
May
(34) |
Jun
(37) |
Jul
(6) |
Aug
(3) |
Sep
(4) |
Oct
(49) |
Nov
(13) |
Dec
(12) |
| 2014 |
Jan
(15) |
Feb
(21) |
Mar
(11) |
Apr
(13) |
May
(27) |
Jun
(60) |
Jul
(19) |
Aug
(29) |
Sep
(20) |
Oct
(28) |
Nov
(41) |
Dec
(15) |
| 2015 |
Jan
(33) |
Feb
(29) |
Mar
(26) |
Apr
(17) |
May
(2) |
Jun
(13) |
Jul
(21) |
Aug
(30) |
Sep
(22) |
Oct
(15) |
Nov
(46) |
Dec
(20) |
| 2016 |
Jan
(6) |
Feb
(5) |
Mar
(9) |
Apr
(15) |
May
(9) |
Jun
(4) |
Jul
(3) |
Aug
(4) |
Sep
(39) |
Oct
(8) |
Nov
(5) |
Dec
(8) |
| 2017 |
Jan
(4) |
Feb
(14) |
Mar
(4) |
Apr
(16) |
May
(5) |
Jun
(10) |
Jul
(25) |
Aug
(2) |
Sep
(5) |
Oct
(11) |
Nov
(8) |
Dec
(11) |
| 2018 |
Jan
(7) |
Feb
(4) |
Mar
|
Apr
(1) |
May
(4) |
Jun
(21) |
Jul
(8) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(1) |
Dec
|
| 2019 |
Jan
(1) |
Feb
(5) |
Mar
(18) |
Apr
(9) |
May
(5) |
Jun
(21) |
Jul
(25) |
Aug
(25) |
Sep
(4) |
Oct
(2) |
Nov
(2) |
Dec
(5) |
| 2020 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(6) |
Dec
|
| 2021 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(5) |
| 2022 |
Jan
(7) |
Feb
(3) |
Mar
|
Apr
(2) |
May
(5) |
Jun
(3) |
Jul
(3) |
Aug
(3) |
Sep
(3) |
Oct
(14) |
Nov
|
Dec
(1) |
| 2023 |
Jan
(10) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
(2) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
|
Dec
|
| 2024 |
Jan
(8) |
Feb
|
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(4) |
Aug
(5) |
Sep
|
Oct
(4) |
Nov
(1) |
Dec
(1) |
| 2025 |
Jan
(3) |
Feb
(2) |
Mar
(2) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2026 |
Jan
(1) |
Feb
(12) |
Mar
|
Apr
(2) |
May
(8) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Ferdinando M. A. <fer...@am...> - 2014-06-24 14:40:34
|
thank you Jean-Mathieu which solution did you use to start the automated VC12 conversion? I did know about the boost 1.55 serialization issue, but I've read that it "can't compile because of a missing include", so I assumed it could have been an easy fix. Switching to boost's trunk is not feasible in my environment... On Tue, Jun 24, 2014 at 4:32 PM, Jean-Mathieu Vermosen <aja...@gm...> wrote: > Hi Nando, > > I’ve done this upgrade from 1.4 a few weeks ago. As far as I can remember, > quantlib core lib was not a big deal: I let MSVC to update the solution and > added > > #elif (_MSC_VER == 1800) > # define QL_LIB_TOOLSET “vc120" > > to the autolink.hpp file.Then I upgraded the name of the generated lib and > paths and recompiled. > > In your case, it looks that the test suite links to the vc90 .lib, so I’d > also fix linker's additional dependancies in the test suite. > > Precision: I’m using boost's trunk since boost serialization 1.55 still > has compiling problems under VS 2013, but I’m not sure it really matters in > this case. > > Best, > > Jean-Mathieu Vermosen > > On Jun 24, 2014, at 9:37 AM, Ferdinando M. Ametrano < > fer...@am...> wrote: > > Hi > > I would like to upgrade to VC12. As I've got rusty at solution management > I was wondering: > 1) is anyone else willing to perform it > 2) if I do it, should I allow VC12 to upgrade from V9, V10, or VC11 > solutions? > > Incidentally, the test-suite in the current VC9 solution does not link, > probably because of missing CPIBond, SwaptionVolCube1, and > FixedRateBondHelper files in the QuantLib project. I cannot figure out > quickly the missing files, any help appreciated, error attached belo > > ciao -- Nando > > 2>------ Build started: Project: testsuite, Configuration: Release Win32 > ------ > 2>Linking... > 2> Creating library .\bin\QuantLib-test-suite-vc90-mt.lib and object > .\bin\QuantLib-test-suite-vc90-mt.exp > 2>inflationcpibond.obj : error LNK2019: unresolved external symbol > "public: __thiscall QuantLib::CPIBond::CPIBond(unsigned > int,double,bool,double,class QuantLib::Period const &,class > boost::shared_ptr<class QuantLib::ZeroInflationIndex> const &,enum > QuantLib::CPI::InterpolationType,class QuantLib::Schedule const &,class > std::vector<double,class std::allocator<double> > const &,class > QuantLib::DayCounter const &,enum QuantLib::BusinessDayConvention,class > QuantLib::Date const &)" (??0CPIBond@QuantLib@@QAE@IN_NNABVPeriod@1@ABV > ?$shared_ptr@VZeroInflationIndex@QuantLib@@@boost@@W4InterpolationType@CPI > @1@ABVSchedule@1@ABV?$vector@NV?$allocator@N@std@@@std@@ABVDayCounter@1 > @W4BusinessDayConvention@1@ABVDate@1@@Z) referenced in function "public: > static void __cdecl InflationCPIBondTest::testCleanPrice(void)" > (?testCleanPrice@InflationCPIBondTest@@SAXXZ) > 2>markovfunctional.obj : error LNK2019: unresolved external symbol > "public: __thiscall QuantLib::SwaptionVolCube1::SwaptionVolCube1(class > QuantLib::Handle<class QuantLib::SwaptionVolatilityStructure> const &,class > std::vector<class QuantLib::Period,class std::allocator<class > QuantLib::Period> > const &,class std::vector<class QuantLib::Period,class > std::allocator<class QuantLib::Period> > const &,class > std::vector<double,class std::allocator<double> > const &,class > std::vector<class std::vector<class QuantLib::Handle<class > QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class > QuantLib::Quote> > >,class std::allocator<class std::vector<class > QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class > QuantLib::Handle<class QuantLib::Quote> > > > > const &,class > boost::shared_ptr<class QuantLib::SwapIndex> const &,class > boost::shared_ptr<class QuantLib::SwapIndex> const &,bool,class > std::vector<class std::vector<class QuantLib::Handle<class > QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class > QuantLib::Quote> > >,class std::allocator<class std::vector<class > QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class > QuantLib::Handle<class QuantLib::Quote> > > > > const &,class > std::vector<bool,class std::allocator<bool> > const &,bool,class > boost::shared_ptr<class QuantLib::EndCriteria> const &,double,class > boost::shared_ptr<class QuantLib::OptimizationMethod> const > &,double,bool,unsigned int)" (??0SwaptionVolCube1@QuantLib@@QAE@ABV > ?$Handle@VSwaptionVolatilityStructure@QuantLib@@@1@ABV?$vector@VPeriod > @QuantLib@@V?$allocator@VPeriod@QuantLib@@@std@@@std@@1ABV?$vector@NV > ?$allocator@N@std@@@4@ABV?$vector@V?$vector@V?$Handle@VQuote@QuantLib@ > @@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@ > @V?$allocator@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@ > @V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@@2@@4@ABV > ?$shared_ptr@VSwapIndex@QuantLib@@@boost@@4_N3ABV?$vector@_NV?$allocator@ > _N@std@@@4@5ABV?$shared_ptr@VEndCriteria@QuantLib@@@8@NABV > ?$shared_ptr@VOptimizationMethod@QuantLib@@@8@N_NI@Z) referenced in > function "class QuantLib::Handle<class > QuantLib::SwaptionVolatilityStructure> __cdecl `anonymous > namespace'::md0SwaptionVts(void)" (?md0SwaptionVts@?A0xcaf0c29a@ > @YA?AV?$Handle@VSwaptionVolatilityStructure@QuantLib@@@QuantLib@@XZ) > 2>rangeaccrual.obj : error LNK2001: unresolved external symbol "public: > __thiscall QuantLib::SwaptionVolCube1::SwaptionVolCube1(class > QuantLib::Handle<class QuantLib::SwaptionVolatilityStructure> const &,class > std::vector<class QuantLib::Period,class std::allocator<class > QuantLib::Period> > const &,class std::vector<class QuantLib::Period,class > std::allocator<class QuantLib::Period> > const &,class > std::vector<double,class std::allocator<double> > const &,class > std::vector<class std::vector<class QuantLib::Handle<class > QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class > QuantLib::Quote> > >,class std::allocator<class std::vector<class > QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class > QuantLib::Handle<class QuantLib::Quote> > > > > const &,class > boost::shared_ptr<class QuantLib::SwapIndex> const &,class > boost::shared_ptr<class QuantLib::SwapIndex> const &,bool,class > std::vector<class std::vector<class QuantLib::Handle<class > QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class > QuantLib::Quote> > >,class std::allocator<class std::vector<class > QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class > QuantLib::Handle<class QuantLib::Quote> > > > > const &,class > std::vector<bool,class std::allocator<bool> > const &,bool,class > boost::shared_ptr<class QuantLib::EndCriteria> const &,double,class > boost::shared_ptr<class QuantLib::OptimizationMethod> const > &,double,bool,unsigned int)" (??0SwaptionVolCube1@QuantLib@@QAE@ABV > ?$Handle@VSwaptionVolatilityStructure@QuantLib@@@1@ABV?$vector@VPeriod > @QuantLib@@V?$allocator@VPeriod@QuantLib@@@std@@@std@@1ABV?$vector@NV > ?$allocator@N@std@@@4@ABV?$vector@V?$vector@V?$Handle@VQuote@QuantLib@ > @@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@ > @V?$allocator@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@ > @V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@@2@@4@ABV > ?$shared_ptr@VSwapIndex@QuantLib@@@boost@@4_N3ABV?$vector@_NV?$allocator@ > _N@std@@@4@5ABV?$shared_ptr@VEndCriteria@QuantLib@@@8@NABV > ?$shared_ptr@VOptimizationMethod@QuantLib@@@8@N_NI@Z) > 2>swaptionvolatilitycube.obj : error LNK2001: unresolved external symbol > "public: __thiscall QuantLib::SwaptionVolCube1::SwaptionVolCube1(class > QuantLib::Handle<class QuantLib::SwaptionVolatilityStructure> const &,class > std::vector<class QuantLib::Period,class std::allocator<class > QuantLib::Period> > const &,class std::vector<class QuantLib::Period,class > std::allocator<class QuantLib::Period> > const &,class > std::vector<double,class std::allocator<double> > const &,class > std::vector<class std::vector<class QuantLib::Handle<class > QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class > QuantLib::Quote> > >,class std::allocator<class std::vector<class > QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class > QuantLib::Handle<class QuantLib::Quote> > > > > const &,class > boost::shared_ptr<class QuantLib::SwapIndex> const &,class > boost::shared_ptr<class QuantLib::SwapIndex> const &,bool,class > std::vector<class std::vector<class QuantLib::Handle<class > QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class > QuantLib::Quote> > >,class std::allocator<class std::vector<class > QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class > QuantLib::Handle<class QuantLib::Quote> > > > > const &,class > std::vector<bool,class std::allocator<bool> > const &,bool,class > boost::shared_ptr<class QuantLib::EndCriteria> const &,double,class > boost::shared_ptr<class QuantLib::OptimizationMethod> const > &,double,bool,unsigned int)" (??0SwaptionVolCube1@QuantLib@@QAE@ABV > ?$Handle@VSwaptionVolatilityStructure@QuantLib@@@1@ABV?$vector@VPeriod > @QuantLib@@V?$allocator@VPeriod@QuantLib@@@std@@@std@@1ABV?$vector@NV > ?$allocator@N@std@@@4@ABV?$vector@V?$vector@V?$Handle@VQuote@QuantLib@ > @@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@ > @V?$allocator@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@ > @V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@@2@@4@ABV > ?$shared_ptr@VSwapIndex@QuantLib@@@boost@@4_N3ABV?$vector@_NV?$allocator@ > _N@std@@@4@5ABV?$shared_ptr@VEndCriteria@QuantLib@@@8@NABV > ?$shared_ptr@VOptimizationMethod@QuantLib@@@8@N_NI@Z) > 2>piecewiseyieldcurve.obj : error LNK2019: unresolved external symbol > "public: __thiscall > QuantLib::FixedRateBondHelper::FixedRateBondHelper(class > QuantLib::Handle<class QuantLib::Quote> const &,unsigned int,double,class > QuantLib::Schedule const &,class std::vector<double,class > std::allocator<double> > const &,class QuantLib::DayCounter const &,enum > QuantLib::BusinessDayConvention,double,class QuantLib::Date const &)" > (??0FixedRateBondHelper@QuantLib@@QAE@ABV?$Handle@VQuote@QuantLib@ > @@1@INABVSchedule@1@ABV?$vector@NV?$allocator@N@std@@@std@@ABVDayCounter@1 > @W4BusinessDayConvention@1@NABVDate@1@@Z) referenced in function "public: > __thiscall `anonymous namespace'::CommonVars::CommonVars(void)" > (??0CommonVars@?A0xdb80a3f2@@QAE@XZ) > 2>.\bin\QuantLib-test-suite-vc90-mt.exe : fatal error LNK1120: 3 > unresolved externals > > ------------------------------------------------------------------------------ > Open source business process management suite built on Java and Eclipse > Turn processes into business applications with Bonita BPM Community Edition > Quickly connect people, data, and systems into organized workflows > Winner of BOSSIE, CODIE, OW2 and Gartner awards > > http://p.sf.net/sfu/Bonitasoft_______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > |
|
From: Jean-Mathieu V. <aja...@gm...> - 2014-06-24 14:32:12
|
Hi Nando, I’ve done this upgrade from 1.4 a few weeks ago. As far as I can remember, quantlib core lib was not a big deal: I let MSVC to update the solution and added #elif (_MSC_VER == 1800) # define QL_LIB_TOOLSET “vc120" to the autolink.hpp file.Then I upgraded the name of the generated lib and paths and recompiled. In your case, it looks that the test suite links to the vc90 .lib, so I’d also fix linker's additional dependancies in the test suite. Precision: I’m using boost's trunk since boost serialization 1.55 still has compiling problems under VS 2013, but I’m not sure it really matters in this case. Best, Jean-Mathieu Vermosen On Jun 24, 2014, at 9:37 AM, Ferdinando M. Ametrano <fer...@am...> wrote: > Hi > > I would like to upgrade to VC12. As I've got rusty at solution management I was wondering: > 1) is anyone else willing to perform it > 2) if I do it, should I allow VC12 to upgrade from V9, V10, or VC11 solutions? > > Incidentally, the test-suite in the current VC9 solution does not link, probably because of missing CPIBond, SwaptionVolCube1, and FixedRateBondHelper files in the QuantLib project. I cannot figure out quickly the missing files, any help appreciated, error attached belo > > ciao -- Nando > > 2>------ Build started: Project: testsuite, Configuration: Release Win32 ------ > 2>Linking... > 2> Creating library .\bin\QuantLib-test-suite-vc90-mt.lib and object .\bin\QuantLib-test-suite-vc90-mt.exp > 2>inflationcpibond.obj : error LNK2019: unresolved external symbol "public: __thiscall QuantLib::CPIBond::CPIBond(unsigned int,double,bool,double,class QuantLib::Period const &,class boost::shared_ptr<class QuantLib::ZeroInflationIndex> const &,enum QuantLib::CPI::InterpolationType,class QuantLib::Schedule const &,class std::vector<double,class std::allocator<double> > const &,class QuantLib::DayCounter const &,enum QuantLib::BusinessDayConvention,class QuantLib::Date const &)" (??0CPIBond@QuantLib@@QAE@IN_NNABVPeriod@1@ABV?$shared_ptr@VZeroInflationIndex@QuantLib@@@boost@@W4InterpolationType@CPI@1@ABVSchedule@1@ABV?$vector@NV?$allocator@N@std@@@std@@ABVDayCounter@1@W4BusinessDayConvention@1@ABVDate@1@@Z) referenced in function "public: static void __cdecl InflationCPIBondTest::testCleanPrice(void)" (?testCleanPrice@InflationCPIBondTest@@SAXXZ) > 2>markovfunctional.obj : error LNK2019: unresolved external symbol "public: __thiscall QuantLib::SwaptionVolCube1::SwaptionVolCube1(class QuantLib::Handle<class QuantLib::SwaptionVolatilityStructure> const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<double,class std::allocator<double> > const &,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,bool,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class std::vector<bool,class std::allocator<bool> > const &,bool,class boost::shared_ptr<class QuantLib::EndCriteria> const &,double,class boost::shared_ptr<class QuantLib::OptimizationMethod> const &,double,bool,unsigned int)" (??0SwaptionVolCube1@QuantLib@@QAE@ABV?$Handle@VSwaptionVolatilityStructure@QuantLib@@@1@ABV?$vector@VPeriod@QuantLib@@V?$allocator@VPeriod@QuantLib@@@std@@@std@@1ABV?$vector@NV?$allocator@N@std@@@4@ABV?$vector@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@V?$allocator@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@@2@@4@ABV?$shared_ptr@VSwapIndex@QuantLib@@@boost@@4_N3ABV?$vector@_NV?$allocator@_N@std@@@4@5ABV?$shared_ptr@VEndCriteria@QuantLib@@@8@NABV?$shared_ptr@VOptimizationMethod@QuantLib@@@8@N_NI@Z) referenced in function "class QuantLib::Handle<class QuantLib::SwaptionVolatilityStructure> __cdecl `anonymous namespace'::md0SwaptionVts(void)" (?md0SwaptionVts@?A0xcaf0c29a@@YA?AV?$Handle@VSwaptionVolatilityStructure@QuantLib@@@QuantLib@@XZ) > 2>rangeaccrual.obj : error LNK2001: unresolved external symbol "public: __thiscall QuantLib::SwaptionVolCube1::SwaptionVolCube1(class QuantLib::Handle<class QuantLib::SwaptionVolatilityStructure> const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<double,class std::allocator<double> > const &,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,bool,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class std::vector<bool,class std::allocator<bool> > const &,bool,class boost::shared_ptr<class QuantLib::EndCriteria> const &,double,class boost::shared_ptr<class QuantLib::OptimizationMethod> const &,double,bool,unsigned int)" (??0SwaptionVolCube1@QuantLib@@QAE@ABV?$Handle@VSwaptionVolatilityStructure@QuantLib@@@1@ABV?$vector@VPeriod@QuantLib@@V?$allocator@VPeriod@QuantLib@@@std@@@std@@1ABV?$vector@NV?$allocator@N@std@@@4@ABV?$vector@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@V?$allocator@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@@2@@4@ABV?$shared_ptr@VSwapIndex@QuantLib@@@boost@@4_N3ABV?$vector@_NV?$allocator@_N@std@@@4@5ABV?$shared_ptr@VEndCriteria@QuantLib@@@8@NABV?$shared_ptr@VOptimizationMethod@QuantLib@@@8@N_NI@Z) > 2>swaptionvolatilitycube.obj : error LNK2001: unresolved external symbol "public: __thiscall QuantLib::SwaptionVolCube1::SwaptionVolCube1(class QuantLib::Handle<class QuantLib::SwaptionVolatilityStructure> const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<double,class std::allocator<double> > const &,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,bool,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class std::vector<bool,class std::allocator<bool> > const &,bool,class boost::shared_ptr<class QuantLib::EndCriteria> const &,double,class boost::shared_ptr<class QuantLib::OptimizationMethod> const &,double,bool,unsigned int)" (??0SwaptionVolCube1@QuantLib@@QAE@ABV?$Handle@VSwaptionVolatilityStructure@QuantLib@@@1@ABV?$vector@VPeriod@QuantLib@@V?$allocator@VPeriod@QuantLib@@@std@@@std@@1ABV?$vector@NV?$allocator@N@std@@@4@ABV?$vector@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@V?$allocator@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@@2@@4@ABV?$shared_ptr@VSwapIndex@QuantLib@@@boost@@4_N3ABV?$vector@_NV?$allocator@_N@std@@@4@5ABV?$shared_ptr@VEndCriteria@QuantLib@@@8@NABV?$shared_ptr@VOptimizationMethod@QuantLib@@@8@N_NI@Z) > 2>piecewiseyieldcurve.obj : error LNK2019: unresolved external symbol "public: __thiscall QuantLib::FixedRateBondHelper::FixedRateBondHelper(class QuantLib::Handle<class QuantLib::Quote> const &,unsigned int,double,class QuantLib::Schedule const &,class std::vector<double,class std::allocator<double> > const &,class QuantLib::DayCounter const &,enum QuantLib::BusinessDayConvention,double,class QuantLib::Date const &)" (??0FixedRateBondHelper@QuantLib@@QAE@ABV?$Handle@VQuote@QuantLib@@@1@INABVSchedule@1@ABV?$vector@NV?$allocator@N@std@@@std@@ABVDayCounter@1@W4BusinessDayConvention@1@NABVDate@1@@Z) referenced in function "public: __thiscall `anonymous namespace'::CommonVars::CommonVars(void)" (??0CommonVars@?A0xdb80a3f2@@QAE@XZ) > 2>.\bin\QuantLib-test-suite-vc90-mt.exe : fatal error LNK1120: 3 unresolved externals > ------------------------------------------------------------------------------ > Open source business process management suite built on Java and Eclipse > Turn processes into business applications with Bonita BPM Community Edition > Quickly connect people, data, and systems into organized workflows > Winner of BOSSIE, CODIE, OW2 and Gartner awards > http://p.sf.net/sfu/Bonitasoft_______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
|
From: Ferdinando M. A. <fer...@am...> - 2014-06-24 13:38:32
|
Hi I would like to upgrade to VC12. As I've got rusty at solution management I was wondering: 1) is anyone else willing to perform it 2) if I do it, should I allow VC12 to upgrade from V9, V10, or VC11 solutions? Incidentally, the test-suite in the current VC9 solution does not link, probably because of missing CPIBond, SwaptionVolCube1, and FixedRateBondHelper files in the QuantLib project. I cannot figure out quickly the missing files, any help appreciated, error attached belo ciao -- Nando 2>------ Build started: Project: testsuite, Configuration: Release Win32 ------ 2>Linking... 2> Creating library .\bin\QuantLib-test-suite-vc90-mt.lib and object .\bin\QuantLib-test-suite-vc90-mt.exp 2>inflationcpibond.obj : error LNK2019: unresolved external symbol "public: __thiscall QuantLib::CPIBond::CPIBond(unsigned int,double,bool,double,class QuantLib::Period const &,class boost::shared_ptr<class QuantLib::ZeroInflationIndex> const &,enum QuantLib::CPI::InterpolationType,class QuantLib::Schedule const &,class std::vector<double,class std::allocator<double> > const &,class QuantLib::DayCounter const &,enum QuantLib::BusinessDayConvention,class QuantLib::Date const &)" (??0CPIBond@QuantLib@@QAE@IN_NNABVPeriod@1@ABV ?$shared_ptr@VZeroInflationIndex@QuantLib@@@boost@@W4InterpolationType@CPI @1@ABVSchedule@1@ABV?$vector@NV?$allocator@N@std@@@std@@ABVDayCounter@1 @W4BusinessDayConvention@1@ABVDate@1@@Z) referenced in function "public: static void __cdecl InflationCPIBondTest::testCleanPrice(void)" (?testCleanPrice@InflationCPIBondTest@@SAXXZ) 2>markovfunctional.obj : error LNK2019: unresolved external symbol "public: __thiscall QuantLib::SwaptionVolCube1::SwaptionVolCube1(class QuantLib::Handle<class QuantLib::SwaptionVolatilityStructure> const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<double,class std::allocator<double> > const &,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,bool,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class std::vector<bool,class std::allocator<bool> > const &,bool,class boost::shared_ptr<class QuantLib::EndCriteria> const &,double,class boost::shared_ptr<class QuantLib::OptimizationMethod> const &,double,bool,unsigned int)" (??0SwaptionVolCube1@QuantLib@@QAE@ABV ?$Handle@VSwaptionVolatilityStructure@QuantLib@@@1@ABV?$vector@VPeriod @QuantLib@@V?$allocator@VPeriod@QuantLib@@@std@@@std@@1ABV?$vector@NV ?$allocator@N@std@@@4@ABV?$vector@V?$vector@V?$Handle@VQuote@QuantLib@ @@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@ @V?$allocator@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@@V?$allocator@V ?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@@2@@4@ABV ?$shared_ptr@VSwapIndex@QuantLib@@@boost@@4_N3ABV?$vector@_NV?$allocator@ _N@std@@@4@5ABV?$shared_ptr@VEndCriteria@QuantLib@@@8@NABV ?$shared_ptr@VOptimizationMethod@QuantLib@@@8@N_NI@Z) referenced in function "class QuantLib::Handle<class QuantLib::SwaptionVolatilityStructure> __cdecl `anonymous namespace'::md0SwaptionVts(void)" (?md0SwaptionVts@?A0xcaf0c29a@ @YA?AV?$Handle@VSwaptionVolatilityStructure@QuantLib@@@QuantLib@@XZ) 2>rangeaccrual.obj : error LNK2001: unresolved external symbol "public: __thiscall QuantLib::SwaptionVolCube1::SwaptionVolCube1(class QuantLib::Handle<class QuantLib::SwaptionVolatilityStructure> const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<double,class std::allocator<double> > const &,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,bool,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class std::vector<bool,class std::allocator<bool> > const &,bool,class boost::shared_ptr<class QuantLib::EndCriteria> const &,double,class boost::shared_ptr<class QuantLib::OptimizationMethod> const &,double,bool,unsigned int)" (??0SwaptionVolCube1@QuantLib@@QAE@ABV ?$Handle@VSwaptionVolatilityStructure@QuantLib@@@1@ABV?$vector@VPeriod @QuantLib@@V?$allocator@VPeriod@QuantLib@@@std@@@std@@1ABV?$vector@NV ?$allocator@N@std@@@4@ABV?$vector@V?$vector@V?$Handle@VQuote@QuantLib@ @@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@ @V?$allocator@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@@V?$allocator@V ?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@@2@@4@ABV ?$shared_ptr@VSwapIndex@QuantLib@@@boost@@4_N3ABV?$vector@_NV?$allocator@ _N@std@@@4@5ABV?$shared_ptr@VEndCriteria@QuantLib@@@8@NABV ?$shared_ptr@VOptimizationMethod@QuantLib@@@8@N_NI@Z) 2>swaptionvolatilitycube.obj : error LNK2001: unresolved external symbol "public: __thiscall QuantLib::SwaptionVolCube1::SwaptionVolCube1(class QuantLib::Handle<class QuantLib::SwaptionVolatilityStructure> const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<class QuantLib::Period,class std::allocator<class QuantLib::Period> > const &,class std::vector<double,class std::allocator<double> > const &,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,class boost::shared_ptr<class QuantLib::SwapIndex> const &,bool,class std::vector<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > >,class std::allocator<class std::vector<class QuantLib::Handle<class QuantLib::Quote>,class std::allocator<class QuantLib::Handle<class QuantLib::Quote> > > > > const &,class std::vector<bool,class std::allocator<bool> > const &,bool,class boost::shared_ptr<class QuantLib::EndCriteria> const &,double,class boost::shared_ptr<class QuantLib::OptimizationMethod> const &,double,bool,unsigned int)" (??0SwaptionVolCube1@QuantLib@@QAE@ABV ?$Handle@VSwaptionVolatilityStructure@QuantLib@@@1@ABV?$vector@VPeriod @QuantLib@@V?$allocator@VPeriod@QuantLib@@@std@@@std@@1ABV?$vector@NV ?$allocator@N@std@@@4@ABV?$vector@V?$vector@V?$Handle@VQuote@QuantLib@ @@QuantLib@@V?$allocator@V?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@ @V?$allocator@V?$vector@V?$Handle@VQuote@QuantLib@@@QuantLib@@V?$allocator@V ?$Handle@VQuote@QuantLib@@@QuantLib@@@std@@@std@@@2@@4@ABV ?$shared_ptr@VSwapIndex@QuantLib@@@boost@@4_N3ABV?$vector@_NV?$allocator@ _N@std@@@4@5ABV?$shared_ptr@VEndCriteria@QuantLib@@@8@NABV ?$shared_ptr@VOptimizationMethod@QuantLib@@@8@N_NI@Z) 2>piecewiseyieldcurve.obj : error LNK2019: unresolved external symbol "public: __thiscall QuantLib::FixedRateBondHelper::FixedRateBondHelper(class QuantLib::Handle<class QuantLib::Quote> const &,unsigned int,double,class QuantLib::Schedule const &,class std::vector<double,class std::allocator<double> > const &,class QuantLib::DayCounter const &,enum QuantLib::BusinessDayConvention,double,class QuantLib::Date const &)" (??0FixedRateBondHelper@QuantLib@@QAE@ABV?$Handle@VQuote@QuantLib@ @@1@INABVSchedule@1@ABV?$vector@NV?$allocator@N@std@@@std@@ABVDayCounter@1 @W4BusinessDayConvention@1@NABVDate@1@@Z) referenced in function "public: __thiscall `anonymous namespace'::CommonVars::CommonVars(void)" (??0CommonVars@?A0xdb80a3f2@@QAE@XZ) 2>.\bin\QuantLib-test-suite-vc90-mt.exe : fatal error LNK1120: 3 unresolved externals |
|
From: Joseph W. <joe...@gm...> - 2014-06-19 22:26:56
|
Thanks for the note. I'll take a look at the code some time next week.
Since the loops are being vectorized, it looks like there isn't any benefit
to parallelization and I'll see about taking the omp pragmas out.
On Thu, Jun 19, 2014 at 11:47 PM, Peter Caspers <pca...@gm...>
wrote:
> Hi,
>
> I did some more tests. First of all I have to correct my numbers below
> for 7 and 8 threads, when I rerun the example I get ~ 26s for both. I
> don't know, what went wrong the last time. Anyway I would say in
> lattice.hpp the parallel for is indeed useful giving a speed-up factor
> of 4.6 on 8 cores in this example, that's fine.
>
> Next I looked at the FDM code again in more detail. In
> triplebandlinearop.cpp and ninepointlinearop.cpp all omp pragmas are
> applied to loops of this kind
>
> for (Size i=0; i < size; ++i) {
> diag[i] = y_diag[i];
> lower[i] = y_lower[i];
> upper[i] = y_upper[i];
> }
>
> which I guess are already optimized by the compiler on one thread very
> well and multithreading would only makes sense for very big sizes
> (playing around with that in toy examples with loops of similar
> complexity I see a speed up only with loop sizes around 1E+8 and
> bigger). Indeed disabling the parallel for pragmas in the operator
> classes does not change the performance of the test cases filtered by
> --run_test='*/*/*Fd*', see below (only the overhead is avoided, which
> seems desirable). It seems that these loops are all vectorized by the
> compiler without having to do anything, because I am getting the same
> running times when adding #pragma omp simd explicitly.
>
> I am not sure about the parallelevolver.hpp and stepcondition.hpp, but
> at least I don't see any benefit in the Fd test cases or the
> BermudanSwaption Example (which I think also uses them (?)).
>
> all #pragma omp enabled
>
> 8 threads real 1m29.793s user 8m15.733s
> 2 threads real 1m13.676s user 1m56.217s
>
> disable triplebandlinearop.cpp
>
> 8 threads real 1m31.091s user 6m47.130s
> 2 threads real 1m15.548s user 1m43.742s
>
> disable triplebandlinearop.cpp, ninepointlinearop.cpp
>
> 8 threads real 1m18.263s user 1m56.950s
> 2 threads real 1m15.677suser 1m16.592s
>
> disable triplebandlinearop.cpp, ninepointlinearop.cpp,
> parallelevolver.hpp, stepcondition.hpp
>
> real 1m14.468s user 1m11.959s
>
> Peter
>
> On 16 June 2014 12:52, Peter Caspers <pca...@gm...> wrote:
> > yes, this example scales well up to 6 cores:
> >
> > without omp 1m20s
> > threads=2, real=0m42s
> > threads=4, real=0m36s
> > threads=5, real=0m30s
> > threads=6, real=0m27s
> > threads=7, real=0m40s
> > threads=8, real=2m53s
> >
> > Peter
> >
> >
> > On 16 June 2014 09:45, Luigi Ballabio <lui...@gm...> wrote:
> >> Trees seem to fare better. On the BermudanSwaption example, the
> >> elapsed time does halve on two cores (more or less). Peter, what do
> >> you get on 4 or 8?
> >> Also, there might be other factors that enter the equation (number of
> >> cache lines, for example?)
> >>
> >> Luigi
> >>
> >>
> >> On Sun, Jun 15, 2014 at 10:20 PM, Piter Dias <pit...@pi...>
> wrote:
> >>> Is there a chance of the test being too small? I remember that many
> years
> >>> ago (during my Algorithmics days) we used to make tests as big as the
> client
> >>> real portfolio in order to make server buying advices (mainly based on
> >>> number of processors due to scenarios valuation).
> >>>
> >>> Would the speed-up factors significantly change if the base scenario
> runs
> >>> for, lets say, 15 minutes? It would make fixed costs more negligible.
> >>>
> >>> Regards,
> >>>
> >>> _____________________
> >>> Piter Dias
> >>> pit...@pi...
> >>> www.piterdias.com
> >>>
> >>>
> >>>
> >>>> Date: Sun, 15 Jun 2014 20:11:28 +0200
> >>>> From: pca...@gm...
> >>>> To: ja...@fr...
> >>>> CC: joe...@gm...; qua...@li...;
> >>>> lui...@gm...
> >>>> Subject: Re: [Quantlib-dev] OpenMP - current usage in ql
> >>>
> >>>>
> >>>> oh yes, my timings below are total CPU time rather than wall clock
> >>>> time ( I usually measure the latter by just counting seconds in my
> >>>> head ... ). That was unfair, sorry ! With the time command I get (for
> >>>> the AmericanOptionTest)
> >>>>
> >>>> g++ -O3 -fopenmp
> >>>>
> >>>> OMP_NUM_THREADS=1 real = 1.925s
> >>>> OMP_NUM_THREADS=2 real = 1.468s
> >>>> OMP_NUM_THREADS=3 real = 1.590s
> >>>> OMP_NUM_THREADS=4 real = 1.647s
> >>>> OMP_NUM_THREADS=5 real = 1.780s
> >>>> OMP_NUM_THREADS=6 real = 1.838s
> >>>> OMP_NUM_THREADS=7 real = 2.081s
> >>>> OMP_NUM_THREADS=8 real = 2.282s
> >>>>
> >>>> g++ -O3
> >>>>
> >>>> real = 1.638s
> >>>>
> >>>> still, the point is the same imo. WIth 8 cores I'd expect maybe a
> >>>> speed-up factor of 4 to 6. What we instead see is something around 1
> >>>> (often below 1 as it seems), so effectively all the additional cpu
> >>>> time is eaten up by the overhead for multiple threads. That's not
> >>>> worth it, is it ? I didn't try many optimizations with omp yet, but
> >>>> what I see in "good" cases are the 4-6 above. I wouldn't parallelize
> >>>> for much below.
> >>>>
> >>>> best regards
> >>>> Peter
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On 15 June 2014 17:18, <ja...@fr...> wrote:
> >>>> > Hi,
> >>>> > Have you tried to use only the 4 physical threads of your cpu? I
> dont
> >>>> > use OpenMP but I use boost threads and hyperthreading does very
> weird
> >>>> > things; one is that over 4 threads (in this case) scaling stops
> being
> >>>> > linear, which makes sense. Luigi, your 2 cpus are physical, right?
> >>>> > just a shot.
> >>>> > Best
> >>>> >
> >>>> >
> >>>> > ----- Original Message -----
> >>>> >> Yes, the timing might be off. I suspect that the Boost timer is
> >>>> >> reporting the total CPU time, that is, the sum of the actual time
> per
> >>>> >> each CPU. On my box, if I run the BermudanSwaption example with
> >>>> >> OpenMP
> >>>> >> enabled, it outputs:
> >>>> >>
> >>>> >> Run completed in 2 m 35 s
> >>>> >>
> >>>> >> but if I call it through "time", I get an output like:
> >>>> >>
> >>>> >> real 1m19.767s
> >>>> >> user 2m34.183s
> >>>> >> sys 0m0.538s
> >>>> >>
> >>>> >> that is, total CPU time 2m34s, but real time 1m19s. Being the
> >>>> >> untrusting individual that I am, I also timed it with a stopwatch.
> >>>> >> The
> >>>> >> elapsed time is actually 1m19s :)
> >>>> >>
> >>>> >> This said, I still see a little slowdown in the test cases Peter
> >>>> >> listed. My times are:
> >>>> >>
> >>>> >> AmericanOptionTest: disabled 2.4s, enabled 3.4s (real time)
> >>>> >> AsianOptionTest: disabled 10.6s, enabled 10.4s
> >>>> >> BarrierOptionTest: disabled 4.9s, enabled 6.1s
> >>>> >> DividendOptionTest: disabled 5.1s, enabled 6.5s
> >>>> >> FdHestonTest: disabled 73.4s, enabled 76.8s
> >>>> >> FdmLinearOpTest: disabled 11.4s, enabled 11.6s
> >>>> >>
> >>>> >> Not much, but a bit slower anyway. I've only got 2 CPUs though
> (and I
> >>>> >> compiled with -O2). Peter, what do you get on your 8 CPUs if you
> run
> >>>> >> the cases via "time"?
> >>>> >>
> >>>> >> Luigi
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >> On Sun, Jun 15, 2014 at 3:40 PM, Joseph Wang <joe...@gm...>
> >>>> >> wrote:
> >>>> >> >
> >>>> >> > That's quite odd since OpenMP should not be causing such huge
> >>>> >> > slowdowns.
> >>>> >> >
> >>>> >> > Since by default the items are not complied, I'd rather keep the
> >>>> >> > pragma's
> >>>> >> > there.
> >>>> >> >
> >>>> >> > Also is there any possibilities that the timing code is off?
> >>>> >> >
> >>>> >> >
> >>>> >> >
> ------------------------------------------------------------------------------
> >>>> >> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk
> >>>> >> > Solutions
> >>>> >> > Find What Matters Most in Your Big Data with HPCC Systems
> >>>> >> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
> >>>> >> > Leverages Graph Analysis for Fast Processing & Easy Data
> >>>> >> > Exploration
> >>>> >> > http://p.sf.net/sfu/hpccsystems
> >>>> >> > _______________________________________________
> >>>> >> > QuantLib-dev mailing list
> >>>> >> > Qua...@li...
> >>>> >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> >>>> >> >
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >> --
> >>>> >> <https://implementingquantlib.blogspot.com>
> >>>> >> <https://twitter.com/lballabio>
> >>>> >>
> >>>> >>
> >>>> >>
> ------------------------------------------------------------------------------
> >>>> >> HPCC Systems Open Source Big Data Platform from LexisNexis Risk
> >>>> >> Solutions
> >>>> >> Find What Matters Most in Your Big Data with HPCC Systems
> >>>> >> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
> >>>> >> Leverages Graph Analysis for Fast Processing & Easy Data
> Exploration
> >>>> >> http://p.sf.net/sfu/hpccsystems
> >>>> >> _______________________________________________
> >>>> >> QuantLib-dev mailing list
> >>>> >> Qua...@li...
> >>>> >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> >>>> >>
> >>>> >
> >>>> >
> >>>> >
> ------------------------------------------------------------------------------
> >>>> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk
> >>>> > Solutions
> >>>> > Find What Matters Most in Your Big Data with HPCC Systems
> >>>> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
> >>>> > Leverages Graph Analysis for Fast Processing & Easy Data Exploration
> >>>> > http://p.sf.net/sfu/hpccsystems
> >>>> > _______________________________________________
> >>>> > QuantLib-dev mailing list
> >>>> > Qua...@li...
> >>>> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> >>>>
> >>>>
> >>>>
> ------------------------------------------------------------------------------
> >>>> HPCC Systems Open Source Big Data Platform from LexisNexis Risk
> Solutions
> >>>> Find What Matters Most in Your Big Data with HPCC Systems
> >>>> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
> >>>> Leverages Graph Analysis for Fast Processing & Easy Data Exploration
> >>>> http://p.sf.net/sfu/hpccsystems
> >>>> _______________________________________________
> >>>> QuantLib-dev mailing list
> >>>> Qua...@li...
> >>>> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> >>
> >>
> >>
> >> --
> >> <https://implementingquantlib.blogspot.com>
> >> <https://twitter.com/lballabio>
>
|
|
From: Peter C. <pca...@gm...> - 2014-06-19 15:47:29
|
Hi,
I did some more tests. First of all I have to correct my numbers below
for 7 and 8 threads, when I rerun the example I get ~ 26s for both. I
don't know, what went wrong the last time. Anyway I would say in
lattice.hpp the parallel for is indeed useful giving a speed-up factor
of 4.6 on 8 cores in this example, that's fine.
Next I looked at the FDM code again in more detail. In
triplebandlinearop.cpp and ninepointlinearop.cpp all omp pragmas are
applied to loops of this kind
for (Size i=0; i < size; ++i) {
diag[i] = y_diag[i];
lower[i] = y_lower[i];
upper[i] = y_upper[i];
}
which I guess are already optimized by the compiler on one thread very
well and multithreading would only makes sense for very big sizes
(playing around with that in toy examples with loops of similar
complexity I see a speed up only with loop sizes around 1E+8 and
bigger). Indeed disabling the parallel for pragmas in the operator
classes does not change the performance of the test cases filtered by
--run_test='*/*/*Fd*', see below (only the overhead is avoided, which
seems desirable). It seems that these loops are all vectorized by the
compiler without having to do anything, because I am getting the same
running times when adding #pragma omp simd explicitly.
I am not sure about the parallelevolver.hpp and stepcondition.hpp, but
at least I don't see any benefit in the Fd test cases or the
BermudanSwaption Example (which I think also uses them (?)).
all #pragma omp enabled
8 threads real 1m29.793s user 8m15.733s
2 threads real 1m13.676s user 1m56.217s
disable triplebandlinearop.cpp
8 threads real 1m31.091s user 6m47.130s
2 threads real 1m15.548s user 1m43.742s
disable triplebandlinearop.cpp, ninepointlinearop.cpp
8 threads real 1m18.263s user 1m56.950s
2 threads real 1m15.677suser 1m16.592s
disable triplebandlinearop.cpp, ninepointlinearop.cpp,
parallelevolver.hpp, stepcondition.hpp
real 1m14.468s user 1m11.959s
Peter
On 16 June 2014 12:52, Peter Caspers <pca...@gm...> wrote:
> yes, this example scales well up to 6 cores:
>
> without omp 1m20s
> threads=2, real=0m42s
> threads=4, real=0m36s
> threads=5, real=0m30s
> threads=6, real=0m27s
> threads=7, real=0m40s
> threads=8, real=2m53s
>
> Peter
>
>
> On 16 June 2014 09:45, Luigi Ballabio <lui...@gm...> wrote:
>> Trees seem to fare better. On the BermudanSwaption example, the
>> elapsed time does halve on two cores (more or less). Peter, what do
>> you get on 4 or 8?
>> Also, there might be other factors that enter the equation (number of
>> cache lines, for example?)
>>
>> Luigi
>>
>>
>> On Sun, Jun 15, 2014 at 10:20 PM, Piter Dias <pit...@pi...> wrote:
>>> Is there a chance of the test being too small? I remember that many years
>>> ago (during my Algorithmics days) we used to make tests as big as the client
>>> real portfolio in order to make server buying advices (mainly based on
>>> number of processors due to scenarios valuation).
>>>
>>> Would the speed-up factors significantly change if the base scenario runs
>>> for, lets say, 15 minutes? It would make fixed costs more negligible.
>>>
>>> Regards,
>>>
>>> _____________________
>>> Piter Dias
>>> pit...@pi...
>>> www.piterdias.com
>>>
>>>
>>>
>>>> Date: Sun, 15 Jun 2014 20:11:28 +0200
>>>> From: pca...@gm...
>>>> To: ja...@fr...
>>>> CC: joe...@gm...; qua...@li...;
>>>> lui...@gm...
>>>> Subject: Re: [Quantlib-dev] OpenMP - current usage in ql
>>>
>>>>
>>>> oh yes, my timings below are total CPU time rather than wall clock
>>>> time ( I usually measure the latter by just counting seconds in my
>>>> head ... ). That was unfair, sorry ! With the time command I get (for
>>>> the AmericanOptionTest)
>>>>
>>>> g++ -O3 -fopenmp
>>>>
>>>> OMP_NUM_THREADS=1 real = 1.925s
>>>> OMP_NUM_THREADS=2 real = 1.468s
>>>> OMP_NUM_THREADS=3 real = 1.590s
>>>> OMP_NUM_THREADS=4 real = 1.647s
>>>> OMP_NUM_THREADS=5 real = 1.780s
>>>> OMP_NUM_THREADS=6 real = 1.838s
>>>> OMP_NUM_THREADS=7 real = 2.081s
>>>> OMP_NUM_THREADS=8 real = 2.282s
>>>>
>>>> g++ -O3
>>>>
>>>> real = 1.638s
>>>>
>>>> still, the point is the same imo. WIth 8 cores I'd expect maybe a
>>>> speed-up factor of 4 to 6. What we instead see is something around 1
>>>> (often below 1 as it seems), so effectively all the additional cpu
>>>> time is eaten up by the overhead for multiple threads. That's not
>>>> worth it, is it ? I didn't try many optimizations with omp yet, but
>>>> what I see in "good" cases are the 4-6 above. I wouldn't parallelize
>>>> for much below.
>>>>
>>>> best regards
>>>> Peter
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On 15 June 2014 17:18, <ja...@fr...> wrote:
>>>> > Hi,
>>>> > Have you tried to use only the 4 physical threads of your cpu? I dont
>>>> > use OpenMP but I use boost threads and hyperthreading does very weird
>>>> > things; one is that over 4 threads (in this case) scaling stops being
>>>> > linear, which makes sense. Luigi, your 2 cpus are physical, right?
>>>> > just a shot.
>>>> > Best
>>>> >
>>>> >
>>>> > ----- Original Message -----
>>>> >> Yes, the timing might be off. I suspect that the Boost timer is
>>>> >> reporting the total CPU time, that is, the sum of the actual time per
>>>> >> each CPU. On my box, if I run the BermudanSwaption example with
>>>> >> OpenMP
>>>> >> enabled, it outputs:
>>>> >>
>>>> >> Run completed in 2 m 35 s
>>>> >>
>>>> >> but if I call it through "time", I get an output like:
>>>> >>
>>>> >> real 1m19.767s
>>>> >> user 2m34.183s
>>>> >> sys 0m0.538s
>>>> >>
>>>> >> that is, total CPU time 2m34s, but real time 1m19s. Being the
>>>> >> untrusting individual that I am, I also timed it with a stopwatch.
>>>> >> The
>>>> >> elapsed time is actually 1m19s :)
>>>> >>
>>>> >> This said, I still see a little slowdown in the test cases Peter
>>>> >> listed. My times are:
>>>> >>
>>>> >> AmericanOptionTest: disabled 2.4s, enabled 3.4s (real time)
>>>> >> AsianOptionTest: disabled 10.6s, enabled 10.4s
>>>> >> BarrierOptionTest: disabled 4.9s, enabled 6.1s
>>>> >> DividendOptionTest: disabled 5.1s, enabled 6.5s
>>>> >> FdHestonTest: disabled 73.4s, enabled 76.8s
>>>> >> FdmLinearOpTest: disabled 11.4s, enabled 11.6s
>>>> >>
>>>> >> Not much, but a bit slower anyway. I've only got 2 CPUs though (and I
>>>> >> compiled with -O2). Peter, what do you get on your 8 CPUs if you run
>>>> >> the cases via "time"?
>>>> >>
>>>> >> Luigi
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >> On Sun, Jun 15, 2014 at 3:40 PM, Joseph Wang <joe...@gm...>
>>>> >> wrote:
>>>> >> >
>>>> >> > That's quite odd since OpenMP should not be causing such huge
>>>> >> > slowdowns.
>>>> >> >
>>>> >> > Since by default the items are not complied, I'd rather keep the
>>>> >> > pragma's
>>>> >> > there.
>>>> >> >
>>>> >> > Also is there any possibilities that the timing code is off?
>>>> >> >
>>>> >> >
>>>> >> > ------------------------------------------------------------------------------
>>>> >> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk
>>>> >> > Solutions
>>>> >> > Find What Matters Most in Your Big Data with HPCC Systems
>>>> >> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
>>>> >> > Leverages Graph Analysis for Fast Processing & Easy Data
>>>> >> > Exploration
>>>> >> > http://p.sf.net/sfu/hpccsystems
>>>> >> > _______________________________________________
>>>> >> > QuantLib-dev mailing list
>>>> >> > Qua...@li...
>>>> >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>>>> >> >
>>>> >>
>>>> >>
>>>> >>
>>>> >> --
>>>> >> <https://implementingquantlib.blogspot.com>
>>>> >> <https://twitter.com/lballabio>
>>>> >>
>>>> >>
>>>> >> ------------------------------------------------------------------------------
>>>> >> HPCC Systems Open Source Big Data Platform from LexisNexis Risk
>>>> >> Solutions
>>>> >> Find What Matters Most in Your Big Data with HPCC Systems
>>>> >> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
>>>> >> Leverages Graph Analysis for Fast Processing & Easy Data Exploration
>>>> >> http://p.sf.net/sfu/hpccsystems
>>>> >> _______________________________________________
>>>> >> QuantLib-dev mailing list
>>>> >> Qua...@li...
>>>> >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>>>> >>
>>>> >
>>>> >
>>>> > ------------------------------------------------------------------------------
>>>> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk
>>>> > Solutions
>>>> > Find What Matters Most in Your Big Data with HPCC Systems
>>>> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
>>>> > Leverages Graph Analysis for Fast Processing & Easy Data Exploration
>>>> > http://p.sf.net/sfu/hpccsystems
>>>> > _______________________________________________
>>>> > QuantLib-dev mailing list
>>>> > Qua...@li...
>>>> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
>>>> Find What Matters Most in Your Big Data with HPCC Systems
>>>> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
>>>> Leverages Graph Analysis for Fast Processing & Easy Data Exploration
>>>> http://p.sf.net/sfu/hpccsystems
>>>> _______________________________________________
>>>> QuantLib-dev mailing list
>>>> Qua...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>>
>>
>>
>> --
>> <https://implementingquantlib.blogspot.com>
>> <https://twitter.com/lballabio>
|
|
From: Francois B. <ig...@gm...> - 2014-06-18 15:27:47
|
Haha. I actually did read your email the other day, but I didn't make the connection when I discovered the issue now. No fix yet, but I'll see if I can get something together. It will have to involve passing the original reference date through to the fixing algorithm. F Francois Botha On 18 June 2014 17:17, Peter Caspers <pca...@gm...> wrote: > Hi Francois, > > yes, you have to use June's 30 days. This is corresponding to the > question I sent earlier (see below), the second (Murex) way of doing > the interpolation is the correct one. > > Do you have a fix for that ? This would be great. > > best > Peter > > I am comparing Murex and QuantLib concerning Inflation Pricing. I > observe a difference in the way an index fixing is interpolated > between known (i.e. already fixed) values. Here is an example: > Take the EUHICP XT index which has fixings > 01.08.2012 (Aug 12) 115.10 > 01.09.2012 (Sep 12) 115.97 > Now I want to look up the fixing on 28.08.2012 belonging to an > observation date on 28.11.2012 (3m observation lag). In QL the > interpolation is done as follows: > Days between 01.08. and 01.09. = 31, Days between 01.08. and 28.08. = > 27, Interpolated Fixing = 115.10 + 27/31 * ( 115.97 - 115.10 ) > In Murex on the opposite: > Days between 01.11. and 01.12. = 30, Days between 01.11. and 28.11. = > 27, Interpolated Fixing = 115.10 + 27/30 * ( 115.97 - 115.10 ) > > On 18 June 2014 16:50, Francois Botha <ig...@gm...> wrote: > > Hi, > > > > I think the interpolation in ZeroInflationIndex::fixing isn't exactly > > correctly. > > > > Consider a linearly interpolated Zero Inflation Index with observation > lag > > of 4 months. If the reference date is in June, the observation date will > be > > in February, which has only 28 days. I believe the interpolation should > use > > June's 30 days instead of February's 28 days. As it is, the interpolation > > will be "maxed out" by 28 June and will remain flat until 30 June. Do > you > > guys agree? > > > > regards > > Francois Botha > > > > > ------------------------------------------------------------------------------ > > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > > Find What Matters Most in Your Big Data with HPCC Systems > > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > > http://p.sf.net/sfu/hpccsystems > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > |
|
From: Peter C. <pca...@gm...> - 2014-06-18 15:18:08
|
Hi Francois, yes, you have to use June's 30 days. This is corresponding to the question I sent earlier (see below), the second (Murex) way of doing the interpolation is the correct one. Do you have a fix for that ? This would be great. best Peter I am comparing Murex and QuantLib concerning Inflation Pricing. I observe a difference in the way an index fixing is interpolated between known (i.e. already fixed) values. Here is an example: Take the EUHICP XT index which has fixings 01.08.2012 (Aug 12) 115.10 01.09.2012 (Sep 12) 115.97 Now I want to look up the fixing on 28.08.2012 belonging to an observation date on 28.11.2012 (3m observation lag). In QL the interpolation is done as follows: Days between 01.08. and 01.09. = 31, Days between 01.08. and 28.08. = 27, Interpolated Fixing = 115.10 + 27/31 * ( 115.97 - 115.10 ) In Murex on the opposite: Days between 01.11. and 01.12. = 30, Days between 01.11. and 28.11. = 27, Interpolated Fixing = 115.10 + 27/30 * ( 115.97 - 115.10 ) On 18 June 2014 16:50, Francois Botha <ig...@gm...> wrote: > Hi, > > I think the interpolation in ZeroInflationIndex::fixing isn't exactly > correctly. > > Consider a linearly interpolated Zero Inflation Index with observation lag > of 4 months. If the reference date is in June, the observation date will be > in February, which has only 28 days. I believe the interpolation should use > June's 30 days instead of February's 28 days. As it is, the interpolation > will be "maxed out" by 28 June and will remain flat until 30 June. Do you > guys agree? > > regards > Francois Botha > > ------------------------------------------------------------------------------ > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > Find What Matters Most in Your Big Data with HPCC Systems > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > http://p.sf.net/sfu/hpccsystems > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > |
|
From: Francois B. <ig...@gm...> - 2014-06-18 14:51:09
|
Hi, I think the interpolation in ZeroInflationIndex::fixing isn't exactly correctly. Consider a linearly interpolated Zero Inflation Index with observation lag of 4 months. If the reference date is in June, the observation date will be in February, which has only 28 days. I believe the interpolation should use June's 30 days instead of February's 28 days. As it is, the interpolation will be "maxed out" by 28 June and will remain flat until 30 June. Do you guys agree? regards Francois Botha |
|
From: Francois B. <ig...@gm...> - 2014-06-17 09:31:36
|
Thanks, but I don't think you should go through all that effort. I think this is a Dev-C++ issue, rather than a QuantLib issue. Francois Botha On 17 June 2014 11:24, Luigi Ballabio <lui...@gm...> wrote: > I don't have a Windows machine anymore. I'd have to try setting up a > virtual one. > > Luigi > > On Tue, Jun 17, 2014 at 11:22 AM, Francois Botha <ig...@gm...> wrote: > > Also, Luigi, are you able to build a .dll file with Dev-C++ ? My build > fails > > at the dllwrap.exe stage. I think it's because length of the total > arguments > > is too much. > > > > C:\Program Files\Dev-Cpp\MinGW64\bin\dllwrap.exe: Must provide at least > one > > of -o or --dllname options > > even though the -o parameter is included in the dllwrap.exe command. > > > > > > Francois Botha > > > > > > On 17 June 2014 10:50, Francois Botha <ig...@gm...> wrote: > >> > >> Thanks. And the other changes that Dev-C++ wants to make? Do you have > any > >> objections against them? Here's the diff: > >> > >> diff --git a/QuantLib/QuantLib.dev b/QuantLib/QuantLib.dev > >> index 9b36703..0de1050 100644 > >> --- a/QuantLib/QuantLib.dev > >> +++ b/QuantLib/QuantLib.dev > >> @@ -3,7 +3,7 @@ FileName=QuantLib.dev > >> Name=QuantLib > >> UnitCount=1962 > >> Type=2 > >> -Ver=1 > >> +Ver=2 > >> ObjFiles= > >> Includes=. > >> Libs= > >> @@ -27,7 +27,9 @@ CustomMakefile=Makefile.win > >> IncludeVersionInfo=1 > >> SupportXPThemes=0 > >> CompilerSet=0 > >> -CompilerSettings=0000001001010000000100 > >> +CompilerSettings=0000001001010000000100000 > >> +LogOutput= > >> +LogOutputEnabled=0 > >> > >> [Unit1] > >> FileName=ql\cashflows\timebasket.hpp > >> @@ -8686,6 +8688,7 @@ OriginalFilename=libQuantLib-mgw.a > >> ProductName=QuantLib > >> ProductVersion=1.0.0 > >> AutoIncBuildNr=0 > >> +SyncProduct=0 > >> > >> [Unit865] > >> FileName=ql\termstructures\inflation\piecewiseyoyinflationcurve.hpp > >> @@ -19696,3 +19699,4 @@ Link=1 > >> Priority=1000 > >> OverrideBuildCmd=0 > >> BuildCmd= > >> + > >> > >> > >> > >> > >> Francois Botha > >> > >> > >> On 17 June 2014 10:22, Luigi Ballabio <lui...@gm...> wrote: > >>> > >>> I've been adding new files to the .dev file, but I haven't updated (or > >>> even opened) Dev-C++ for a while. Anybody else? > >>> (Oh, and the missing file should be included in the project now--I've > >>> added it last week or so.) > >>> > >>> Luigi > >>> > >>> > >>> On Tue, Jun 17, 2014 at 10:17 AM, Francois Botha <ig...@gm...> > >>> wrote: > >>> > Hi, > >>> > > >>> > I noticed this file in the repository. I managed to open it with a > >>> > fresh > >>> > download of Orwell Dev-C++. I noticed that it's missing at least one > >>> > file, > >>> > ql/math/interpolations/backwardflatlinearinterpolation.hpp, as > reported > >>> > by > >>> > dev_tools/sync_projects.sh . > >>> > > >>> > Also, Dev-C++ complains about the compiler settings format that has > >>> > changed. > >>> > so I assume this QuantLib.dev file is still in an old file. Is this > >>> > QuantLib.dev file still being maintained? > >>> > > >>> > After playing around in Dev-C++ I quite like it. It has much lower > RAM > >>> > requirements than MSVC, so I'd like to get this .dev file up to date. > >>> > Are > >>> > there any caveats before I update and push the newer format of this > >>> > file? > >>> > Does anybody else here actively use it? > >>> > > >>> > regards, > >>> > Francois Botha > >>> > > >>> > > >>> > > ------------------------------------------------------------------------------ > >>> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk > >>> > Solutions > >>> > Find What Matters Most in Your Big Data with HPCC Systems > >>> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > >>> > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > >>> > http://p.sf.net/sfu/hpccsystems > >>> > _______________________________________________ > >>> > QuantLib-dev mailing list > >>> > Qua...@li... > >>> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > >>> > > >>> > >>> > >>> > >>> -- > >>> <https://implementingquantlib.blogspot.com> > >>> <https://twitter.com/lballabio> > >> > >> > > > > > > -- > <https://implementingquantlib.blogspot.com> > <https://twitter.com/lballabio> > |
|
From: Luigi B. <lui...@gm...> - 2014-06-17 09:24:23
|
I don't have a Windows machine anymore. I'd have to try setting up a virtual one. Luigi On Tue, Jun 17, 2014 at 11:22 AM, Francois Botha <ig...@gm...> wrote: > Also, Luigi, are you able to build a .dll file with Dev-C++ ? My build fails > at the dllwrap.exe stage. I think it's because length of the total arguments > is too much. > > C:\Program Files\Dev-Cpp\MinGW64\bin\dllwrap.exe: Must provide at least one > of -o or --dllname options > even though the -o parameter is included in the dllwrap.exe command. > > > Francois Botha > > > On 17 June 2014 10:50, Francois Botha <ig...@gm...> wrote: >> >> Thanks. And the other changes that Dev-C++ wants to make? Do you have any >> objections against them? Here's the diff: >> >> diff --git a/QuantLib/QuantLib.dev b/QuantLib/QuantLib.dev >> index 9b36703..0de1050 100644 >> --- a/QuantLib/QuantLib.dev >> +++ b/QuantLib/QuantLib.dev >> @@ -3,7 +3,7 @@ FileName=QuantLib.dev >> Name=QuantLib >> UnitCount=1962 >> Type=2 >> -Ver=1 >> +Ver=2 >> ObjFiles= >> Includes=. >> Libs= >> @@ -27,7 +27,9 @@ CustomMakefile=Makefile.win >> IncludeVersionInfo=1 >> SupportXPThemes=0 >> CompilerSet=0 >> -CompilerSettings=0000001001010000000100 >> +CompilerSettings=0000001001010000000100000 >> +LogOutput= >> +LogOutputEnabled=0 >> >> [Unit1] >> FileName=ql\cashflows\timebasket.hpp >> @@ -8686,6 +8688,7 @@ OriginalFilename=libQuantLib-mgw.a >> ProductName=QuantLib >> ProductVersion=1.0.0 >> AutoIncBuildNr=0 >> +SyncProduct=0 >> >> [Unit865] >> FileName=ql\termstructures\inflation\piecewiseyoyinflationcurve.hpp >> @@ -19696,3 +19699,4 @@ Link=1 >> Priority=1000 >> OverrideBuildCmd=0 >> BuildCmd= >> + >> >> >> >> >> Francois Botha >> >> >> On 17 June 2014 10:22, Luigi Ballabio <lui...@gm...> wrote: >>> >>> I've been adding new files to the .dev file, but I haven't updated (or >>> even opened) Dev-C++ for a while. Anybody else? >>> (Oh, and the missing file should be included in the project now--I've >>> added it last week or so.) >>> >>> Luigi >>> >>> >>> On Tue, Jun 17, 2014 at 10:17 AM, Francois Botha <ig...@gm...> >>> wrote: >>> > Hi, >>> > >>> > I noticed this file in the repository. I managed to open it with a >>> > fresh >>> > download of Orwell Dev-C++. I noticed that it's missing at least one >>> > file, >>> > ql/math/interpolations/backwardflatlinearinterpolation.hpp, as reported >>> > by >>> > dev_tools/sync_projects.sh . >>> > >>> > Also, Dev-C++ complains about the compiler settings format that has >>> > changed. >>> > so I assume this QuantLib.dev file is still in an old file. Is this >>> > QuantLib.dev file still being maintained? >>> > >>> > After playing around in Dev-C++ I quite like it. It has much lower RAM >>> > requirements than MSVC, so I'd like to get this .dev file up to date. >>> > Are >>> > there any caveats before I update and push the newer format of this >>> > file? >>> > Does anybody else here actively use it? >>> > >>> > regards, >>> > Francois Botha >>> > >>> > >>> > ------------------------------------------------------------------------------ >>> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk >>> > Solutions >>> > Find What Matters Most in Your Big Data with HPCC Systems >>> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >>> > Leverages Graph Analysis for Fast Processing & Easy Data Exploration >>> > http://p.sf.net/sfu/hpccsystems >>> > _______________________________________________ >>> > QuantLib-dev mailing list >>> > Qua...@li... >>> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >>> > >>> >>> >>> >>> -- >>> <https://implementingquantlib.blogspot.com> >>> <https://twitter.com/lballabio> >> >> > -- <https://implementingquantlib.blogspot.com> <https://twitter.com/lballabio> |
|
From: Francois B. <ig...@gm...> - 2014-06-17 09:22:44
|
Also, Luigi, are you able to build a .dll file with Dev-C++ ? My build fails at the dllwrap.exe stage. I think it's because length of the total arguments is too much. C:\Program Files\Dev-Cpp\MinGW64\bin\dllwrap.exe: Must provide at least one of -o or --dllname options even though the -o parameter is included in the dllwrap.exe command. Francois Botha On 17 June 2014 10:50, Francois Botha <ig...@gm...> wrote: > Thanks. And the other changes that Dev-C++ wants to make? Do you have any > objections against them? Here's the diff: > > diff --git a/QuantLib/QuantLib.dev b/QuantLib/QuantLib.dev > index 9b36703..0de1050 100644 > --- a/QuantLib/QuantLib.dev > +++ b/QuantLib/QuantLib.dev > @@ -3,7 +3,7 @@ FileName=QuantLib.dev > Name=QuantLib > UnitCount=1962 > Type=2-Ver=1+Ver=2 > ObjFiles= > Includes=. > Libs= > @@ -27,7 +27,9 @@ CustomMakefile=Makefile.win > IncludeVersionInfo=1 > SupportXPThemes=0 > CompilerSet=0-CompilerSettings=0000001001010000000100+CompilerSettings=0000001001010000000100000+LogOutput=+LogOutputEnabled=0 > > [Unit1] > FileName=ql\cashflows\timebasket.hpp > @@ -8686,6 +8688,7 @@ OriginalFilename=libQuantLib-mgw.a > ProductName=QuantLib > ProductVersion=1.0.0 > AutoIncBuildNr=0+SyncProduct=0 > > [Unit865] > FileName=ql\termstructures\inflation\piecewiseyoyinflationcurve.hpp > @@ -19696,3 +19699,4 @@ Link=1 > Priority=1000 > OverrideBuildCmd=0 > BuildCmd=+ > > > > > Francois Botha > > > On 17 June 2014 10:22, Luigi Ballabio <lui...@gm...> wrote: > >> I've been adding new files to the .dev file, but I haven't updated (or >> even opened) Dev-C++ for a while. Anybody else? >> (Oh, and the missing file should be included in the project now--I've >> added it last week or so.) >> >> Luigi >> >> >> On Tue, Jun 17, 2014 at 10:17 AM, Francois Botha <ig...@gm...> >> wrote: >> > Hi, >> > >> > I noticed this file in the repository. I managed to open it with a fresh >> > download of Orwell Dev-C++. I noticed that it's missing at least one >> file, >> > ql/math/interpolations/backwardflatlinearinterpolation.hpp, as reported >> by >> > dev_tools/sync_projects.sh . >> > >> > Also, Dev-C++ complains about the compiler settings format that has >> changed. >> > so I assume this QuantLib.dev file is still in an old file. Is this >> > QuantLib.dev file still being maintained? >> > >> > After playing around in Dev-C++ I quite like it. It has much lower RAM >> > requirements than MSVC, so I'd like to get this .dev file up to date. >> Are >> > there any caveats before I update and push the newer format of this >> file? >> > Does anybody else here actively use it? >> > >> > regards, >> > Francois Botha >> > >> > >> ------------------------------------------------------------------------------ >> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk >> Solutions >> > Find What Matters Most in Your Big Data with HPCC Systems >> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >> > Leverages Graph Analysis for Fast Processing & Easy Data Exploration >> > http://p.sf.net/sfu/hpccsystems >> > _______________________________________________ >> > QuantLib-dev mailing list >> > Qua...@li... >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> > >> >> >> >> -- >> <https://implementingquantlib.blogspot.com> >> <https://twitter.com/lballabio> >> > > |
|
From: Francois B. <ig...@gm...> - 2014-06-17 08:50:30
|
Thanks. And the other changes that Dev-C++ wants to make? Do you have any objections against them? Here's the diff: diff --git a/QuantLib/QuantLib.dev b/QuantLib/QuantLib.dev index 9b36703..0de1050 100644 --- a/QuantLib/QuantLib.dev +++ b/QuantLib/QuantLib.dev @@ -3,7 +3,7 @@ FileName=QuantLib.dev Name=QuantLib UnitCount=1962 Type=2-Ver=1+Ver=2 ObjFiles= Includes=. Libs= @@ -27,7 +27,9 @@ CustomMakefile=Makefile.win IncludeVersionInfo=1 SupportXPThemes=0 CompilerSet=0-CompilerSettings=0000001001010000000100+CompilerSettings=0000001001010000000100000+LogOutput=+LogOutputEnabled=0 [Unit1] FileName=ql\cashflows\timebasket.hpp @@ -8686,6 +8688,7 @@ OriginalFilename=libQuantLib-mgw.a ProductName=QuantLib ProductVersion=1.0.0 AutoIncBuildNr=0+SyncProduct=0 [Unit865] FileName=ql\termstructures\inflation\piecewiseyoyinflationcurve.hpp @@ -19696,3 +19699,4 @@ Link=1 Priority=1000 OverrideBuildCmd=0 BuildCmd=+ Francois Botha On 17 June 2014 10:22, Luigi Ballabio <lui...@gm...> wrote: > I've been adding new files to the .dev file, but I haven't updated (or > even opened) Dev-C++ for a while. Anybody else? > (Oh, and the missing file should be included in the project now--I've > added it last week or so.) > > Luigi > > > On Tue, Jun 17, 2014 at 10:17 AM, Francois Botha <ig...@gm...> wrote: > > Hi, > > > > I noticed this file in the repository. I managed to open it with a fresh > > download of Orwell Dev-C++. I noticed that it's missing at least one > file, > > ql/math/interpolations/backwardflatlinearinterpolation.hpp, as reported > by > > dev_tools/sync_projects.sh . > > > > Also, Dev-C++ complains about the compiler settings format that has > changed. > > so I assume this QuantLib.dev file is still in an old file. Is this > > QuantLib.dev file still being maintained? > > > > After playing around in Dev-C++ I quite like it. It has much lower RAM > > requirements than MSVC, so I'd like to get this .dev file up to date. Are > > there any caveats before I update and push the newer format of this file? > > Does anybody else here actively use it? > > > > regards, > > Francois Botha > > > > > ------------------------------------------------------------------------------ > > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > > Find What Matters Most in Your Big Data with HPCC Systems > > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > > http://p.sf.net/sfu/hpccsystems > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > > > > -- > <https://implementingquantlib.blogspot.com> > <https://twitter.com/lballabio> > |
|
From: Eric E. <eri...@na...> - 2014-06-17 08:32:12
|
Hi All, ObjectHandler, QuantLibAddin, and QuantLibXL 1.4 are released: objecthandler.org quantlibaddin.org quantlibxl.org The files are available for download from the QuantLib downloads page: https://sourceforge.net/projects/quantlib/files/ For help please use the mailing list: https://lists.sourceforge.net/lists/listinfo/quantlib-users We have made slight changes to the way the release is packaged. In the past we used executable installers, now we are using simple zip files. We have reorganized some files for clarity, for example the example workbooks for the binary release of QuantLibXL should be easier to find. The Excel VBA Framework application has been redesigned and the yield curve bootstrap is more efficient. Support is provided for EUR, GBP, HKD, JPY, and USD. This release includes multiple bug fixes, including fixes for two severe bugs: 1) There was a problem with destruction of static objects at shutdown, which could cause Excel to crash. 2) There was a memory leak in function ohRangeRetrieveError(). In a desktop trading environment, if you started up QuantLibXL and connected it to a live data feed, and if updates triggered repeated recalculation of that function, then memory consumption climbed over the course of the day. These are old bugs but they went unnoticed because they did not manifest themselves in older versions of Excel. The problems began occurring with recent versions of Excel. If you experienced crashes or leaks with QuantLibXL, please upgrade to 1.4. Kind Regards, Eric =================================================== Eric Ehlers nazcatech sprl | Brussels | http://www.nazcatech.be * Distributed computing for pricing analytics * Use Microsoft Excel as a client to the Grid |
|
From: Luigi B. <lui...@gm...> - 2014-06-17 08:22:32
|
I've been adding new files to the .dev file, but I haven't updated (or even opened) Dev-C++ for a while. Anybody else? (Oh, and the missing file should be included in the project now--I've added it last week or so.) Luigi On Tue, Jun 17, 2014 at 10:17 AM, Francois Botha <ig...@gm...> wrote: > Hi, > > I noticed this file in the repository. I managed to open it with a fresh > download of Orwell Dev-C++. I noticed that it's missing at least one file, > ql/math/interpolations/backwardflatlinearinterpolation.hpp, as reported by > dev_tools/sync_projects.sh . > > Also, Dev-C++ complains about the compiler settings format that has changed. > so I assume this QuantLib.dev file is still in an old file. Is this > QuantLib.dev file still being maintained? > > After playing around in Dev-C++ I quite like it. It has much lower RAM > requirements than MSVC, so I'd like to get this .dev file up to date. Are > there any caveats before I update and push the newer format of this file? > Does anybody else here actively use it? > > regards, > Francois Botha > > ------------------------------------------------------------------------------ > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > Find What Matters Most in Your Big Data with HPCC Systems > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > http://p.sf.net/sfu/hpccsystems > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > -- <https://implementingquantlib.blogspot.com> <https://twitter.com/lballabio> |
|
From: Francois B. <ig...@gm...> - 2014-06-17 08:17:32
|
Hi, I noticed this file in the repository. I managed to open it with a fresh download of Orwell Dev-C++. I noticed that it's missing at least one file, ql/math/interpolations/backwardflatlinearinterpolation.hpp, as reported by dev_tools/sync_projects.sh . Also, Dev-C++ complains about the compiler settings format that has changed. so I assume this QuantLib.dev file is still in an old file. Is this QuantLib.dev file still being maintained? After playing around in Dev-C++ I quite like it. It has much lower RAM requirements than MSVC, so I'd like to get this .dev file up to date. Are there any caveats before I update and push the newer format of this file? Does anybody else here actively use it? regards, Francois Botha |
|
From: Kim T. <kue...@vo...> - 2014-06-17 01:00:42
|
Happy to see there are a few QuantLibbers in Hong Kong. I was a heavy quantlib/numerix/murex user in the past and changed to Q (http://en.wikipedia.org/wiki/Q_(programming_language_from_Kx_Systems) . Unfortunately I don’t have the time to join the conference but will be available for a beer in central. If you are around in central please let me know. Kim Von: Ferdinando M. Ametrano [mailto:fer...@am...] Gesendet: Dienstag, 17. Juni 2014 06:53 An: Joseph Wang Cc: QuantLib Mailing Lists Betreff: Re: [Quantlib-dev] Bitcoin conference in Hong Kong I'll be also at the Hong Kong conference as a panelist, namely to promote my Hayek Money paper http://ssrn.com/abstract=2425270 I'll be glad to meet Joseph and other QuantLibbers there Il 16/giu/2014 16:27 "Joseph Wang" <joe...@gm...> ha scritto: Hi all, There is going to be a big bitcoin conference in Hong Kong on June 24-25, 2014 http://www.mediabistro.com/insidebitcoins/hong-kong/ I've found that a few quantlib'ers are going to be there, and I wanted to start this thread so that we can coordinate meetups. I'm going to be on a panel on bitcoin in Hong Kong, and I'll be doing a pitch for my bitcoin analytics system that I'm trying to get integrated with quantlib through R and iPython. ------------------------------------------------------------------------------ HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions Find What Matters Most in Your Big Data with HPCC Systems Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. Leverages Graph Analysis for Fast Processing & Easy Data Exploration http://p.sf.net/sfu/hpccsystems _______________________________________________ QuantLib-dev mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
|
From: Ferdinando M. A. <fer...@am...> - 2014-06-16 23:20:41
|
I'll be also at the Hong Kong conference as a panelist, namely to promote my Hayek Money paper http://ssrn.com/abstract=2425270 I'll be glad to meet Joseph and other QuantLibbers there Il 16/giu/2014 16:27 "Joseph Wang" <joe...@gm...> ha scritto: > Hi all, > > There is going to be a big bitcoin conference in Hong Kong on June 24-25, > 2014 > > http://www.mediabistro.com/insidebitcoins/hong-kong/ > > I've found that a few quantlib'ers are going to be there, and I wanted to > start this thread so that we can coordinate meetups. I'm going to be on a > panel on bitcoin in Hong Kong, and I'll be doing a pitch for my bitcoin > analytics system that I'm trying to get integrated with quantlib through R > and iPython. > > > > > ------------------------------------------------------------------------------ > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > Find What Matters Most in Your Big Data with HPCC Systems > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > http://p.sf.net/sfu/hpccsystems > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > |
|
From: Joseph W. <joe...@gm...> - 2014-06-16 14:27:20
|
Hi all, There is going to be a big bitcoin conference in Hong Kong on June 24-25, 2014 http://www.mediabistro.com/insidebitcoins/hong-kong/ I've found that a few quantlib'ers are going to be there, and I wanted to start this thread so that we can coordinate meetups. I'm going to be on a panel on bitcoin in Hong Kong, and I'll be doing a pitch for my bitcoin analytics system that I'm trying to get integrated with quantlib through R and iPython. |
|
From: Peter C. <pca...@gm...> - 2014-06-16 10:52:22
|
yes, this example scales well up to 6 cores: without omp 1m20s threads=2, real=0m42s threads=4, real=0m36s threads=5, real=0m30s threads=6, real=0m27s threads=7, real=0m40s threads=8, real=2m53s Peter On 16 June 2014 09:45, Luigi Ballabio <lui...@gm...> wrote: > Trees seem to fare better. On the BermudanSwaption example, the > elapsed time does halve on two cores (more or less). Peter, what do > you get on 4 or 8? > Also, there might be other factors that enter the equation (number of > cache lines, for example?) > > Luigi > > > On Sun, Jun 15, 2014 at 10:20 PM, Piter Dias <pit...@pi...> wrote: >> Is there a chance of the test being too small? I remember that many years >> ago (during my Algorithmics days) we used to make tests as big as the client >> real portfolio in order to make server buying advices (mainly based on >> number of processors due to scenarios valuation). >> >> Would the speed-up factors significantly change if the base scenario runs >> for, lets say, 15 minutes? It would make fixed costs more negligible. >> >> Regards, >> >> _____________________ >> Piter Dias >> pit...@pi... >> www.piterdias.com >> >> >> >>> Date: Sun, 15 Jun 2014 20:11:28 +0200 >>> From: pca...@gm... >>> To: ja...@fr... >>> CC: joe...@gm...; qua...@li...; >>> lui...@gm... >>> Subject: Re: [Quantlib-dev] OpenMP - current usage in ql >> >>> >>> oh yes, my timings below are total CPU time rather than wall clock >>> time ( I usually measure the latter by just counting seconds in my >>> head ... ). That was unfair, sorry ! With the time command I get (for >>> the AmericanOptionTest) >>> >>> g++ -O3 -fopenmp >>> >>> OMP_NUM_THREADS=1 real = 1.925s >>> OMP_NUM_THREADS=2 real = 1.468s >>> OMP_NUM_THREADS=3 real = 1.590s >>> OMP_NUM_THREADS=4 real = 1.647s >>> OMP_NUM_THREADS=5 real = 1.780s >>> OMP_NUM_THREADS=6 real = 1.838s >>> OMP_NUM_THREADS=7 real = 2.081s >>> OMP_NUM_THREADS=8 real = 2.282s >>> >>> g++ -O3 >>> >>> real = 1.638s >>> >>> still, the point is the same imo. WIth 8 cores I'd expect maybe a >>> speed-up factor of 4 to 6. What we instead see is something around 1 >>> (often below 1 as it seems), so effectively all the additional cpu >>> time is eaten up by the overhead for multiple threads. That's not >>> worth it, is it ? I didn't try many optimizations with omp yet, but >>> what I see in "good" cases are the 4-6 above. I wouldn't parallelize >>> for much below. >>> >>> best regards >>> Peter >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> On 15 June 2014 17:18, <ja...@fr...> wrote: >>> > Hi, >>> > Have you tried to use only the 4 physical threads of your cpu? I dont >>> > use OpenMP but I use boost threads and hyperthreading does very weird >>> > things; one is that over 4 threads (in this case) scaling stops being >>> > linear, which makes sense. Luigi, your 2 cpus are physical, right? >>> > just a shot. >>> > Best >>> > >>> > >>> > ----- Original Message ----- >>> >> Yes, the timing might be off. I suspect that the Boost timer is >>> >> reporting the total CPU time, that is, the sum of the actual time per >>> >> each CPU. On my box, if I run the BermudanSwaption example with >>> >> OpenMP >>> >> enabled, it outputs: >>> >> >>> >> Run completed in 2 m 35 s >>> >> >>> >> but if I call it through "time", I get an output like: >>> >> >>> >> real 1m19.767s >>> >> user 2m34.183s >>> >> sys 0m0.538s >>> >> >>> >> that is, total CPU time 2m34s, but real time 1m19s. Being the >>> >> untrusting individual that I am, I also timed it with a stopwatch. >>> >> The >>> >> elapsed time is actually 1m19s :) >>> >> >>> >> This said, I still see a little slowdown in the test cases Peter >>> >> listed. My times are: >>> >> >>> >> AmericanOptionTest: disabled 2.4s, enabled 3.4s (real time) >>> >> AsianOptionTest: disabled 10.6s, enabled 10.4s >>> >> BarrierOptionTest: disabled 4.9s, enabled 6.1s >>> >> DividendOptionTest: disabled 5.1s, enabled 6.5s >>> >> FdHestonTest: disabled 73.4s, enabled 76.8s >>> >> FdmLinearOpTest: disabled 11.4s, enabled 11.6s >>> >> >>> >> Not much, but a bit slower anyway. I've only got 2 CPUs though (and I >>> >> compiled with -O2). Peter, what do you get on your 8 CPUs if you run >>> >> the cases via "time"? >>> >> >>> >> Luigi >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> On Sun, Jun 15, 2014 at 3:40 PM, Joseph Wang <joe...@gm...> >>> >> wrote: >>> >> > >>> >> > That's quite odd since OpenMP should not be causing such huge >>> >> > slowdowns. >>> >> > >>> >> > Since by default the items are not complied, I'd rather keep the >>> >> > pragma's >>> >> > there. >>> >> > >>> >> > Also is there any possibilities that the timing code is off? >>> >> > >>> >> > >>> >> > ------------------------------------------------------------------------------ >>> >> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk >>> >> > Solutions >>> >> > Find What Matters Most in Your Big Data with HPCC Systems >>> >> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >>> >> > Leverages Graph Analysis for Fast Processing & Easy Data >>> >> > Exploration >>> >> > http://p.sf.net/sfu/hpccsystems >>> >> > _______________________________________________ >>> >> > QuantLib-dev mailing list >>> >> > Qua...@li... >>> >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >>> >> > >>> >> >>> >> >>> >> >>> >> -- >>> >> <https://implementingquantlib.blogspot.com> >>> >> <https://twitter.com/lballabio> >>> >> >>> >> >>> >> ------------------------------------------------------------------------------ >>> >> HPCC Systems Open Source Big Data Platform from LexisNexis Risk >>> >> Solutions >>> >> Find What Matters Most in Your Big Data with HPCC Systems >>> >> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >>> >> Leverages Graph Analysis for Fast Processing & Easy Data Exploration >>> >> http://p.sf.net/sfu/hpccsystems >>> >> _______________________________________________ >>> >> QuantLib-dev mailing list >>> >> Qua...@li... >>> >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >>> >> >>> > >>> > >>> > ------------------------------------------------------------------------------ >>> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk >>> > Solutions >>> > Find What Matters Most in Your Big Data with HPCC Systems >>> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >>> > Leverages Graph Analysis for Fast Processing & Easy Data Exploration >>> > http://p.sf.net/sfu/hpccsystems >>> > _______________________________________________ >>> > QuantLib-dev mailing list >>> > Qua...@li... >>> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >>> >>> >>> ------------------------------------------------------------------------------ >>> HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions >>> Find What Matters Most in Your Big Data with HPCC Systems >>> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >>> Leverages Graph Analysis for Fast Processing & Easy Data Exploration >>> http://p.sf.net/sfu/hpccsystems >>> _______________________________________________ >>> QuantLib-dev mailing list >>> Qua...@li... >>> https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > > -- > <https://implementingquantlib.blogspot.com> > <https://twitter.com/lballabio> |
|
From: Luigi B. <lui...@gm...> - 2014-06-16 07:46:02
|
Trees seem to fare better. On the BermudanSwaption example, the elapsed time does halve on two cores (more or less). Peter, what do you get on 4 or 8? Also, there might be other factors that enter the equation (number of cache lines, for example?) Luigi On Sun, Jun 15, 2014 at 10:20 PM, Piter Dias <pit...@pi...> wrote: > Is there a chance of the test being too small? I remember that many years > ago (during my Algorithmics days) we used to make tests as big as the client > real portfolio in order to make server buying advices (mainly based on > number of processors due to scenarios valuation). > > Would the speed-up factors significantly change if the base scenario runs > for, lets say, 15 minutes? It would make fixed costs more negligible. > > Regards, > > _____________________ > Piter Dias > pit...@pi... > www.piterdias.com > > > >> Date: Sun, 15 Jun 2014 20:11:28 +0200 >> From: pca...@gm... >> To: ja...@fr... >> CC: joe...@gm...; qua...@li...; >> lui...@gm... >> Subject: Re: [Quantlib-dev] OpenMP - current usage in ql > >> >> oh yes, my timings below are total CPU time rather than wall clock >> time ( I usually measure the latter by just counting seconds in my >> head ... ). That was unfair, sorry ! With the time command I get (for >> the AmericanOptionTest) >> >> g++ -O3 -fopenmp >> >> OMP_NUM_THREADS=1 real = 1.925s >> OMP_NUM_THREADS=2 real = 1.468s >> OMP_NUM_THREADS=3 real = 1.590s >> OMP_NUM_THREADS=4 real = 1.647s >> OMP_NUM_THREADS=5 real = 1.780s >> OMP_NUM_THREADS=6 real = 1.838s >> OMP_NUM_THREADS=7 real = 2.081s >> OMP_NUM_THREADS=8 real = 2.282s >> >> g++ -O3 >> >> real = 1.638s >> >> still, the point is the same imo. WIth 8 cores I'd expect maybe a >> speed-up factor of 4 to 6. What we instead see is something around 1 >> (often below 1 as it seems), so effectively all the additional cpu >> time is eaten up by the overhead for multiple threads. That's not >> worth it, is it ? I didn't try many optimizations with omp yet, but >> what I see in "good" cases are the 4-6 above. I wouldn't parallelize >> for much below. >> >> best regards >> Peter >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> On 15 June 2014 17:18, <ja...@fr...> wrote: >> > Hi, >> > Have you tried to use only the 4 physical threads of your cpu? I dont >> > use OpenMP but I use boost threads and hyperthreading does very weird >> > things; one is that over 4 threads (in this case) scaling stops being >> > linear, which makes sense. Luigi, your 2 cpus are physical, right? >> > just a shot. >> > Best >> > >> > >> > ----- Original Message ----- >> >> Yes, the timing might be off. I suspect that the Boost timer is >> >> reporting the total CPU time, that is, the sum of the actual time per >> >> each CPU. On my box, if I run the BermudanSwaption example with >> >> OpenMP >> >> enabled, it outputs: >> >> >> >> Run completed in 2 m 35 s >> >> >> >> but if I call it through "time", I get an output like: >> >> >> >> real 1m19.767s >> >> user 2m34.183s >> >> sys 0m0.538s >> >> >> >> that is, total CPU time 2m34s, but real time 1m19s. Being the >> >> untrusting individual that I am, I also timed it with a stopwatch. >> >> The >> >> elapsed time is actually 1m19s :) >> >> >> >> This said, I still see a little slowdown in the test cases Peter >> >> listed. My times are: >> >> >> >> AmericanOptionTest: disabled 2.4s, enabled 3.4s (real time) >> >> AsianOptionTest: disabled 10.6s, enabled 10.4s >> >> BarrierOptionTest: disabled 4.9s, enabled 6.1s >> >> DividendOptionTest: disabled 5.1s, enabled 6.5s >> >> FdHestonTest: disabled 73.4s, enabled 76.8s >> >> FdmLinearOpTest: disabled 11.4s, enabled 11.6s >> >> >> >> Not much, but a bit slower anyway. I've only got 2 CPUs though (and I >> >> compiled with -O2). Peter, what do you get on your 8 CPUs if you run >> >> the cases via "time"? >> >> >> >> Luigi >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> On Sun, Jun 15, 2014 at 3:40 PM, Joseph Wang <joe...@gm...> >> >> wrote: >> >> > >> >> > That's quite odd since OpenMP should not be causing such huge >> >> > slowdowns. >> >> > >> >> > Since by default the items are not complied, I'd rather keep the >> >> > pragma's >> >> > there. >> >> > >> >> > Also is there any possibilities that the timing code is off? >> >> > >> >> > >> >> > ------------------------------------------------------------------------------ >> >> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk >> >> > Solutions >> >> > Find What Matters Most in Your Big Data with HPCC Systems >> >> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >> >> > Leverages Graph Analysis for Fast Processing & Easy Data >> >> > Exploration >> >> > http://p.sf.net/sfu/hpccsystems >> >> > _______________________________________________ >> >> > QuantLib-dev mailing list >> >> > Qua...@li... >> >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> >> > >> >> >> >> >> >> >> >> -- >> >> <https://implementingquantlib.blogspot.com> >> >> <https://twitter.com/lballabio> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> HPCC Systems Open Source Big Data Platform from LexisNexis Risk >> >> Solutions >> >> Find What Matters Most in Your Big Data with HPCC Systems >> >> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >> >> Leverages Graph Analysis for Fast Processing & Easy Data Exploration >> >> http://p.sf.net/sfu/hpccsystems >> >> _______________________________________________ >> >> QuantLib-dev mailing list >> >> Qua...@li... >> >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> >> >> > >> > >> > ------------------------------------------------------------------------------ >> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk >> > Solutions >> > Find What Matters Most in Your Big Data with HPCC Systems >> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >> > Leverages Graph Analysis for Fast Processing & Easy Data Exploration >> > http://p.sf.net/sfu/hpccsystems >> > _______________________________________________ >> > QuantLib-dev mailing list >> > Qua...@li... >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> >> >> ------------------------------------------------------------------------------ >> HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions >> Find What Matters Most in Your Big Data with HPCC Systems >> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >> Leverages Graph Analysis for Fast Processing & Easy Data Exploration >> http://p.sf.net/sfu/hpccsystems >> _______________________________________________ >> QuantLib-dev mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev -- <https://implementingquantlib.blogspot.com> <https://twitter.com/lballabio> |
|
From: <ja...@fr...> - 2014-06-16 07:23:57
|
Hello > The problem is that the big speedups are for things like monte carlo, > which are "Riduculously parallel." The trouble with MC is that once > you parallelize, the random number generator gives you different > answers, and it becomes impossible to test and also you have the > possibility of very subtle bugs with the RNG coorrelations across > different processors. Trying to get quantlib to have consistent > RNG's in multi-core MC turns out to be a non-trivial project. > I have done this with threads and its not that difficult to avoid those problems. But most (if not all) of the generators in the library are not suitable for it. Not the version of the Mersenne Twister or the distribution generators since most are rejection algorithms. I do get exactly the same result figures with one or N threads. Sobol is ok but is limited for distribution mapping; what I do is to wrap an interface around TINA's MT generator. But you need to link against that. The speed up is practically linear with CPU number at least in the context of the problem I use it for. > Alternatively, the algos that are being used for PDE's in quantlib > particularly ones relating to tridiagonal matrix operations turn out > to be terrible for parallel computing. There could be some better > speedups for PDE's with different algos that are better for parallel > systems. Also if you want to parallelizes, you want to use an > explicit PDE scheme rather than an implicit one. > > The two projects that I can think of are: > > 1) getting MC working for openmp or > 2) putting in better parallel algos for PDE's. > Back in the tokamak dark ages people use to parallelize implicit PDE solvers by breaking the domain and solving those pieces concurrently (rather than working on parallelizing the algebraic solver); all the subtlery was in sticking them together on each time step. That was a long time ago and cant remember the details. Best |
|
From: Joseph W. <joe...@gm...> - 2014-06-16 00:45:24
|
There's a reason why it's default "off." :-) :-( There's not that much parallelization going on in PDE and Tree. The OpenMP is used mainly for copying arrays so you should see some modest improvements if you are doing very large arrays, but no where close to a factor of N for N cores. The problem is that the big speedups are for things like monte carlo, which are "Riduculously parallel." The trouble with MC is that once you parallelize, the random number generator gives you different answers, and it becomes impossible to test and also you have the possibility of very subtle bugs with the RNG coorrelations across different processors. Trying to get quantlib to have consistent RNG's in multi-core MC turns out to be a non-trivial project. Alternatively, the algos that are being used for PDE's in quantlib particularly ones relating to tridiagonal matrix operations turn out to be terrible for parallel computing. There could be some better speedups for PDE's with different algos that are better for parallel systems. Also if you want to parallelizes, you want to use an explicit PDE scheme rather than an implicit one. The two projects that I can think of are: 1) getting MC working for openmp or 2) putting in better parallel algos for PDE's. If no one else is working on this, I should be in a position to do it in three months or so. Right now I'm working on the front end of my bitcoin trading system (http://www.bitquant.com.hk/). Once I get the front-end working, I'll connect quantlib to the backend through OpenGamma and the java interface, at which point I'll need to go back to backend programming. Also, if there are any other quantlib people going to HK for the bitcoin conference, let me know. It turns out that quantlib is perfect for bitcoin derviatives. In most financial products, you get the code and the trading system through the broker. Since bitcoin has no brokers, and trading systems have to be external which leaves a space for open source software. The other project I'm working on is that there are a ton of HK people (including my wife) that trade warrants and callable bull-bear certificates, and most of them don't have access to any sort of analytics. The reason for this is that brokers either don't care that their customers have access to analytics, or actually don't want clients with analytics since the brokers are taking the other side of the trade and want their clients to lose money. On Mon, Jun 16, 2014 at 4:20 AM, Piter Dias <pit...@pi...> wrote: > Is there a chance of the test being too small? I remember that many years > ago (during my Algorithmics days) we used to make tests as big as the > client real portfolio in order to make server buying advices (mainly based > on number of processors due to scenarios valuation). > > Would the speed-up factors significantly change if the base scenario runs > for, lets say, 15 minutes? It would make fixed costs more negligible. > > Regards, > > _____________________ > Piter Dias > pit...@pi... > www.piterdias.com > > > > > Date: Sun, 15 Jun 2014 20:11:28 +0200 > > From: pca...@gm... > > To: ja...@fr... > > CC: joe...@gm...; qua...@li...; > lui...@gm... > > Subject: Re: [Quantlib-dev] OpenMP - current usage in ql > > > > > oh yes, my timings below are total CPU time rather than wall clock > > time ( I usually measure the latter by just counting seconds in my > > head ... ). That was unfair, sorry ! With the time command I get (for > > the AmericanOptionTest) > > > > g++ -O3 -fopenmp > > > > OMP_NUM_THREADS=1 real = 1.925s > > OMP_NUM_THREADS=2 real = 1.468s > > OMP_NUM_THREADS=3 real = 1.590s > > OMP_NUM_THREADS=4 real = 1.647s > > OMP_NUM_THREADS=5 real = 1.780s > > OMP_NUM_THREADS=6 real = 1.838s > > OMP_NUM_THREADS=7 real = 2.081s > > OMP_NUM_THREADS=8 real = 2.282s > > > > g++ -O3 > > > > real = 1.638s > > > > still, the point is the same imo. WIth 8 cores I'd expect maybe a > > speed-up factor of 4 to 6. What we instead see is something around 1 > > (often below 1 as it seems), so effectively all the additional cpu > > time is eaten up by the overhead for multiple threads. That's not > > worth it, is it ? I didn't try many optimizations with omp yet, but > > what I see in "good" cases are the 4-6 above. I wouldn't parallelize > > for much below. > > > > best regards > > Peter > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On 15 June 2014 17:18, <ja...@fr...> wrote: > > > Hi, > > > Have you tried to use only the 4 physical threads of your cpu? I dont > use OpenMP but I use boost threads and hyperthreading does very weird > things; one is that over 4 threads (in this case) scaling stops being > linear, which makes sense. Luigi, your 2 cpus are physical, right? > > > just a shot. > > > Best > > > > > > > > > ----- Original Message ----- > > >> Yes, the timing might be off. I suspect that the Boost timer is > > >> reporting the total CPU time, that is, the sum of the actual time per > > >> each CPU. On my box, if I run the BermudanSwaption example with > > >> OpenMP > > >> enabled, it outputs: > > >> > > >> Run completed in 2 m 35 s > > >> > > >> but if I call it through "time", I get an output like: > > >> > > >> real 1m19.767s > > >> user 2m34.183s > > >> sys 0m0.538s > > >> > > >> that is, total CPU time 2m34s, but real time 1m19s. Being the > > >> untrusting individual that I am, I also timed it with a stopwatch. > > >> The > > >> elapsed time is actually 1m19s :) > > >> > > >> This said, I still see a little slowdown in the test cases Peter > > >> listed. My times are: > > >> > > >> AmericanOptionTest: disabled 2.4s, enabled 3.4s (real time) > > >> AsianOptionTest: disabled 10.6s, enabled 10.4s > > >> BarrierOptionTest: disabled 4.9s, enabled 6.1s > > >> DividendOptionTest: disabled 5.1s, enabled 6.5s > > >> FdHestonTest: disabled 73.4s, enabled 76.8s > > >> FdmLinearOpTest: disabled 11.4s, enabled 11.6s > > >> > > >> Not much, but a bit slower anyway. I've only got 2 CPUs though (and I > > >> compiled with -O2). Peter, what do you get on your 8 CPUs if you run > > >> the cases via "time"? > > >> > > >> Luigi > > >> > > >> > > >> > > >> > > >> > > >> > > >> > > >> On Sun, Jun 15, 2014 at 3:40 PM, Joseph Wang <joe...@gm...> > > >> wrote: > > >> > > > >> > That's quite odd since OpenMP should not be causing such huge > > >> > slowdowns. > > >> > > > >> > Since by default the items are not complied, I'd rather keep the > > >> > pragma's > > >> > there. > > >> > > > >> > Also is there any possibilities that the timing code is off? > > >> > > > >> > > ------------------------------------------------------------------------------ > > >> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk > > >> > Solutions > > >> > Find What Matters Most in Your Big Data with HPCC Systems > > >> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > > >> > Leverages Graph Analysis for Fast Processing & Easy Data > > >> > Exploration > > >> > http://p.sf.net/sfu/hpccsystems > > >> > _______________________________________________ > > >> > QuantLib-dev mailing list > > >> > Qua...@li... > > >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > >> > > > >> > > >> > > >> > > >> -- > > >> <https://implementingquantlib.blogspot.com> > > >> <https://twitter.com/lballabio> > > >> > > >> > ------------------------------------------------------------------------------ > > >> HPCC Systems Open Source Big Data Platform from LexisNexis Risk > > >> Solutions > > >> Find What Matters Most in Your Big Data with HPCC Systems > > >> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > > >> Leverages Graph Analysis for Fast Processing & Easy Data Exploration > > >> http://p.sf.net/sfu/hpccsystems > > >> _______________________________________________ > > >> QuantLib-dev mailing list > > >> Qua...@li... > > >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > >> > > > > > > > ------------------------------------------------------------------------------ > > > HPCC Systems Open Source Big Data Platform from LexisNexis Risk > Solutions > > > Find What Matters Most in Your Big Data with HPCC Systems > > > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > > > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > > > http://p.sf.net/sfu/hpccsystems > > > _______________________________________________ > > > QuantLib-dev mailing list > > > Qua...@li... > > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > > > ------------------------------------------------------------------------------ > > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > > Find What Matters Most in Your Big Data with HPCC Systems > > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > > http://p.sf.net/sfu/hpccsystems > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > |
|
From: Piter D. <pit...@pi...> - 2014-06-15 20:20:24
|
Is there a chance of the test being too small? I remember that many years ago (during my Algorithmics days) we used to make tests as big as the client real portfolio in order to make server buying advices (mainly based on number of processors due to scenarios valuation). Would the speed-up factors significantly change if the base scenario runs for, lets say, 15 minutes? It would make fixed costs more negligible. Regards, _____________________Piter Dia...@pi... > Date: Sun, 15 Jun 2014 20:11:28 +0200 > From: pca...@gm... > To: ja...@fr... > CC: joe...@gm...; qua...@li...; lui...@gm... > Subject: Re: [Quantlib-dev] OpenMP - current usage in ql > > oh yes, my timings below are total CPU time rather than wall clock > time ( I usually measure the latter by just counting seconds in my > head ... ). That was unfair, sorry ! With the time command I get (for > the AmericanOptionTest) > > g++ -O3 -fopenmp > > OMP_NUM_THREADS=1 real = 1.925s > OMP_NUM_THREADS=2 real = 1.468s > OMP_NUM_THREADS=3 real = 1.590s > OMP_NUM_THREADS=4 real = 1.647s > OMP_NUM_THREADS=5 real = 1.780s > OMP_NUM_THREADS=6 real = 1.838s > OMP_NUM_THREADS=7 real = 2.081s > OMP_NUM_THREADS=8 real = 2.282s > > g++ -O3 > > real = 1.638s > > still, the point is the same imo. WIth 8 cores I'd expect maybe a > speed-up factor of 4 to 6. What we instead see is something around 1 > (often below 1 as it seems), so effectively all the additional cpu > time is eaten up by the overhead for multiple threads. That's not > worth it, is it ? I didn't try many optimizations with omp yet, but > what I see in "good" cases are the 4-6 above. I wouldn't parallelize > for much below. > > best regards > Peter > > > > > > > > > > > > > > > On 15 June 2014 17:18, <ja...@fr...> wrote: > > Hi, > > Have you tried to use only the 4 physical threads of your cpu? I dont use OpenMP but I use boost threads and hyperthreading does very weird things; one is that over 4 threads (in this case) scaling stops being linear, which makes sense. Luigi, your 2 cpus are physical, right? > > just a shot. > > Best > > > > > > ----- Original Message ----- > >> Yes, the timing might be off. I suspect that the Boost timer is > >> reporting the total CPU time, that is, the sum of the actual time per > >> each CPU. On my box, if I run the BermudanSwaption example with > >> OpenMP > >> enabled, it outputs: > >> > >> Run completed in 2 m 35 s > >> > >> but if I call it through "time", I get an output like: > >> > >> real 1m19.767s > >> user 2m34.183s > >> sys 0m0.538s > >> > >> that is, total CPU time 2m34s, but real time 1m19s. Being the > >> untrusting individual that I am, I also timed it with a stopwatch. > >> The > >> elapsed time is actually 1m19s :) > >> > >> This said, I still see a little slowdown in the test cases Peter > >> listed. My times are: > >> > >> AmericanOptionTest: disabled 2.4s, enabled 3.4s (real time) > >> AsianOptionTest: disabled 10.6s, enabled 10.4s > >> BarrierOptionTest: disabled 4.9s, enabled 6.1s > >> DividendOptionTest: disabled 5.1s, enabled 6.5s > >> FdHestonTest: disabled 73.4s, enabled 76.8s > >> FdmLinearOpTest: disabled 11.4s, enabled 11.6s > >> > >> Not much, but a bit slower anyway. I've only got 2 CPUs though (and I > >> compiled with -O2). Peter, what do you get on your 8 CPUs if you run > >> the cases via "time"? > >> > >> Luigi > >> > >> > >> > >> > >> > >> > >> > >> On Sun, Jun 15, 2014 at 3:40 PM, Joseph Wang <joe...@gm...> > >> wrote: > >> > > >> > That's quite odd since OpenMP should not be causing such huge > >> > slowdowns. > >> > > >> > Since by default the items are not complied, I'd rather keep the > >> > pragma's > >> > there. > >> > > >> > Also is there any possibilities that the timing code is off? > >> > > >> > ------------------------------------------------------------------------------ > >> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk > >> > Solutions > >> > Find What Matters Most in Your Big Data with HPCC Systems > >> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > >> > Leverages Graph Analysis for Fast Processing & Easy Data > >> > Exploration > >> > http://p.sf.net/sfu/hpccsystems > >> > _______________________________________________ > >> > QuantLib-dev mailing list > >> > Qua...@li... > >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > >> > > >> > >> > >> > >> -- > >> <https://implementingquantlib.blogspot.com> > >> <https://twitter.com/lballabio> > >> > >> ------------------------------------------------------------------------------ > >> HPCC Systems Open Source Big Data Platform from LexisNexis Risk > >> Solutions > >> Find What Matters Most in Your Big Data with HPCC Systems > >> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > >> Leverages Graph Analysis for Fast Processing & Easy Data Exploration > >> http://p.sf.net/sfu/hpccsystems > >> _______________________________________________ > >> QuantLib-dev mailing list > >> Qua...@li... > >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev > >> > > > > ------------------------------------------------------------------------------ > > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > > Find What Matters Most in Your Big Data with HPCC Systems > > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > > http://p.sf.net/sfu/hpccsystems > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > ------------------------------------------------------------------------------ > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > Find What Matters Most in Your Big Data with HPCC Systems > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > http://p.sf.net/sfu/hpccsystems > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
|
From: Peter C. <pca...@gm...> - 2014-06-15 18:11:36
|
oh yes, my timings below are total CPU time rather than wall clock time ( I usually measure the latter by just counting seconds in my head ... ). That was unfair, sorry ! With the time command I get (for the AmericanOptionTest) g++ -O3 -fopenmp OMP_NUM_THREADS=1 real = 1.925s OMP_NUM_THREADS=2 real = 1.468s OMP_NUM_THREADS=3 real = 1.590s OMP_NUM_THREADS=4 real = 1.647s OMP_NUM_THREADS=5 real = 1.780s OMP_NUM_THREADS=6 real = 1.838s OMP_NUM_THREADS=7 real = 2.081s OMP_NUM_THREADS=8 real = 2.282s g++ -O3 real = 1.638s still, the point is the same imo. WIth 8 cores I'd expect maybe a speed-up factor of 4 to 6. What we instead see is something around 1 (often below 1 as it seems), so effectively all the additional cpu time is eaten up by the overhead for multiple threads. That's not worth it, is it ? I didn't try many optimizations with omp yet, but what I see in "good" cases are the 4-6 above. I wouldn't parallelize for much below. best regards Peter On 15 June 2014 17:18, <ja...@fr...> wrote: > Hi, > Have you tried to use only the 4 physical threads of your cpu? I dont use OpenMP but I use boost threads and hyperthreading does very weird things; one is that over 4 threads (in this case) scaling stops being linear, which makes sense. Luigi, your 2 cpus are physical, right? > just a shot. > Best > > > ----- Original Message ----- >> Yes, the timing might be off. I suspect that the Boost timer is >> reporting the total CPU time, that is, the sum of the actual time per >> each CPU. On my box, if I run the BermudanSwaption example with >> OpenMP >> enabled, it outputs: >> >> Run completed in 2 m 35 s >> >> but if I call it through "time", I get an output like: >> >> real 1m19.767s >> user 2m34.183s >> sys 0m0.538s >> >> that is, total CPU time 2m34s, but real time 1m19s. Being the >> untrusting individual that I am, I also timed it with a stopwatch. >> The >> elapsed time is actually 1m19s :) >> >> This said, I still see a little slowdown in the test cases Peter >> listed. My times are: >> >> AmericanOptionTest: disabled 2.4s, enabled 3.4s (real time) >> AsianOptionTest: disabled 10.6s, enabled 10.4s >> BarrierOptionTest: disabled 4.9s, enabled 6.1s >> DividendOptionTest: disabled 5.1s, enabled 6.5s >> FdHestonTest: disabled 73.4s, enabled 76.8s >> FdmLinearOpTest: disabled 11.4s, enabled 11.6s >> >> Not much, but a bit slower anyway. I've only got 2 CPUs though (and I >> compiled with -O2). Peter, what do you get on your 8 CPUs if you run >> the cases via "time"? >> >> Luigi >> >> >> >> >> >> >> >> On Sun, Jun 15, 2014 at 3:40 PM, Joseph Wang <joe...@gm...> >> wrote: >> > >> > That's quite odd since OpenMP should not be causing such huge >> > slowdowns. >> > >> > Since by default the items are not complied, I'd rather keep the >> > pragma's >> > there. >> > >> > Also is there any possibilities that the timing code is off? >> > >> > ------------------------------------------------------------------------------ >> > HPCC Systems Open Source Big Data Platform from LexisNexis Risk >> > Solutions >> > Find What Matters Most in Your Big Data with HPCC Systems >> > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >> > Leverages Graph Analysis for Fast Processing & Easy Data >> > Exploration >> > http://p.sf.net/sfu/hpccsystems >> > _______________________________________________ >> > QuantLib-dev mailing list >> > Qua...@li... >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> > >> >> >> >> -- >> <https://implementingquantlib.blogspot.com> >> <https://twitter.com/lballabio> >> >> ------------------------------------------------------------------------------ >> HPCC Systems Open Source Big Data Platform from LexisNexis Risk >> Solutions >> Find What Matters Most in Your Big Data with HPCC Systems >> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. >> Leverages Graph Analysis for Fast Processing & Easy Data Exploration >> http://p.sf.net/sfu/hpccsystems >> _______________________________________________ >> QuantLib-dev mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> > > ------------------------------------------------------------------------------ > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > Find What Matters Most in Your Big Data with HPCC Systems > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > http://p.sf.net/sfu/hpccsystems > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
|
From: <ja...@fr...> - 2014-06-15 15:18:23
|
Hi, Have you tried to use only the 4 physical threads of your cpu? I dont use OpenMP but I use boost threads and hyperthreading does very weird things; one is that over 4 threads (in this case) scaling stops being linear, which makes sense. Luigi, your 2 cpus are physical, right? just a shot. Best ----- Original Message ----- > Yes, the timing might be off. I suspect that the Boost timer is > reporting the total CPU time, that is, the sum of the actual time per > each CPU. On my box, if I run the BermudanSwaption example with > OpenMP > enabled, it outputs: > > Run completed in 2 m 35 s > > but if I call it through "time", I get an output like: > > real 1m19.767s > user 2m34.183s > sys 0m0.538s > > that is, total CPU time 2m34s, but real time 1m19s. Being the > untrusting individual that I am, I also timed it with a stopwatch. > The > elapsed time is actually 1m19s :) > > This said, I still see a little slowdown in the test cases Peter > listed. My times are: > > AmericanOptionTest: disabled 2.4s, enabled 3.4s (real time) > AsianOptionTest: disabled 10.6s, enabled 10.4s > BarrierOptionTest: disabled 4.9s, enabled 6.1s > DividendOptionTest: disabled 5.1s, enabled 6.5s > FdHestonTest: disabled 73.4s, enabled 76.8s > FdmLinearOpTest: disabled 11.4s, enabled 11.6s > > Not much, but a bit slower anyway. I've only got 2 CPUs though (and I > compiled with -O2). Peter, what do you get on your 8 CPUs if you run > the cases via "time"? > > Luigi > > > > > > > > On Sun, Jun 15, 2014 at 3:40 PM, Joseph Wang <joe...@gm...> > wrote: > > > > That's quite odd since OpenMP should not be causing such huge > > slowdowns. > > > > Since by default the items are not complied, I'd rather keep the > > pragma's > > there. > > > > Also is there any possibilities that the timing code is off? > > > > ------------------------------------------------------------------------------ > > HPCC Systems Open Source Big Data Platform from LexisNexis Risk > > Solutions > > Find What Matters Most in Your Big Data with HPCC Systems > > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > > Leverages Graph Analysis for Fast Processing & Easy Data > > Exploration > > http://p.sf.net/sfu/hpccsystems > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > > > > -- > <https://implementingquantlib.blogspot.com> > <https://twitter.com/lballabio> > > ------------------------------------------------------------------------------ > HPCC Systems Open Source Big Data Platform from LexisNexis Risk > Solutions > Find What Matters Most in Your Big Data with HPCC Systems > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > http://p.sf.net/sfu/hpccsystems > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > |