9
$\begingroup$
  1. Does my Mathematica license support processors with 8 cores?

    I have to choose between one of the following processors:

    Intel® Xeon® E5-1630 v4 Prozessor (4 cores, 3,7 GHz, 4,0 GHz Turbo)

    Intel® Xeon® E5-1650 v4 Prozessor (6 cores, 3,6 GHz, 4,0 GHz Turbo)

    Intel® Xeon® E5-1660 v4 Prozessor (8 cores, 3,2 GHz, 3,8 GHz Turbo)

  2. Does ParallelDo (and similar Parallel... functions benefit from more than 4 physical cores?

  3. Does Mathematica support : "NVIDIA Quadro P5000, 16 GB"?

    What kind of functions are calculating on the graphics card?

    Especially I hope that the performance of Graphics3D should improve much (now I have a DELL M4800 Laptop with NVIDIA Quadro K2100M).

Here is what I could read out about my license (Mathematica 11.2.0.0, Windows 10 64 bit):

$MaxLicenseProcesses

2

$MaxLicenseSubprocesses

8

$LicenseProcesses

1

$LicenseSubprocesses

0

In summary:

How should a dedicated computer for Mathematica be configurated (if the cost does not play a role) to get the best possible performance of Mathematica.

$\endgroup$
  • 5
    $\begingroup$ $LicenseProcesses shows you how many licenses are currently in use. $MaxLicenseProcesses is the maximum number that you can use at a time. In practice, your values mean that you can run two instances of Mathematica at a time. $\endgroup$ – Szabolcs Nov 7 '17 at 14:48
  • $\begingroup$ Upvoted the question for the content of the comments. Thanks for the information! $\endgroup$ – xsk8rat Nov 7 '17 at 15:59
13
$\begingroup$

Does ParallelDo (and similar Parallel... functions benefit from more than 4 physical cores?

My experience is that ParallelDo seldomly leads to any benefit. Better is using CompiledFunctions generated by Compile with options RuntimeAttributes->{Listable} and Parallelization->True. The latter scales much better (but I only have experience with 1--4 cores); so yes, with greater power comes greater performance (but also greater responsibility, you know). But it really depends on what you are going to do with it...

Does Mathematica support : "NVIDIA Quadro P5000, 16 GB"?

Of course. But only few built-in functions will really take advantage of that (see Szabolcs' answer).

Especially I hope that the performance of Graphics3D should improve much (now I have a DELL M4800 Laptop with NVIDIA Quadro K2100M).

Nah, Graphics3D is slow anyway. I guess it is mostly because the MathKernel runs on the CPU and it generates Graphics3D instances there. Then the geometry has to be transferred to the GPU; this communication is costly. Once the geometry is on the GPU, you can rotate and zoom rather quickly, even with a mid-class GPU, because, well, that's what GPUs are good at. Only for complicated Image3D objects or really, really huge GraphicsComplexes, I would expect some measurable improvement.

So in a nutshell: If you want to use this fat GPU to your advantage, it will cost you quite an amount of time and pain (CUDA or OpenCL programming) to get that running. It really depends on your application: E.g., GPU for symbolic computations is totally useless (to my knowledge). Performing many dense matrix-vector multiplications is great on GPU; dealing with sparse matrices is harder. Assembling matrices on a GPU is art.

$\endgroup$
  • 1
    $\begingroup$ I think that first, Graphics3D is converted to Graphics3DBox by the kernel (ToBoxes). This takes time. Then the result is transferred to the front end through MathLink. This also takes time. I suspect that before displaying it, it is converted to yet another more efficient representation (maybe just sent to the GPU as you said?), which is yet another delay. Now we can rotate it. Unfortunately, rotation performance is still vastly slower than what you'd find e.g. in a game running on the same GPU. $\endgroup$ – Szabolcs Nov 7 '17 at 16:11
  • 1
    $\begingroup$ @Szabolcs You are right, that was an oversimplistic description. As I am no Wolfram internal, I cannot tell what exactly happens beneath the surface. Anyway, the geometry for most of the plotting routines is generated in the MathKernel on the CPU and has to start its way through a maze of software and hardware to make it finally to the GPU (and onto the screen). Sometimes the FrontEnd's slowness can be a real pain and maybe this is also an instance of the problem. I would love it if people from Wolfram would invest some resources to improve upon that... $\endgroup$ – Henrik Schumacher Nov 7 '17 at 16:30
  • 2
    $\begingroup$ I'm just hoping they'll finally make a 64-bit front end for OS X ... the current one is 32-bit and crashes with any non-trivial-size Graphics3D (due to exceeding the 2 GB memory limit) :-( $\endgroup$ – Szabolcs Nov 7 '17 at 16:34
  • 1
    $\begingroup$ @Szabolcs Oh, really? Never tried that because Graphics3D gets sooo slow when you use larger ImageSizes... :-D $\endgroup$ – Henrik Schumacher Nov 7 '17 at 16:38
7
$\begingroup$

Does my Mathematica license support processors with 8 cores?

Mathematica will run, regardless of the number of cores you have. The question is: does it take advantage of them?

Does ParallelDo (and similar Parallel... functions benefit from more than 4 physical cores?

The limit is $MaxLicenseSubprocesses, so yes.

What kind of functions are calculating on the graphics card?

To my knowledge, only CUDALink, OpenCLLink, and neural net functions use the GPU (see TargetDevice).

Does Mathematica support : "NVIDIA Quadro P5000, 16 GB"?

Sorry, I don't know.

$\endgroup$
  • $\begingroup$ Do I understand it correctly: If I would use a processor with 6 or 8 cores $MaxLicenseSubprocesses would be higher for the same Mathematica license? I tested Graphics3Don similar computers with much different graphics cards and had the Impression: the faster the graphics card the better the performance especially of interactive rotation of objects. $\endgroup$ – mrz Nov 7 '17 at 14:38
  • 2
    $\begingroup$ No. $MaxLicenseSubprocesses is the highest number of subkernels that can run at the same time. This is completely unrelated to the number of processors / cores your computer has. I have 4 cores, but I can manually launch up to 16 subkernels using LaunchKernels[16] because that's what my license allows. They won't speed up the computation on this 4-core system, though. If I try LaunchKernels[20], it only returns 16 kernels (and a bunch of errors). $\endgroup$ – Szabolcs Nov 7 '17 at 14:45
  • 2
    $\begingroup$ Yes, interactive rotation can (in principle) be faster with a better graphics card. I was talking about which kernel functions can you your graphics card, not the GUI. Things like NDSolve won't currently use your GPU (even though in principle they could); only those functions that I mentioned will. $\endgroup$ – Szabolcs Nov 7 '17 at 14:46
7
$\begingroup$

Does Mathematica support : "NVIDIA Quadro P5000, 16 GB"?

The Nvidia GPU needs to have at Compute Capability score of at least 3. You can check the score of currently supported GPUs on Nvidia's CUDA CPU page. The Quadro P5000 score is 6.1 so you should be fine granted you have the latest drivers installed.

Hope this helps.

$\endgroup$
  • $\begingroup$ From whom do you have this info? $\endgroup$ – mrz Nov 7 '17 at 20:54
  • 3
    $\begingroup$ @mrz See this StackExchange answer 19542 which leads to this Wolfram Community answer by a WRI engineer that works (worked?) on machine learning projects. He states that a Compute Capability score of at least 3 is needed (at this time; may change in the future). $\endgroup$ – Edmund Nov 7 '17 at 21:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.