# Required tools and libraries¶

This table lists required dependencies for PISM alphabetically.

Required Library

Comment

CMake

version $$\ge$$ 3.3

FFTW

version $$\ge$$ 3.1

GSL

version $$\ge$$ 1.15

MPI

version $$\ge$$ 4.4

version $$\ge$$ 3.7

UDUNITS

Before installing these “by hand”, check sections Installing prerequisites on Debian or Ubuntu and Installing required libraries on macOS for specific how-to.

In particular, if multiple MPI implementations (e.g. MPICH and Open MPI) are installed then PETSc can under some situations “get confused” and throw MPI-related errors. Even package systems have been known to allow this confusion.

Note

We recommend un-installing all MPI libraries except one. In most cases there is no reason to have both Open MPI and MPICH, for example.

Optional libraries listed below are needed for certain PISM features, namely computing longitude, latitude coordinates of grid points and parallel I/O. These libraries are recommended, but not strictly required:

Optional Library

Comment

PROJ

version $$\ge$$ 6.0 (used to compute longitude-latitude grid coordinates and cell bounds)

PnetCDF

Can be used for faster parallel I/O

ParallelIO

Can be used for faster parallel I/O

Python is needed for the PETSc installation process; a number of PISM’s pre- and post-processing scripts also use Python (either 2.7 or 3.x), while Git is usually needed to download the PISM code.

PISM’s Python bindings support Python 2.7 or 3.3 and later 3.

The following Python packages are needed to do all the examples in the User’s Manual (which run Python scripts):

Table 2 Python packages

Library

Comment

NumPy

used in most scripts

matplotlib

used in some scripts

netcdf4-python

used in most scripts

Footnotes

1

Note that PISM uses ncgen (provided by NetCDF) on the system where PISM is compiled.

2

“PETSc” is pronounced “pet-see”.

3

PISM’s Python bindings are tested using Python 3.6.

 Previous Up Next