# Overview

Many popular math and statistics software packages are available on the HPC system.

# General considerations

# Available Math & Statistics Software

To get an up-to-date list of the installed math applications, log on to UVA HPC and run the following command in a terminal window:

```
module keyword math
```

To get more information about a specific module version, run the module spider command, for example:

```
module spider mathematica
```

**List of Math & Statistics Software Modules**

Module | Category | Description |
---|---|---|

clapack | math | C version of LAPACK |

eigen | math | Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. |

elpa | math | Eigenvalue SoLvers for Petaflop-Applications . |

geos | math | GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS) |

gmp | math | GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers. |

gurobi | math | The Gurobi Optimizer is a state-of-the-art solver for mathematical programming. The solvers in the Gurobi Optimizer were designed from the ground up to exploit modern architectures and multi-core processors, using the most advanced implementations of the latest algorithms. |

jags | math | JAGS is Just Another Gibbs Sampler. It is a program for analysis of Bayesian hierarchical models using Markov Chain Monte Carlo (MCMC) simulation |

libxsmm | math | LIBXSMM is a library for small dense and small sparse matrix-matrix multiplications targeting Intel Architecture (x86). |

lpsolve | math | Mixed Integer Linear Programming (MILP) solver |

mcr | math | The MATLAB Runtime is a standalone set of shared libraries that enables the execution of compiled MATLAB applications or components on computers that do not have MATLAB installed. |

metis | math | METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices. The algorithms implemented in METIS are based on the multilevel recursive-bisection, multilevel k-way, and multi-constraint partitioning schemes. |

mpfr | math | The MPFR library is a C library for multiple-precision floating-point computations with correct rounding. |

netlogo | math | NetLogo is a multi-agent programmable modeling environment. It is used by tens of thousands of students, teachers and researchers worldwide. It also powers HubNet participatory simulations. It is authored by Uri Wilensky and developed at the CCL. |

ntl | math | NTL is a high-performance, portable C++ library providing data structures and algorithms for manipulating signed, arbitrary length integers, and for vectors, matrices, and polynomials over the integers and over finite fields. |

openbugs | math | OpenBUGS is a software application for the Bayesian analysis of complex statistical models using Markov chain Monte Carlo (MCMC) methods. |

sas | math | Statistical analysis package |

scotch | math | Software package and libraries for sequential and parallel graph partitioning, static mapping, and sparse matrix block ordering, and sequential mesh and hypergraph partitioning. |

stata | math | Stata is a complete, integrated statistical software package that provides everything you need for data analysis, data management, and graphics. |

sundials | math | SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers |

voro++ | math | Voro++ is a software library for carrying out three-dimensional computations of the Voronoi tessellation. A distinguishing feature of the Voro++ library is that it carries out cell-based calculations, computing the Voronoi cell for each particle individually. It is particularly well-suited for applications that rely on cell-based statistics, where features of Voronoi cells (eg. volume, centroid, number of faces) can be used to analyze a system of particles. |

# Using a Specific Software Module

To use a specific software package, run the `module load`

command. The `module load`

command in itself does not execute any of the programs but only prepares the environment, i.e. it sets up variables needed to run specific applications and find libraries provided by the module.

After loading a module, you are ready to run the application(s) provided by the module. **For example:**

```
module load mathematica
```