Macaulay2
Macaulay2 is a software system for research in algebraic geometry and commutative algebra. It is designed to be easy to use and provides a powerful programming environment. It is particularly well-suited for computations in algebraic geometry, commutative algebra, and related areas.
Macaulay2 is provided via an Apptainer container and can run in either CPU or GPU mode. Use the module macaulay2/1.24.11 to access the environment.
CPU Mode (Default)
Macaulay2 can run in a regular CPU environment by default. No additional configuration is needed.
Loading the Module:
module load macaulay2
M2
Helper commands:
M2-help– Show help informationM2-script– Run a script non-interactivelyM2-interactive– Start in quiet mode (no banner)
Inside Macaulay2:
R = QQ[x, y]
I = ideal(x^3 + y^2 - 1)
gens gb I
Interactive CPU Access with srun:
To start an interactive session on a general compute node (CPU-only):
srun --partition=aoraki --mem=4G --cpus-per-task=2 --time=00:30:00 --pty bash
Once on the node:
module load macaulay2
M2
GPU Mode (Requires GPU Node)
To use GPU acceleration, you must be on a GPU-capable node and request a GPU using SLURM.
Set USE_GPU=1 before loading the module to enable GPU support:
Interactive GPU Access with srun:
To run interactively on the aoraki_gpu partition:
srun --partition=aoraki_gpu --gres=gpu:1 --mem=8G --cpus-per-task=2 --time=00:30:00 --pty bash
Then:
export USE_GPU=1
module load macaulay2
M2
GPU SLURM Batch Job Example:
Create a file named macaulay2_gpu.slurm with the following content:
#!/bin/bash
#SBATCH --job-name=m2-gpu
#SBATCH --partition=aoraki_gpu
#SBATCH --gres=gpu:1
#SBATCH --time=00:10:00
#SBATCH --mem=4G
#SBATCH --cpus-per-task=2
#SBATCH --output=m2-gpu-%j.out
export USE_GPU=1
module load macaulay2
M2 <<'EOF'
R = QQ[a,b]
I = ideal(a^4 + b^4 - 1)
gens gb I
EOF
Submit the job:
sbatch macaulay2_gpu.slurm
Troubleshooting
M2: command not found: Ensure the module is loaded.GPU not detected: Make sure you set
export USE_GPU=1before loading the module, and requested a GPU in your SLURM job.To verify GPU access inside the container:
apptainer exec --nv /opt/macaulay2/1.24.11/macaulay2.sif nvidia-smi