Mathematica

Running Mathematica via Your Web Browser

Mathematica is available through a web portal. You will need to use a VPN to connect from off-campus (GlobalProtect VPN is recommended). If you have an account on Adroit then browse to https://myadroit.princeton.edu. To begin a session, click on "Interactive Apps" and then "Mathematica". Complete this form if you need an account on Adroit.

 

Interactive Sessions

To see the available modules on a given cluster, run this command:

$ module avail mathematica

For interactive use with the GUI you will need to enable X11 forwarding:

$ ssh -X <YourNetID>@della.princeton.edu
$ salloc --nodes=1 --ntasks=1 --mem=4G --time=00:20:00 --x11
$ module load mathematica/12.1.1
$ mathematica

To use mathematica on the command line:

$ ssh <YourNetID>@della.princeton.edu
$ salloc --nodes=1 --ntasks=1 --mem=4G --time=00:20:00
$ module load mathematica/12.1.1
$ math

See the Slurm page to learn about salloc. Mathematica can be used on Della and Adroit. It should not be used on Tiger or Stellar since those clusters are designed for large multi-node parallel jobs.

 

Batch Jobs

Serial

Consider the trivial Mathematica script (hello_world.m):

Print["Hello, World."]

Below is a Slurm script (job.slurm) appropriate for a serial Mathematica job:

#!/bin/bash
#SBATCH --job-name=myjob         # create a short name for your job
#SBATCH --nodes=1                # node count
#SBATCH --ntasks=1               # total number of tasks across all nodes
#SBATCH --cpus-per-task=1        # cpu-cores per task (>1 if multi-threaded tasks)
#SBATCH --mem-per-cpu=4G         # memory per cpu-core (4G per cpu-core is default)
#SBATCH --time=00:01:00          # total run time limit (HH:MM:SS)
#SBATCH --mail-type=begin        # send email when job begins
#SBATCH --mail-type=end          # send email when job ends
#SBATCH --mail-user=<YourNetID>@princeton.edu

module purge
module load mathematica/12.1.1

math -run < hello_world.m

Submit the job with:

$ sbatch job.slurm

 

Parallel

Consider the trivial parallel Mathematica script (simple_par.m):

Print[ParallelEvaluate[$KernelID]]
Print[ParallelEvaluate[$ProcessID]]

Below is a sample Slurm script (job.slurm) that is appropriate for a parallel job:

#!/bin/bash
#SBATCH --job-name=myjob         # create a short name for your job
#SBATCH --nodes=1                # node count
#SBATCH --ntasks=1               # total number of tasks across all nodes
#SBATCH --cpus-per-task=4        # cpu-cores per task (>1 if multi-threaded tasks)
#SBATCH --mem-per-cpu=4G         # memory per cpu-core (4G per cpu-core is default)
#SBATCH --time=00:01:00          # total run time limit (HH:MM:SS)
#SBATCH --mail-type=begin        # send email when job begins
#SBATCH --mail-type=end          # send email when job ends
#SBATCH --mail-user=<YourNetID>@princeton.edu

module purge
module load mathematica/12.1.1

math -run < simple_par.m

Submit the job with:

$ sbatch job.slurm

 

FAQ

1. How should I resolve this error: Put::noopen: Cannot open /home/<YourNetID>/.Mathematica/ApplicationData/CloudObject/Authentication/properties.wl.?

Try creating that file then re-run your code:

$ mkdir -p /home/<YourNetID>/.Mathematica/ApplicationData/CloudObject/Authentication
$ touch /home/<YourNetID>/.Mathematica/ApplicationData/CloudObject/Authentication/properties.wl.

2. How can I install Mathematica on my laptop?

See the Mathematica page by OIT.