I understand that FullSimplify, in general, uses one core only. However, when you FullSimplify a matrix or vector, I'm guessing Mathematica simplifies each element independently of the rest, so... why does it use one core only? Can I tell Mathematica to use all cores in that case? How?

I know I could create different kernels and launch the FullSimplify independently for each element on a different kernel... but apart for not being very convenient, there's also the limitation that the maximum number of kernels depends on your Mathematica license, and it may be very well lower than your number of cores.

  • 1
    $\begingroup$ Did you look at the parallelization features of Mathematica? Just ParallelMap FullSimplify onto the list. $\endgroup$
    – Szabolcs
    Sep 2, 2017 at 15:34
  • 1
    $\begingroup$ Voting to close as 'simple mistake' since this is basically asking if Mathematica has parallelization features (and is not specific to simplification), which is easily answered with a documentation search. $\endgroup$
    – Szabolcs
    Sep 2, 2017 at 15:36
  • $\begingroup$ Yes, you can close this question. I had never looked at ParallelMap, partly because I realized that some Mathematica operations use all cores without user intervention, so I assumed that all the "single command operations" that can be parallelized, were already parallelized by default. My surprise came when I saw that element-by-element operations on matrices used one core only, and that's why I posted my question. However, yes, I've now read the ParallelMap documentation and it works. Thanks. $\endgroup$
    – cesss
    Sep 5, 2017 at 8:09
  • $\begingroup$ Generally, only numerical calculations are parallelized internally (such as matrix multiplication). Anything involving exact quantities or symbols isn't. $\endgroup$
    – Szabolcs
    Sep 5, 2017 at 8:10