Even-though Python is available in all Linux machines, the module Anaconda allows you to load Python version 3.6 that give you access to a wide range of scientific libraries such as Scipy and Numpy. You can find a list of all available modules here: https://store.continuum.io/cshop/anaconda/. In order to use this suite python, you need to load the module anaconda in your account:
module load anaconda
You will also have access to some virtual environments. You can use the command:
module help anaconda
to see what is available.
Anaconda comes with many preinstalled packages but you might need one that isn't available. In that case, you can use the pip
tool to search packages and install them.
Here's a search example:
>pip search pulp coinor.pulp (1.0.4) - This is a package that wraps pulp and imports it into the namespace package coinor. pulp-or (1.4.6) - PuLP is an LP modeler written in python. PuLP can generate MPS or LP files and call GLPK, COIN CLP/CBC, CPLEX, and GUROBI to solve linear problems. PuLP-py3 (1.5.5) - Temporary fork of PuLP offering support for Python 3 while retaining compatibility with Python 2. PuLP is an LP modeler that can generate MPS or LPfiles and call GLPK, COIN CLP/CBC, CPLEX, and GUROBI to solve linear problems. juicer (0.7.2) - Administer Pulp and Release Carts pulpo-forms (1.1) - Django App to create dynamic Surveys pulpcbc (0.1.4) - UNKNOWN pulpitum (0.2.2) - PyPI client for Humans™ mypulp (0.0.9) - `mypulp` is a package for mypulp. yaposib (0.3.2) - Yaposib is a python binding to OSI, the Open Solver Interface from COIN-OR. It intends to give access to various solvers through python. Yaposib was created in order to be integrated in pulp-or (http://code.google.com/p/pulp-or). pulp-smash (2016.11.10) - A library for testing Pulp PuLP (1.6.1) -
To install a package, you can do as follows:
>pip install --user pulp Collecting pulp Collecting pyparsing<=1.9.9 (from pulp) Installing collected packages: pyparsing, pulp Successfully installed pulp pyparsing-2.0.3
If you're using those libraries, be careful when submitting jobs to the compute grid since by default it will use all available processors. To restrict the job to one CPU, you can run your program like this:
OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 python mon programme.py