15
$\begingroup$

Mathematica (V 12.3.1, Native Mac M1 version) is not letting me use the FEAST method for solving eigenvalue problems. For example,
testym = {{1., 3.}, {3., 5.}}; Eigensystem[testym, Method -> {"FEAST", "Interval" -> {1, 10}}]

Returns enter image description here

I have not found any references to needing any specific library to apply this option in the documentation, so am I right to assume that this is a bug?

$\endgroup$
9
  • 4
    $\begingroup$ Yeah, I was afraid that something like this would happen on Apple silicon. It is quite likely that Mathematica uses FEAST from the Intel MKL. And I am not sure if all parts of the MKL run fine on Apple silicon. Could be that Wolfram just deactivated some features in order to make the whole compile somehow. Please notify Wolfram support about this! $\endgroup$ Oct 10 '21 at 17:20
  • 3
    $\begingroup$ Thank you for your replies. @HenrikSchumacher, indeed chosing "Pardiso" as the method for LinearSolve produces "LinearSolve::nolib: The library for the sparse method chosen is not available on this platform. Try choosing another method.". I will get in touch with the support. $\endgroup$
    – user99x
    Oct 10 '21 at 17:45
  • 4
    $\begingroup$ Thanks for checking this out! This raises some concern in me whether I should really wait so excitedly for the M1X processor... $\endgroup$ Oct 10 '21 at 18:18
  • 7
    $\begingroup$ I would not close this question. So far, the answer appears to be that the ARM version does not include all functionality from the Intel version. This is not something I expected, so I find this question valuable. Also, natural followup question: What other functionality is missing? $\endgroup$
    – Szabolcs
    Oct 11 '21 at 7:10
  • 3
    $\begingroup$ @ChrisK Arnoldi works, I am currently using it. $\endgroup$
    – user99x
    Oct 12 '21 at 20:12
13
$\begingroup$

I just wanted to a bit more context here, and it is too long for a comment.

First, there have always been platform differences in the available features, going back to V1. These were mostly on the FE side, but it's certainly not unprecedented on the language side. For example, CurrentImage was available on Mac and Windows well before it was on Linux. Had we actually shipped Mathematica 8 for PowerPC (it was pulled late in development because there were too many Apple bugs to work around), it would not have had the "MKL" method for SeedRandom.

Second, version 13 will ship as a universal application bundle, so if there are features missing from one version it will be much easier to just launch it under the other architecture and get the missing features.

Now, as to what's "missing" from the ARM version. There are two groups here. The first are things which only run under Rosetta 2, but are not directly in the kernel so they "just work": WSM functionality (not yet ported), RelationalDatabase & related (porting in progress, but we need Oracle to ship a native driver before we can finish it), and StartWebSession with the Gecko driver (there is now a native driver, so hopefully this will be fixed for 13).

The second are things which are part of the kernel and thus cannot be used with a native kernel, period. MOSEKLink isn't available, because it is a connector to a commercial package which hasn't shipped a native version. Beyond that is anything which depends on MKL/IPP for which we don't have a replacement library. AFAIK, that's "Pardiso", "FEAST", and the "MKL" randomness generator (obviously). I think for everything else we have a replacement, though it may not be as optimized. MKL is very highly optimized and even under Rosetta 2 can outperform native libraries in some situations. So for numerical linear algebra and image processing, you should experiment and see what works best for you. (As opposed to symbolics, where the native version wins hands down.)

Finally, if "FEAST", "Pardiso", or any other missing feature is important to you, send feedback to support. The more people ask for it, the easier it is to devote resources to finding or writing a replacement.

$\endgroup$
2
  • 2
    $\begingroup$ Thank you for this valuable information. As alternative to MKL Pardiso, there is also the "original" Pardiso library by Olaf Schenk (see pardiso-project.org). Maybe it is possible to include it instead of MKL Pardiso in future Mathematica releases? It might not be as optimized for Intel hardware, but it seems to feature many algorithmic improvements over the (relatively old) MKL version. $\endgroup$ Oct 17 '21 at 15:08
  • 1
    $\begingroup$ Oh, and what about BLAS-like sparse array arithmetic? I've got the impression that Mathematica also relies on MKL for it. $\endgroup$ Oct 17 '21 at 15:10
12
$\begingroup$

I contacted the customer support and got the following reply:

"The 'FEAST' method for functions like Eigensystem is part of the Intel MKL library, and as such will not be available to non-Intel CPUs. I have filed an internal suggestion report on this topic, so that methods for including this method on ARM systems can be considered for inclusion in future versions of Mathematica ..."

Unfortunate, but perhaps expected.

$\endgroup$

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.