Aller au contenu

GUROBI

Obtention

Pour obtenir gurobi, vous devez vous inscrire sur le site https://www.gurobi.com/academia/academic-program-and-licenses/

Ensuite vous pourrez télécharger et activer votre clé.

Sur les postes Linux du CIRRELT/GERAD, le logiciel est déjà disponible et vous pouvez y accéder en chargeant le module gurobi.

module load gurobi

Installation

Pour certains langages comme python et julia, même si gurobi est déjà installé, vous devez tout de même installer le package approprié pour la langue.

Voici un exemple de procédure pour faire l'installation de gurobi 10.0.0. Vous devez ajuster les instructions selon la version de gurobi que vous désirez utiliser. Assurez-vous que la version installée correspond au module que vous chargez.

Nous vous recommandons aussi d'utiliser un environnement virtuel pour votre projet plutôt que d'utiliser l'option --user.

module load gurobi/10.0.0
mkdir -p /tmp/$$
cp -r /home/gurobi/10.0.0/linux64 /tmp/$$
cd /tmp/$$/linux64/
python3 setup.py install --user
cd
rm -rf /tmp/$$
pip3 install gurobipy

Voici un exemple d'installation pour gurobi 10.0.0. Assurez-vous de charger la même version du module que celle que vous utilisez lors de l'installation.

Nous vous recommandons d'utiliser un environnement virtuel pour votre projet.

import Pkg
Pkg.add("JuMP")
ENV["GUROBI_HOME"]  = "/home/gurobi/10.0.0/linux64"
Pkg.add("Gurobi")
Pkg.build("Gurobi")

Nombre de threads

Gurobi essaiera automatiquement d'utiliser tous les threads sur une machine lors de l'optimisation. Comme les ordinateurs sont partagés, limitez le nombre utilisé par votre application. Il y a aussi des considération de quantité de mémoire disponible à prendre en compte, chaque thread exigeant plus de mémoire.

GRBsetintparam(GRBgetenv(model), GRB_INT_PAR_THREADS , 1)
model.set(GRB_IntParam_Threads, 1)
model.setParam(GRB.Param.Threads)
m = Model(solver = GurobiSolver(Threads=1))