CPLEX: Difference between revisions
No edit summary |
(Marked this version for translation) |
||
Line 1: | Line 1: | ||
<languages /> | <languages /> | ||
<translate> | <translate> | ||
<!--T:1--> | |||
[https://www.ibm.com/analytics/data-science/prescriptive-analytics/cplex-optimizer CPLEX] est un logiciel d'optimisation développé par IBM. Il est disponible aux usagers universitaires via le programme académique d'IBM. | [https://www.ibm.com/analytics/data-science/prescriptive-analytics/cplex-optimizer CPLEX] est un logiciel d'optimisation développé par IBM. Il est disponible aux usagers universitaires via le programme académique d'IBM. | ||
==Téléchargement== | ==Téléchargement== <!--T:2--> | ||
Pour pouvoir utiliser CPLEX sur une des grappes de Compute Canada, vous devez tout d'abord vous inscrire au programme académique IBM et télécharger votre version personnelle du logiciel. | Pour pouvoir utiliser CPLEX sur une des grappes de Compute Canada, vous devez tout d'abord vous inscrire au programme académique IBM et télécharger votre version personnelle du logiciel. | ||
==Installation== | ==Installation== <!--T:3--> | ||
Le fichier est une archive exécutable qui fera l'installation en posant quelques questions. Pour exécuter l'archive, il faut faire <tt>bash ./cplex_studioXYZ.linux-x86.bin</tt>. | Le fichier est une archive exécutable qui fera l'installation en posant quelques questions. Pour exécuter l'archive, il faut faire <tt>bash ./cplex_studioXYZ.linux-x86.bin</tt>. | ||
<!--T:4--> | |||
Pour accéder au logiciel, vous pouvez créer des modules personnels. Les modules sont habituellement créés et mis dans une arborescence de répertories. Pour que vos modules soient trouvés, vous devez modifier le fichier de configuration $HOME/.bashrc pour pointer vers la racine de cette arborescence, en ajoutant la ligne suivante: | Pour accéder au logiciel, vous pouvez créer des modules personnels. Les modules sont habituellement créés et mis dans une arborescence de répertories. Pour que vos modules soient trouvés, vous devez modifier le fichier de configuration $HOME/.bashrc pour pointer vers la racine de cette arborescence, en ajoutant la ligne suivante: | ||
<!--T:5--> | |||
{{Commande|export MODULEPATH{{=}}$HOME/modulefiles:$MODULEPATH}} | {{Commande|export MODULEPATH{{=}}$HOME/modulefiles:$MODULEPATH}} | ||
<!--T:6--> | |||
Ensuite, il faut créer une structure de répertoires pour y mettre votre nouveau module cplex: | Ensuite, il faut créer une structure de répertoires pour y mettre votre nouveau module cplex: | ||
<!--T:7--> | |||
{{Commande|mkdir -p $HOME/modulefiles/mycplex}} | {{Commande|mkdir -p $HOME/modulefiles/mycplex}} | ||
<!--T:8--> | |||
Dans ce répertoire, vous allez créer un fichier (par exemple <tt>$HOME/modulefiles/mycplex/12.8.0</tt>) ayant le numéro de la version que vous avez téléchargé précédemment (le XYX) et qui contient ceci: | Dans ce répertoire, vous allez créer un fichier (par exemple <tt>$HOME/modulefiles/mycplex/12.8.0</tt>) ayant le numéro de la version que vous avez téléchargé précédemment (le XYX) et qui contient ceci: | ||
{{Fichier | {{Fichier | ||
Line 24: | Line 30: | ||
************************************************************************************************ | ************************************************************************************************ | ||
<!--T:9--> | |||
#%Module1.0##################################################################### | #%Module1.0##################################################################### | ||
## | ## | ||
Line 31: | Line 38: | ||
global cplexversion | global cplexversion | ||
puts stderr "\tIBM ILOG cplex " | <!--T:10--> | ||
puts stderr "\tIBM ILOG cplex " | |||
puts stderr "\tThis module provides configuration for cplex, concert, cpoptimizer and opl" | puts stderr "\tThis module provides configuration for cplex, concert, cpoptimizer and opl" | ||
} | } | ||
<!--T:11--> | |||
module-whatis "IBM ILOG cplex (cplex, concert, cpoptimizer, opl). This version doesn't ask for a licence file." | module-whatis "IBM ILOG cplex (cplex, concert, cpoptimizer, opl). This version doesn't ask for a licence file." | ||
<!--T:12--> | |||
# for Tcl script use only | # for Tcl script use only | ||
set cplexversion XYZ | set cplexversion XYZ | ||
Line 46: | Line 56: | ||
<!--T:13--> | |||
set cplexbin x86-64_linux | set cplexbin x86-64_linux | ||
set cplexlib $cplexbin/static_pic | set cplexlib $cplexbin/static_pic | ||
Line 56: | Line 67: | ||
<!--T:14--> | |||
prepend-path PATH $cplexroot/bin/$cplexbin | prepend-path PATH $cplexroot/bin/$cplexbin | ||
prepend-path PATH $oplroot/bin/$oplbin | prepend-path PATH $oplroot/bin/$oplbin | ||
prepend-path PATH $cpoptimizerroot/bin/$cpoptimizerbin | prepend-path PATH $cpoptimizerroot/bin/$cpoptimizerbin | ||
<!--T:15--> | |||
prepend-path CPATH $cplexroot/include | prepend-path CPATH $cplexroot/include | ||
prepend-path CPATH $concertroot/include | prepend-path CPATH $concertroot/include | ||
Line 65: | Line 78: | ||
prepend-path CPATH $cpoptimizerroot/include | prepend-path CPATH $cpoptimizerroot/include | ||
<!--T:16--> | |||
prepend-path -d " " CPATH_EXPANDED -I$cplexroot/include | prepend-path -d " " CPATH_EXPANDED -I$cplexroot/include | ||
prepend-path -d " " CPATH_EXPANDED -I$concertroot/include | prepend-path -d " " CPATH_EXPANDED -I$concertroot/include | ||
Line 70: | Line 84: | ||
prepend-path -d " " CPATH_EXPANDED -I$cpoptimizerroot/include | prepend-path -d " " CPATH_EXPANDED -I$cpoptimizerroot/include | ||
<!--T:17--> | |||
prepend-path LIBRARY_PATH $cplexroot/lib/$cplexlib | prepend-path LIBRARY_PATH $cplexroot/lib/$cplexlib | ||
prepend-path LIBRARY_PATH $concertroot/lib/$concertlib | prepend-path LIBRARY_PATH $concertroot/lib/$concertlib | ||
Line 76: | Line 91: | ||
prepend-path LIBRARY_PATH $cpoptimizerroot/lib/$cpoptimizerlib | prepend-path LIBRARY_PATH $cpoptimizerroot/lib/$cpoptimizerlib | ||
<!--T:18--> | |||
prepend-path -d " " LIBRARY_PATH_EXPANDED -L$cplexroot/lib/$cplexlib | prepend-path -d " " LIBRARY_PATH_EXPANDED -L$cplexroot/lib/$cplexlib | ||
prepend-path -d " " LIBRARY_PATH_EXPANDED -L$concertroot/lib/$concertlib | prepend-path -d " " LIBRARY_PATH_EXPANDED -L$concertroot/lib/$concertlib | ||
Line 82: | Line 98: | ||
prepend-path -d " " LIBRARY_PATH_EXPANDED -L$cpoptimizerroot/lib/$cpoptimizerlib | prepend-path -d " " LIBRARY_PATH_EXPANDED -L$cpoptimizerroot/lib/$cpoptimizerlib | ||
<!--T:19--> | |||
prepend-path LD_LIBRARY_PATH $cplexroot/bin/$cplexbin | prepend-path LD_LIBRARY_PATH $cplexroot/bin/$cplexbin | ||
prepend-path LD_LIBRARY_PATH $oplroot/bin/$oplbin | prepend-path LD_LIBRARY_PATH $oplroot/bin/$oplbin | ||
<!--T:20--> | |||
prepend-path CLASSPATH $cplexroot/lib/cplex.jar | prepend-path CLASSPATH $cplexroot/lib/cplex.jar | ||
prepend-path MATLABPATH $cplexroot/matlab | prepend-path MATLABPATH $cplexroot/matlab | ||
<!--T:21--> | |||
*********************************************************** | *********************************************************** | ||
}} | }} | ||
Ajustez les lignes qui correspondent aux variables <tt>cplexversion</tt> et <tt>studio_root</tt> afin qu'elles aient les bonnes valeurs : la version téléchargée et du chemin d'accès pour ce logiciel (c'est-à-dire le chemin que vous avez spécifié lors de l'extraction de l'archive). | Ajustez les lignes qui correspondent aux variables <tt>cplexversion</tt> et <tt>studio_root</tt> afin qu'elles aient les bonnes valeurs : la version téléchargée et du chemin d'accès pour ce logiciel (c'est-à-dire le chemin que vous avez spécifié lors de l'extraction de l'archive). | ||
==Java== | ==Java== <!--T:22--> | ||
Si vous utilisez java, vous aurez quelques étapes supplémentaires. Tout d'abord, dans votre fichier .bashrc, vous pouvez ajouter la ligne, | Si vous utilisez java, vous aurez quelques étapes supplémentaires. Tout d'abord, dans votre fichier .bashrc, vous pouvez ajouter la ligne, | ||
{{Commande|export CLASSPATH{{=}}.}} | {{Commande|export CLASSPATH{{=}}.}} | ||
qui permettra de trouver votre code lors de l'exécution. | qui permettra de trouver votre code lors de l'exécution. | ||
<!--T:23--> | |||
Ensuite, vous devrez modifier la librairie dynamique de cplex. Cherchez cette librairie dans l'arborescence du répertoire d'installation, faites en une copie et exécutez la commande: | Ensuite, vous devrez modifier la librairie dynamique de cplex. Cherchez cette librairie dans l'arborescence du répertoire d'installation, faites en une copie et exécutez la commande: | ||
{{Commande|setrpaths.sh --path libcplex1280.so}} | {{Commande|setrpaths.sh --path libcplex1280.so}} | ||
<!--T:24--> | |||
Il est possible que lors de votre compilation, vous ayez un message d'erreur à cause d'un manque de mémoire. Si c'est le cas, vous devrez demander un noeud de calcul interactif pour pouvoir faire la compilation. | Il est possible que lors de votre compilation, vous ayez un message d'erreur à cause d'un manque de mémoire. Si c'est le cas, vous devrez demander un noeud de calcul interactif pour pouvoir faire la compilation. | ||
Par exemple: | Par exemple: | ||
{{Commande|salloc --time{{=}}1:0:0 --ntasks{{=}}1 --mem-per-cpu{{=}}8G}} | {{Commande|salloc --time{{=}}1:0:0 --ntasks{{=}}1 --mem-per-cpu{{=}}8G}} | ||
</translate> | </translate> |
Revision as of 19:39, 28 March 2018
CPLEX est un logiciel d'optimisation développé par IBM. Il est disponible aux usagers universitaires via le programme académique d'IBM.
Téléchargement
Pour pouvoir utiliser CPLEX sur une des grappes de Compute Canada, vous devez tout d'abord vous inscrire au programme académique IBM et télécharger votre version personnelle du logiciel.
Installation
Le fichier est une archive exécutable qui fera l'installation en posant quelques questions. Pour exécuter l'archive, il faut faire bash ./cplex_studioXYZ.linux-x86.bin.
Pour accéder au logiciel, vous pouvez créer des modules personnels. Les modules sont habituellement créés et mis dans une arborescence de répertories. Pour que vos modules soient trouvés, vous devez modifier le fichier de configuration $HOME/.bashrc pour pointer vers la racine de cette arborescence, en ajoutant la ligne suivante:
[nom@serveur ~]$ export MODULEPATH=$HOME/modulefiles:$MODULEPATH
Ensuite, il faut créer une structure de répertoires pour y mettre votre nouveau module cplex:
[nom@serveur ~]$ mkdir -p $HOME/modulefiles/mycplex
Dans ce répertoire, vous allez créer un fichier (par exemple $HOME/modulefiles/mycplex/12.8.0) ayant le numéro de la version que vous avez téléchargé précédemment (le XYX) et qui contient ceci:
************************************************************************************************
#%Module1.0#####################################################################
##
## cplex
##
proc ModulesHelp { } {
global cplexversion
puts stderr "\tIBM ILOG cplex "
puts stderr "\tThis module provides configuration for cplex, concert, cpoptimizer and opl"
}
module-whatis "IBM ILOG cplex (cplex, concert, cpoptimizer, opl). This version doesn't ask for a licence file."
# for Tcl script use only
set cplexversion XYZ
set studio_root <root path of cplex>
set cplexroot $studio_root/cplex
set concertroot $studio_root/concert
set oplroot $studio_root/opl
set cpoptimizerroot $studio_root/cpoptimizer
set cplexbin x86-64_linux
set cplexlib $cplexbin/static_pic
set concertbin x86-64_linux
set concertlib $concertbin/static_pic
set oplbin x86-64_linux
set opllib $oplbin/static_pic
set cpoptimizerbin x86-64_linux
set cpoptimizerlib $cpoptimizerbin/static_pic
prepend-path PATH $cplexroot/bin/$cplexbin
prepend-path PATH $oplroot/bin/$oplbin
prepend-path PATH $cpoptimizerroot/bin/$cpoptimizerbin
prepend-path CPATH $cplexroot/include
prepend-path CPATH $concertroot/include
prepend-path CPATH $oplroot/include
prepend-path CPATH $cpoptimizerroot/include
prepend-path -d " " CPATH_EXPANDED -I$cplexroot/include
prepend-path -d " " CPATH_EXPANDED -I$concertroot/include
prepend-path -d " " CPATH_EXPANDED -I$oplroot/include
prepend-path -d " " CPATH_EXPANDED -I$cpoptimizerroot/include
prepend-path LIBRARY_PATH $cplexroot/lib/$cplexlib
prepend-path LIBRARY_PATH $concertroot/lib/$concertlib
prepend-path LIBRARY_PATH $oplroot/lib/$opllib
prepend-path LIBRARY_PATH $oplroot/bin/x86-64_linux/
prepend-path LIBRARY_PATH $cpoptimizerroot/lib/$cpoptimizerlib
prepend-path -d " " LIBRARY_PATH_EXPANDED -L$cplexroot/lib/$cplexlib
prepend-path -d " " LIBRARY_PATH_EXPANDED -L$concertroot/lib/$concertlib
prepend-path -d " " LIBRARY_PATH_EXPANDED -L$oplroot/lib/$opllib
prepend-path -d " " LIBRARY_PATH_EXPANDED -L$oplroot/bin/x86-64_linux/
prepend-path -d " " LIBRARY_PATH_EXPANDED -L$cpoptimizerroot/lib/$cpoptimizerlib
prepend-path LD_LIBRARY_PATH $cplexroot/bin/$cplexbin
prepend-path LD_LIBRARY_PATH $oplroot/bin/$oplbin
prepend-path CLASSPATH $cplexroot/lib/cplex.jar
prepend-path MATLABPATH $cplexroot/matlab
***********************************************************
Ajustez les lignes qui correspondent aux variables cplexversion et studio_root afin qu'elles aient les bonnes valeurs : la version téléchargée et du chemin d'accès pour ce logiciel (c'est-à-dire le chemin que vous avez spécifié lors de l'extraction de l'archive).
Java
Si vous utilisez java, vous aurez quelques étapes supplémentaires. Tout d'abord, dans votre fichier .bashrc, vous pouvez ajouter la ligne,
[nom@serveur ~]$ export CLASSPATH=.
qui permettra de trouver votre code lors de l'exécution.
Ensuite, vous devrez modifier la librairie dynamique de cplex. Cherchez cette librairie dans l'arborescence du répertoire d'installation, faites en une copie et exécutez la commande:
[nom@serveur ~]$ setrpaths.sh --path libcplex1280.so
Il est possible que lors de votre compilation, vous ayez un message d'erreur à cause d'un manque de mémoire. Si c'est le cas, vous devrez demander un noeud de calcul interactif pour pouvoir faire la compilation. Par exemple:
[nom@serveur ~]$ salloc --time=1:0:0 --ntasks=1 --mem-per-cpu=8G