.. highlight:: rst Pari / GP +++++++++ "PARI/GP is a widely used computer system designed for fast computations in number theory (factorizations, algebraic number theory, elliptic curves, modular forms, L functions...), but also contains a large number of other useful functions to compute with mathematical entities such as matrices, polynomials, power series, algebraic numbers etc., and a lot of transcendental functions." - https://pari.math.u-bordeaux.fr/ To load the PARI library and gp shell, use: :: module load pari-gp Note that Pari / GP is ONLY available on compute nodes 22-26. Therefore to launch the interative shell on a compute node, you need to specify in your ``srun`` command that you'll need nodes with Pari/GP compatibility: :: srun --constraint=pari-gp --pty gp You can add any additional resource requests after the ``srun`` command, before the ``--pty`` flag. For example, to specify your computations will need 8gb of memory: :: srun --mem=8G --constraint=pari-gp --pty gp To run a gp script instead of using the interactive interface, you can submit a sbatch script. An example of such a script is as follows: :: #!/bin/bash #SBATCH --job-name=pari-parallel #SBATCH --nodes=1 #SBATCH --constraint=pari-gp #SBATCH --ntasks-per-node=1 #SBATCH --cpus-per-task=2 #SBATCH --mem=8000 #SBATCH --time=0-01:00:00 module load pari-gp gp < example_parallel_script.gp Note that the default version of PARI/GP that loads with ``module load pari-gp`` has been compiled to work with POSIX threads (multiple threads within a single node). For more info on parallel programming with pari, please see the official Pari/GP documentation, from the latest stable release: https://pari.math.u-bordeaux.fr/pub/pari/manuals/2.13.0/parallel.pdf