cplex_slurm


cplex_slurm, examples which illustrate how to run the cplex() program under the slurm() job submission system. cplex() is an executable program and a library for defining and solving a variety of linear programming problems, as well as network flow problems, quadratic programming problems, and mixed integer programming problems.

Input to the executable program is in a very natural format. In particular, a simple 3 variable linear programming problem could be described to CPLEX by the following input text, which is completely understandable by anyone familiar with these kinds of problems:

enter example

maximize x1 + 2 x2 + 3 x3

subject to -x1 +   x2 + x3 <= 20
            x1 - 3 x2 + x3 <= 30

bounds
0 <= x1 <= 40
0 <= x2
0 <= x3

end

optimize
    

Users may also access the associated CP Optimizer library of constraint programming tools supporting constraint propagation, domain reduction, and highly optimized solution search.

Although CPLEX is a commercial package from IBM, it is possible for interested users to obtain a version of CPLEX, limited to no more than 1000 variables and 1000 constraints. IBM also offers free access to a full version of CPLEX for faculty and researchers at accredited universities. For more information on this opportunity, see https://www-01.ibm.com/software/websphere/products/optimization/cplex-studio-community-edition/ .

Web site:

https://www-01.ibm.com/software/commerce/optimization/cplex-optimizer/index.html .

Reference:

  1. IBM ILOG CPLEX Optimization Studio,
    Getting Started with CPLEX,
    https://www.ibm.com/support/knowledgecenter/SSSA5P_12.6.3/ilog.odms.studio.help/pdf/gscplex.pdf , 130 pages.
  2. IBM ILOG CPLEX Optimization Studio,
    CPLEX User's Manual,
    https://www.ibm.com/support/knowledgecenter/SSSA5P_12.6.3/ilog.odms.studio.help/pdf/usrcplex.pdf , 564 pages.

Usage:

On any ARC cluster, check the installation details by typing "module spider cplex".

CPLEX can be loaded with a single module command: One version of the appropriate commands is:

      module load cplex/12.6.2
    

Examples:

Here is an example batch script which supplies a user input file to the executable CPLEX program:

#! /bin/bash
#
#PBS -l walltime=00:05:00
#PBS -l nodes=1:ppn=1
#PBS -W group_list=newriver
#PBS -q open_q
#PBS -j oe

cd $PBS_O_WORKDIR

module load cplex/12.6.2

cplex < input.txt

A complete set of files to carry out a similar example calculation are available in a tar file