Skip to content

Gurobi

Gurobi je licenčna programska oprema, ki je na voljo samo za uporabnike HPC Vega, ki že imajo licenco Gurobi. Za pridobitev dostopa mora vsak uporabnik poslati elektronsko sporočilo naši podporni ekipi, ki vsebuje vaše uporabniško ime na gruči in elektronski naslov, na katerega je dodeljena licenca.

Moduli

Upravičeni uporabniki imajo na voljo modul Gurobi.

module av Gurobi

Izpis:

------------------------------------------------------ /ceph/hpc/software/modulefiles ------------------------------------------------------
   Gurobi/9.5.1-GCCcore-11.2.0-env

------------------------------------------------- /cvmfs/sling.si/modules/el7/modules/all --------------------------------------------------
   Gurobi/9.5.1-GCCcore-11.2.0 (D)

  Where:
   D:  Default Module

Use "module spider" to find all possible modules and extensions.
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".

Ko dobite dostop do programske opreme Gurobi na gruči Vega, boste lahko naložili module Gurobi s pripono -env. Modul bo izvozil pravilno licenčno pot GRB_LICENSE_FILE.

module load Gurobi/9.5.1-GCCcore-11.2.0-env 

Gurobi shell based on Python 3.9.6 can be launched with command `gurobi.sh`
Gurobi Python Interface can be loaded in Python 3.9.6 with 'import gurobipy'

...

gurobi_cl

Set parameter TSPort to value 38567
Set parameter Username
Set parameter TokenServer to value "gurobi.vega.izum.si"
Set parameter LogFile to value "gurobi.log"
Using license file /ceph/hpc/software/gurobi/lic/gurobi.lic

Usage: gurobi_cl [--command]* [param=value]* filename
Type 'gurobi_cl --help' for more information.

Licenca

Trenutno je na voljo Floating licenca.

gurobi_cl --license

Set parameter TSPort to value 38567
Set parameter Username
Set parameter TokenServer to value "gurobi.vega.izum.si"
Set parameter LogFile to value "gurobi.log"
Using license file /ceph/hpc/software/gurobi/lic/gurobi.lic

Izvajanje batch poslov

Za izvajanje batch poslov morate pripraviti skripto za posle (glejte spodnje primere) in jo oddati v batch sistem z ukazom sbatch.

Primer 1:

#!/bin/bash -l
#SBATCH --output=mpi-%j.out
#SBATCH --ntasks=10
#SBATCH --cpus-per-task=6
#SBATCH --time=00:20:00
#SBATCH --export=ALL

module load openmpi/4.1.2.1 
module --ignore-cache load Gurobi/9.5.1-GCCcore-11.2.0-env
export QUEUETIMEOUT=200

mpirun -np 1 gurobi_cl Threads=60 VarBranch=1 Cuts=1 PreSolve=2 ResultFile=/ceph/hpc/home/$USER/output-example1.sol input.lp

Primer 2:

#!/bin/bash -l
#SBATCH --output=omp-%j.out
#SBATCH --cpus-per-task=6
#SBATCH --time=00:20:00
#SBATCH --export=ALL

module load openmpi/4.1.2.1
module --ignore-cache load Gurobi/9.5.1-GCCcore-11.2.0-env
export QUEUETIMEOUT=200
export OMP_NUM_THREADS=24

srun gurobi_cl Threads=24 VarBranch=1 Cuts=1 PreSolve=2 ResultFile=/ceph/hpc/home/$USER/output-example2.sol input.lp