Gurobi/fr: Difference between revisions

163 bytes added ,  3 months ago
Updating to match new version of source page
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 8: Line 8:
</div>
</div>


<div class="mw-translate-fuzzy">
Nous dispensons le soutien technique pour la licence gratuite disponible sur [[Graham/fr|Graham]], [[Cedar/fr|Cedar]], [[Béluga]] et [[Niagara/fr|Niagara]]. Cette licence permet 4096 utilisations simultanées (avec jetons) et l'optimisation distribuée sur un maximum de 100 nœuds. Un utilisateur peut faire exécuter plusieurs tâches en simultané.
Nous dispensons le soutien technique pour la licence gratuite disponible sur [[Graham/fr|Graham]], [[Cedar/fr|Cedar]], [[Béluga]] et [[Niagara/fr|Niagara]]. Cette licence permet 4096 utilisations simultanées (avec jetons) et l'optimisation distribuée sur un maximum de 100 nœuds. Un utilisateur peut faire exécuter plusieurs tâches en simultané.
Vous devez cependant accepter certaines conditions. Faites parvenir un courriel au [[Technical_support/fr | soutien technique]] avec l'entente (''Academic Usage Agreement'') dûment complétée; vous pourrez ensuite utiliser les applications après un délai de quelques jours.
Vous devez cependant accepter certaines conditions. Faites parvenir un courriel au [[Technical_support/fr | soutien technique]] avec l'entente (''Academic Usage Agreement'') dûment complétée; vous pourrez ensuite utiliser les applications après un délai de quelques jours.
</div>


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 15: Line 17:
</div>
</div>


<div class="mw-translate-fuzzy">
My Alliance username is "_______" and I am a member of the academic institution "_____________________".  This message confirms that I will only use the Gurobi license provided on Digital Research Alliance of Canada systems for the purpose of non-commercial research project(s) to be published in publicly available article(s).
My Alliance username is "_______" and I am a member of the academic institution "_____________________".  This message confirms that I will only use the Gurobi license provided on Digital Research Alliance of Canada systems for the purpose of non-commercial research project(s) to be published in publicly available article(s).
</div>


===Configurer votre compte===
===Configurer votre compte===
Line 23: Line 27:
  $ gurobi_cl 1> /dev/null && echo Success || echo Fail
  $ gurobi_cl 1> /dev/null && echo Success || echo Fail


<div class="mw-translate-fuzzy">
Si vous obtenez ''Success'', vous pouvez utiliser Gurobi immédiatement. Si vous obtenez ''Fail'', vérifiez s'il existe un fichier nommé <i>~/.license/gurobi</i>; si c'est le cas, supprimez ou renommez ce fichier, chargez le module Gurobi de nouveau et refaites le test.<br>
Si vous obtenez ''Success'', vous pouvez utiliser Gurobi immédiatement. Si vous obtenez ''Fail'', vérifiez s'il existe un fichier nommé <i>~/.license/gurobi</i>; si c'est le cas, supprimez ou renommez ce fichier, chargez le module Gurobi de nouveau et refaites le test.<br>
Si vous obtenez encore ''Fail'', vérifiez si une variable d'environnement définit GUROBI dans vos fichiers <i>~/.bashrc</i> or <i>~/.bash_profile</I>; si c'est le cas, supprimez la ou les lignes correspondantes ou mettez-les en commentaire, déconnectez-vous et connectez-vous de nouveau, chargez le module Gurobi de nouveau et refaites le test.
Si vous obtenez encore ''Fail'', vérifiez si une variable d'environnement définit GUROBI dans vos fichiers <i>~/.bashrc</i> or <i>~/.bash_profile</I>; si c'est le cas, supprimez la ou les lignes correspondantes ou mettez-les en commentaire, déconnectez-vous et connectez-vous de nouveau, chargez le module Gurobi de nouveau et refaites le test.
<br>
<br>
Si vous obtenez toujours ''Fail'', contactez le [[Technical_support/fr | soutien technique]] pour de l'assistance.
Si vous obtenez toujours ''Fail'', contactez le [[Technical_support/fr | soutien technique]] pour de l'assistance.
</div>


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 32: Line 38:
</div>
</div>


<div class="mw-translate-fuzzy">
Les licences peuvent être obtenues d’un seul serveur situé en Ontario; il est donc important de limiter les demandes autant que possible. Plutôt que d’obtenir une licence chaque fois que votre tâche requiert Gurobi, ce qui peut être des centaines, voire même des milliers de fois, '''faites en sorte que votre code fonctionne avec une seule licence pour toute la durée de la tâche, et ce, peu importe l’environnement que vous utilisez'''. Vous y gagnerez en performance puisque le temps de communication avec un serveur à distance est très long et de plus, notre serveur sera plus accessible aux autres utilisateurs de Gurobi.  <span style="color:red">Si votre code n’est pas adapté en conséquence, le serveur pourrait ne pas pouvoir émettre de licence de façon intermittente; si ceci se produit, nous vous demanderons de mettre fin à toutes vos tâches et de corriger votre programme.</span> Voyez comment créer un environnement pour tous vos modèles avec vos programmes en [https://www.gurobi.com/documentation/9.5/refman/cpp_env2.html C++] ou en [https://www.gurobi.com/documentation/9.5/refman/py_env_start.html Python]. Le même problème peut aussi survenir avec d’autres programmes qui fonctionnent en parallèle comme R, surtout quand plusieurs tâches simultanées sont soumises à l'ordonnanceur,
Les licences peuvent être obtenues d’un seul serveur situé en Ontario; il est donc important de limiter les demandes autant que possible. Plutôt que d’obtenir une licence chaque fois que votre tâche requiert Gurobi, ce qui peut être des centaines, voire même des milliers de fois, '''faites en sorte que votre code fonctionne avec une seule licence pour toute la durée de la tâche, et ce, peu importe l’environnement que vous utilisez'''. Vous y gagnerez en performance puisque le temps de communication avec un serveur à distance est très long et de plus, notre serveur sera plus accessible aux autres utilisateurs de Gurobi.  <span style="color:red">Si votre code n’est pas adapté en conséquence, le serveur pourrait ne pas pouvoir émettre de licence de façon intermittente; si ceci se produit, nous vous demanderons de mettre fin à toutes vos tâches et de corriger votre programme.</span> Voyez comment créer un environnement pour tous vos modèles avec vos programmes en [https://www.gurobi.com/documentation/9.5/refman/cpp_env2.html C++] ou en [https://www.gurobi.com/documentation/9.5/refman/py_env_start.html Python]. Le même problème peut aussi survenir avec d’autres programmes qui fonctionnent en parallèle comme R, surtout quand plusieurs tâches simultanées sont soumises à l'ordonnanceur,
</div>


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 205: Line 213:
</div>
</div>


Once again, following steps need to be done once per system and are usable with StdEnv/2023 and older.  First load the modules to [[Python#Creating_and_using_a_virtual_environment|create the virtual environment]] and activate it.  Version 11.0.0 is skipped since it has been observed to seg fault in at least one example versus Version 11.0.1 which runs smoothly.
Once again, the following steps need to be done once per system and are usable with StdEnv/2023 and older.  First load the modules to [[Python#Creating_and_using_a_virtual_environment|create the virtual environment]] and activate it.  Version 11.0.0 is skipped since it has been observed to seg fault in at least one example versus Version 11.0.1 which runs smoothly.


{{Commands|prompt=[name@server ~] $
{{Commands|prompt=[name@server ~] $
Line 212: Line 220:
| source ~/env_gurobi/bin/activate
| source ~/env_gurobi/bin/activate
}}
}}
As before, install any needed Python packages.  Since the following matrix example requires <code>numpy</code> we install the pandas package :
As before, install any needed Python packages.  Since the following matrix example requires <code>numpy</code>, we install the pandas package:


{{Commands|prompt=(env_gurobi) [name@server ~] $
{{Commands|prompt=(env_gurobi) [name@server ~] $
|  pip install --no-index  pandas
|  pip install --no-index  pandas
}}
}}
Next install gurobipy into the environment. As mentioned above and in [[https://support.gurobi.com/hc/en-us/articles/360044290292-How-do-I-install-Gurobi-for-Python|this article]] the use of setup.py to install Gurobi for python is deprecated starting with Gurobi 11.  Both pip and conda are given as alternatives, however since conda should not be used on alliance systems, the pip approach will be demonstrated here. The installation of gurobipy is slightly complicated since Alliance linux systems are setup with gentoo prefix.  As a result neither A) the recommended command to download and install the gurobipy extension from the public PyPI server <code>pip install gurobipy==11.0.1</code> mentioned in the article line or B) the offline command to install the wheel with <code>python -m pip install --find-links <wheel-dir> --no-index gurobipy</code>, will work.  Instead a script available from the alliance maybe utilized to download and simultaneously convert the existing wheel into an usable format with a new name.  There is one caveat, for each new Gurobi version the researcher must go into https://pypi.org/project/gurobipy/11.0.1/#history and click on the desired version followed by the <code>Download files</code> button located in the left hand menu.  Finally click to copy the https link for the wheel file (named gurobipy-11.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl in the case of Gurobi 11.0.1) and paste it as the --url argument as shown below :
Next install gurobipy into the environment. As mentioned above and in [[https://support.gurobi.com/hc/en-us/articles/360044290292-How-do-I-install-Gurobi-for-Python|this article]] the use of setup.py to install Gurobi for python is deprecated starting with Gurobi 11.  Both pip and conda are given as alternatives; however, since conda should not be used on alliance systems, the pip approach will be demonstrated here. The installation of gurobipy is slightly complicated since our Linux systems are set up with gentoo prefix.  As a result neither A) the recommended command to download and install the gurobipy extension from the public PyPI server <code>pip install gurobipy==11.0.1</code> mentioned in the article line or B) the offline command to install the wheel with <code>python -m pip install --find-links <wheel-dir> --no-index gurobipy</code>, will work.  Instead a script available from the alliance maybe utilized to download and simultaneously convert the existing wheel into a usable format with a new name.  There is one caveat, for each new Gurobi version the researcher must go into https://pypi.org/project/gurobipy/11.0.1/#history and click on the desired version followed by the <code>Download files</code> button located in the menu on the left.  Finally, click to copy the https link for the wheel file (named gurobipy-11.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl in the case of Gurobi 11.0.1) and paste it as the --url argument as shown below :


{{Commands|prompt=(env_gurobi) [name@server ~] $
{{Commands|prompt=(env_gurobi) [name@server ~] $
38,789

edits