CPLEX/en: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
(Updating to match new version of source page)
Line 16: Line 16:
{{Command|mkdir -p $HOME/modulefiles/mycplex}}
{{Command|mkdir -p $HOME/modulefiles/mycplex}}


<div class="mw-translate-fuzzy">
In this directory, you should create a file (e.g. <tt>$HOME/modulefiles/mycplex/12.8.0</tt>) with the version number corresponding to the version you downloaded (e.g. 12.8.0) and with the following content:
In this directory, you should create a file (e.g. <tt>$HOME/modulefiles/mycplex/12.8.0</tt>) with the version number corresponding to the version you downloaded (e.g. 12.8.0) and with the following content:
{{File
{{File
  |name=cplex_module.sh
  |lang="sh"
  |contents=
</div>
{{Fichier
   |name=cplex_module.sh
   |name=cplex_module.sh
   |lang="sh"
   |lang="sh"
   |contents=
   |contents=


<!--T:9-->
#%Module1.0####
#%Module1.0####
##
##
Line 29: Line 36:
         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"
}


<div class="mw-translate-fuzzy">
<!--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."
</div>


<!--T:12-->
# for Tcl script use only
# for Tcl script use only
set    cplexversion        XYZ
set    cplexversion        XYZ
Line 46: Line 54:




<!--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 65:




<!--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 76:
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 82:
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 89:
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 96:
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-->
}}
}}
Adjust as necessary the lines corresponding to the variables <tt>cplexversion</tt> and <tt>studio_root</tt> so that they have the right values: the version number downloaded and the path to the software, i.e. the one you chose during the installation.
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==

Revision as of 13:47, 6 June 2018

Other languages:

CPLEX is software for optimization, developed by IBM. It is available for academic users through IBM's academic program.

Download

To use CPLEX on Compute Canada clusters, you must first register with the IBM academic program and then download a personal version of the software.

Installation

The file is an executable archive which will perform the installation after you have answered a few questions. To execute the archive, you need to type the command bash ./cplex_studioXYZ.linux-x86.bin.

To access the software, you can create a personal module. Modules are normally created and placed in a directory hierarchy. In order for your modules to be found, you need to modify the configuration file $HOME/.bashrc so that it points to the root of this hierarchy, by adding the following line:

Question.png
[name@server ~]$ export MODULEPATH=$HOME/modulefiles:$MODULEPATH

Next, you need to create a directory structure in which to put your new cplex module:

Question.png
[name@server ~]$ mkdir -p $HOME/modulefiles/mycplex

In this directory, you should create a file (e.g. $HOME/modulefiles/mycplex/12.8.0) with the version number corresponding to the version you downloaded (e.g. 12.8.0) and with the following content: {{File

 |name=cplex_module.sh
 |lang="sh"
 |contents=
Fichier : cplex_module.sh

#%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

If you use Java, you will have some further steps to carry out. Firstly, in your .bashrc file, you can add the line

Question.png
[nom@serveur ~]$ export CLASSPATH=.

which will allow your code to be found during execution.

Next, you should modify the dynamic library of cplex. Look for this library in the directory hierarchy of the installation directory, make a copy of it and then execute the command

Question.png
[name@server ~]$ setrpaths.sh --path libcplex1280.so

It's possible that during your compilation, you receive an error message because of a lack of memory. In this case, you should request a compute node using an interactive job to do the compilation. For example,

Question.png
[name@server ~]$ salloc --time=1:0:0 --ntasks=1 --mem-per-cpu=8G