MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Speed of Mathematica on AMD machines

  • To: mathgroup at smc.vnet.net
  • Subject: [mg126432] Speed of Mathematica on AMD machines
  • From: einschlag at gmail.com
  • Date: Thu, 10 May 2012 04:57:46 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

We have recently bought an iBuyPower gaming PC for our research group:

AMD FX 8 core, 3.6 GHz, 16 GB RAM

MathematicaMark8 Benchmark 0.86 is not bad, considering the price ~$800 of this PC but I was expecting much more.

Apparently Intel's MKL library used by Mathematica is not optimized for AMD processors.

A test program calculating exponentials of large matrices takes 13 s on the AMD PC and only 8 s on my Mac Pro (Mathematica benchmark 0.7) that has 8 Intel Xeon cores at 2.4 GHz. And on my Lenovo laptop the program runs 9 s. I blame it on the MKL inadequacy for AMD.

TestProgram := Module[{},
  NN = 1000;
  AMatr = Table[RandomReal[], {i, 1, NN}, {j, 1, NN}];
  NExec = 10;
  For[i = 1, i < NExec, i++,
   MatrixExp[AMatr];
   ];
  ]

Execution by iBuyPower PC (AMD FX 8 core, Linux Ubuntu 64 bit)

TestProgram // AbsoluteTiming

{13.230105, Null}

Execution by Mac Pro (Intel Xeon 2 x 4 core)

TestProgram // AbsoluteTiming

{8.126944, Null}

Execution by Lenovo laptop (Intel i7-QM2060, Windows 7 64 bit)

TestProgram // AbsoluteTiming

{9.4275392, Null}


On the other hand, a program compiling in C from Mathematica's help runs very fast on the AMD PC:

TestProgram2 := Module[{},
  c = Compile[ {{x, _Real}, {n, _Integer}},
    	Module[ {sum, inc}, sum = 1.0; inc = 1.0;
     Do[inc = inc*x/i; sum = sum + inc, {i, n}]; sum],
    CompilationTarget -> "C"];
  c[1.6, 10000000];
  ]

Execution by iBuyPower PC (AMD FX 8 core, Linux Ubuntu 64 bit, GCC compiler)

TestProgram2 // AbsoluteTiming

{0.114427, Null}

Execution by Mac Pro (Intel Xeon 2 x 4 core, GCC compiler)

TestProgram2 // AbsoluteTiming

{0.212875, Null}

Execution by Lenovo laptop (Intel i7-QM2060, Windows 7 64 bit, Microsoft Visual C++)

TestProgram2 // AbsoluteTiming

{0.3540203, Null}

It seems the second test program is not using MKL and thus AMD becomes very efficient.

I will continue testing.

Is there any way to improve Mathematica's performance on AMD machines?

Dmitry



  • Prev by Date: Re: finding inverses of functions
  • Next by Date: Re: dynamic input alias
  • Previous by thread: Re: File size 5.5MB
  • Next by thread: Re: Speed of Mathematica on AMD machines