3

Has anyone investigated a performance comparison between Math.NET Numerics vs Extreme Optimization numerical libraries using F#?

Specifically I would be interested in an actual comparison (computational time) for:

  • matrix multiplication
  • MCMC problems (random generators)
  • matrix inversion.

For questions reviewers, I have asked this question yesterday but it has been put on hold as 'opinion-based', I am specifically asking computation times, statistics ideally over many runs.

Has anyone in the .NET community tested the performance of different numerical libraries?

Thanks

Tomas Petricek
  • 240,744
  • 19
  • 378
  • 553
  • Is there a specific f# library you want to compare with? Probably irrelevant, but I happened to notice one of the Math.Net projects is actually in f# – Kenneth Ito Mar 10 '17 at 19:52
  • Math.net vs Extreme Optimization would be the comparison I would be more interested in – pacta_sunt_servanda Mar 10 '17 at 19:55
  • 1
    Ah, my bad, didn't realize Extreme Optimization was a concrete project. Due to lower casing, I erroneously thought you were just talking about extremely optimized f# libraries haha – Kenneth Ito Mar 10 '17 at 20:01
  • No worries and thanks for your interest – pacta_sunt_servanda Mar 10 '17 at 20:03
  • 4
    It's hard to compare Math.NET as a single entity to something else, it's not a specific enough comparison. Math.NET supports the option of using providers, e.g. Intel MKL to do some calculations. The performance characteristics with and without that are enormously different. – TheInnerLight Mar 10 '17 at 21:01
  • 2
    I think it's a very valid question, so not sure why is there a close vote on it again. That said, it would get probably better reception if you maybe post some benchmark numbers of your own. For mathnet.numerics it should be straightforward, but I believe Extreme Optimization can be evaluated as well: `Try it for free with our fully functional 60-day trial version.` There is a very nice [Benchmarking Library](http://benchmarkdotnet.org/). And there is some nice advice in this [SO Post](http://stackoverflow.com/questions/38237861/functionalizing-numerical-code). – s952163 Mar 11 '17 at 01:05
  • Thanks, I will give it myself a go, if nobody answers it and will post my results here. – pacta_sunt_servanda Mar 11 '17 at 08:19
  • @TheInnerLight I am not sure I can follow. What do you mean with providers? Sorry but my knowledge of F# is still limited. I half way through the excellent book by Tomas Petricek about real world functional programming. Thanks. I will perform some basic checks in the next future and publish the relevant code so people can spot any apparent bottlenecks or unfair comparison. – pacta_sunt_servanda Mar 12 '17 at 17:43
  • @pacta_sunt_servanda Have a read of this page: https://numerics.mathdotnet.com/MKL.html Using MKL with Math.NET will yield massive performance improvements when doing linear algebra but you'll need to be wary of licence constraints on MKL if you seek to include it in a commercial product. – TheInnerLight Mar 12 '17 at 20:01

0 Answers0