a) I am thinking of installing Mathematica on supercomputers of my center. and running programs by parallelizing it for faster computations. But I was told that running Mathematica on supercomputers may not be possible as it based on GUI (graphical user interface) unlike python or other programming language which are handled on terminal.

b) Also, we also have to submit jobs in queue because of busyness of supercomputer facility, and when jobs submitted by previous users are completed then my job will be evaluated and it is automatic.

So I would like to ask here, whether is it possible to parallelizing Mathematica on Supercomputer and running codes as we do in python and other languages and get my things done as per queuing criteria.

Any help in this direction will be much appreciated.


An extended comment to provide context to the OPs very general question follows:


So I would like to ask here, whether is it possible to parallelizing Mathematica on Supercomputer and running codes as we do in python and other languages and get my things done as per queuing criteria.

YES, with dependency on the type of "Supercomputer". e.g. ...

If you have access to only a vector CPU like the old Cray machines, the parallelizing will do nothing for you.

If you have access to a machine with a bank of massively parallel CPUs - YES.

If you have access to a machine built of GPUs with which Mathematica natively interacts - YES.

If you have access to a machine built with GPUs that Mathematica does not naturally play with, but you have the knowledge and resources to write your own code (building on some of Wolfram's parallel computing tools) - MAYBE / YES.

Mathematica is not based on a GUI. The GUI Notebook interface provides interactive access to the Mathematica kernel.

One can access and interact with the kernel via a variety of lower level means (e.g. even from a terminal).

For parallel processing, Mathematica has built in tools and methods which:

  • enable one to install, monitor, & manage the kernels on parallel nodes;
  • access the nodes, move data back an forth from a control kernel; and thereby
  • support highly efficient parallel processing.

You could certainly (with some work) bundle everything into (now for a very dated computer idea) a "batch job" that can work with many of the "queuing criteria" protocols you'd find at supercomputing facilities.

My team and I did some of this between 2008 and 2015 using a rack of Apple Xserves, something along the lines of this:

enter image description here

If memory serves, Wolfram used a bunch of Xserves when it developed Mathematica's parallel processing functionality.

We fiddled around with installing Mathematica kernels on remote nodes even before Wolfram began introducing native support for this sort of thing.

You can do all of this with Mathematica. You can do it at scale.

You will have to speak to Wolfram about licensing for a large scale distributed computing application.

Give some real thought to what you want to calculate.

CPU based machines and GPU based machines have different strengths.

I suspect that current machines (I've gone on to other things so I haven't kept up) may incorporate both types of processors.

You have to really look at what you want to do and how best to optimize it.

I'd love to know more about what you actually want to run through the supercomputer facility.

  • $\begingroup$ Thank you very much GENERAL answer for a general ques. I hardly know about this parallelizing business. I will be needing parallelization to diagonalize a very large matrices (let's say: 40000 x 40000), that is not possible on my personal Computer. sorry to say: Your ans is very general and not very helpful to me. Will be waiting to hear from you $\endgroup$
    – SACHIN
    Dec 7 '20 at 13:05
  • $\begingroup$ @Chumback -- Anyone providing a more detailed answer needs to know more, including: the Mathematica code you intend to run in parallel; the computing facility; the types, configurations, & numbers of the computers, CPUs, GPUs, and/or nodes available at the computing facility; the operating system; the connectivity between parallel nodes and its protocols; any network protocols; available time for a batch job at the facility, and the availability of Mathematica licenses at the facility and the version of those licenses. This community can help, we just need the details. $\endgroup$
    – Jagra
    Dec 7 '20 at 14:16
  • $\begingroup$ Ok, I will get back to you with precise framed question. $\endgroup$
    – SACHIN
    Dec 8 '20 at 6:13

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.