Basic Command Configurations

Introduction

This page is to help users that are hosting an Opt-Server to configure the solvers and interpreters that they want to support.

You can configure virtually any solver or command-line tool in your Opt-Server. The instructions below are only for some popular solvers and tools, free and commercial, that you may want your Opt-Server to support.


General Remarks

We only present a minimal configuration setup for each command. You may need to adapt the configuration to fit your needs. The system directories' paths that you will find in the suggested configurations may differ from yours. Modify them accordingly. When following the instruction below, we suggest that you install all the tools you want to support in a common location in your home directory, e.g. /home/joe/my-programs, so that you can more easily locate the programs binaries and libraries. That's not a requirement, just a suggestion. Although the configurations below are presented for each command separately, there is nothing stopping you from having a single named sandbox aggregating the configurations of all commands that you want to support.

AMPL

1. Installation (skip if it is already installed):

  • Step 1: Purchase AMPL or download one of its free versions (demo, community or academic).
  • Step 2: Extract the compressed file you got wherever you want, e.g. /home/joe/my-programs

2. Add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly:

{
    "name" : "ampl",
    "executable" : "/home/joe/my-programs/ampl.linux-intel64/ampl",
    "mount-readable" : [
        "/lib64",
        "/lib/x86_64-linux-gnu",
        "/home/joe/my-programs/ampl.linux-intel64"
    ],
    "environment-variables" : [
        "PATH=/home/joe/my-programs/ampl.linux-intel64",
        "CPATH=/home/joe/my-programs/ampl.linux-intel64/amplapi/include",
        "LIBRARY_PATH=/home/joe/my-programs/ampl.linux-intel64/amplapi/lib",
        "LD_LIBRARY_PATH=/home/joe/my-programs/ampl.linux-intel64/amplapi/lib"
    ],
    "auto-mount" : "disabled"
}

CMPL

1. Installation (skip if it is already installed):

  • Step 1: Install the open source CBC solver.
    > sudo apt-get install coinor-cbc coinor-libcbc-dev
  • Step 2: Download and extract CMPL wherever you want:
    > cd /home/joe/my-programs
    > wget http://www.coliop.org/_download/Cmpl-2-0-1-linux64.tar.gz
    > tar xf Cmpl-2-0-1-linux64.tar.gz
    

2. Add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly:

{
    "name" : "cmpl",
    "executable" : "/home/joe/my-programs/Cmpl-2-0-1-linux64/bin/cmpl",
    "mount-readable" : [
        "/lib64",
        "/lib/x86_64-linux-gnu",
        "/bin/sh",
        "/home/joe/my-programs/Cmpl-2-0-1-linux64"
    ],
    "environment-variables" : [
        "PATH=/home/joe/my-programs/Cmpl-2-0-1-linux64/bin"
    ],
    "auto-mount" : "disabled"
}

CPLEX

1. Installation (skip if it is already installed):

  • Step 1: Purchase CPLEX or download one of its free versions (community or academic).
  • Step 2: Run the installer you got, e.g. ./cos-installer.bin. Follow the installer instructions and select the destination folder:
    Where would you like to install?
    
      Default Install Folder: /opt/ibm/ILOG/CPLEX_Studio_Community221
    
    ENTER AN ABSOLUTE PATH, OR PRESS  TO ACCEPT THE DEFAULT
          : /home/joe/my-programs/CPLEX_Studio_Community221
    

2. If you would like to execute oplrun from PIFOP, add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly:

{
    "name" : "oplrun",
    "executable" : "/home/joe/my-programs/CPLEX_Studio_Community221/opl/bin/x86-64_linux/oplrun",
    "mount-readable" : [
        "/lib64",
        "/lib/x86_64-linux-gnu",
        "/home/joe/my-programs/CPLEX_Studio_Community221"
    ],
    "environment-variables" : [
        "PATH=/home/joe/my-programs/CPLEX_Studio_Community221/opl/bin/x86-64_linux",
        "CPATH=/home/joe/my-programs/CPLEX_Studio_Community221/opl/include",
        "LIBRARY_PATH=/home/joe/my-programs/CPLEX_Studio_Community221/opl/bin/x86-64_linux",
        "LIBRARY_PATH=/home/joe/my-programs/CPLEX_Studio_Community221/opl/lib/x86-64_linux/static_pic",
        "LD_LIBRARY_PATH=/home/joe/my-programs/CPLEX_Studio_Community221/opl/bin/x86-64_linux",
        "LD_LIBRARY_PATH=/home/joe/my-programs/CPLEX_Studio_Community221/opl/lib/x86-64_linux/static_pic"
    ],
    "auto-mount" : "disabled"
}

3. If you would like to execute cplex from PIFOP, add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly:

{
    "name" : "cplex",
    "executable" : "/home/joe/my-programs/CPLEX_Studio_Community221/cplex/bin/x86-64_linux/cplex",
    "mount-readable" : [
        "/lib64",
        "/lib/x86_64-linux-gnu",
        "/home/joe/my-programs/CPLEX_Studio_Community221"
    ],
    "environment-variables" : [
        "PATH=/home/joe/my-programs/CPLEX_Studio_Community221/cplex/bin/x86-64_linux",
        "PYTHONPATH=/home/joe/my-programs/CPLEX_Studio_Community221/cplex/python/3.9/x86-64_linux",
        "PYTHONPATH=/home/joe/my-programs/CPLEX_Studio_Community221/python/docplex",
        "CPATH=/home/joe/my-programs/CPLEX_Studio_Community221/cplex/include",
        "LIBRARY_PATH=/home/joe/my-programs/CPLEX_Studio_Community221/cplex/lib/x86-64_linux/static_pic",
        "LIBRARY_PATH=/home/joe/my-programs/CPLEX_Studio_Community221/cplex/bin/x86-64_linux",
        "LD_LIBRARY_PATH=/home/joe/my-programs/CPLEX_Studio_Community221/cplex/bin/x86-64_linux",
        "CPATH=/home/joe/my-programs/CPLEX_Studio_Community221/concert/include",
        "LIBRARY_PATH=/home/joe/my-programs/CPLEX_Studio_Community221/concert/lib/x86-64_linux/static_pic"
    ],
    "auto-mount" : "disabled"
}

4. If you would like to execute cpoptimizer from PIFOP, add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly:

{
    "name" : "cpoptimizer",
    "executable" : "/home/joe/my-programs/CPLEX_Studio_Community221/cpoptimizer/bin/x86-64_linux/cpoptimizer",
    "mount-readable" : [
        "/lib64",
        "/lib/x86_64-linux-gnu",
        "/home/joe/my-programs/CPLEX_Studio_Community221/cpoptimizer"
    ],
    "environment-variables" : [
        "PATH=/home/joe/my-programs/CPLEX_Studio_Community221/cpoptimizer/bin/x86-64_linux",
        "LIBRARY_PATH=/home/joe/my-programs/CPLEX_Studio_Community221/cpoptimizer/lib/x86-64_linux/static_pic",
        "CPATH=/home/joe/my-programs/CPLEX_Studio_Community221/cpoptimizer/include"
    ],
    "auto-mount" : "disabled"
}

GAMS

1. Installation (skip if it is already installed):

  • Step 1: Purchase GAMS or get one of the demo versions. You should have a GAMS installer and a GAMS license before continuing. The license is usually sent to your email.
  • Step 2: Put the installer you got, e.g. ./linux_x64_64_sfx.exe, inside a directory of your choice, e.g. /home/joe/my-programs.
  • Step 3: Go to /home/joe/my-programs and run the installer, which will create a directory in-place.
  • Step 4: Go to the extracted fodlder, write your license to gamslice.txt and run ./gamsinst to install the license.

2. Add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly:

{
    "name" : "gams",
    "executable" : "/home/joe/my-programs/gams40.1_linux_x64_64_sfx/gams",
    "mount-readable" : [
        "/lib64",
        "/lib/x86_64-linux-gnu",
        "/home/joe/my-programs/gams40.1_linux_x64_64_sfx"
    ],
    "environment-variables" : [
        "PATH=/home/joe/my-programs/gams40.1_linux_x64_64_sfx",
        "PYTHONPATH=/home/joe/my-programs/gams40.1_linux_x64_64_sfx/apifiles/Python/api_38",
        "PYTHONPATH=/home/joe/my-programs/gams40.1_linux_x64_64_sfx/apifiles/Python/gams",
        "CPATH=/home/joe/my-programs/gams40.1_linux_x64_64_sfx/apifiles/C/api",
        "CPATH=/home/joe/my-programs/gams40.1_linux_x64_64_sfx/apifiles/C++/api",
        "LIBRARY_PATH=/home/joe/my-programs/gams40.1_linux_x64_64_sfx",
        "LIBRARY_PATH=/home/joe/my-programs/gams40.1_linux_x64_64_sfx/apifiles/C++/lib",
        "LIBRARY_PATH=/home/joe/my-programs/gams40.1_linux_x64_64_sfx/apifiles/C/api",
        "LIBRARY_PATH=/home/joe/my-programs/gams40.1_linux_x64_64_sfx/apifiles/C++/api",
        "LD_LIBRARY_PATH=/home/joe/my-programs/gams40.1_linux_x64_64_sfx",
        "LD_LIBRARY_PATH=/home/joe/my-programs/gams40.1_linux_x64_64_sfx/apifiles/C++/lib"
    ],
    "auto-mount" : "disabled"
}

GLPK

1. Installation (skip if it is already installed):

> sudo apt-get install glpk-utils

2. Add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly:

{
    "name" : "glpsol",
    "executable" : "/usr/bin/glpsol",
    "mount-readable" : [
        "/lib64",
        "/lib/x86_64-linux-gnu",
        "/usr/bin/glpsol"
    ],
    "environment-variables" : [
        "PATH=/usr/bin"
    ],
    "auto-mount" : "disabled"
}

MiniZinc

1. Installation (skip if it is already installed):

  • Step 1: Install the CBC solver.
    > sudo apt-get install coinor-cbc coinor-libcbc-dev
  • Step 2: Download and extract MiniZinc wherever you want:
    > cd /home/joe/my-programs
    > tar xf MiniZincIDE-2.6.3-bundle-linux-x86_64.tgz
    

2. Add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly:

{
    "name" : "minizinc",
    "executable" : "/home/joe/my-programs/MiniZincIDE-2.6.3-bundle-linux-x86_64/bin/minizinc",
    "mount-readable" : [
        "/lib64",
        "/lib/x86_64-linux-gnu",
        "/home/joe/my-programs/MiniZincIDE-2.6.3-bundle-linux-x86_64"
    ],
    "environment-variables" : [
        "PATH=/home/joe/my-programs/MiniZincIDE-2.6.3-bundle-linux-x86_64/bin",
        "LD_LIBRARY_PATH=/home/joe/my-programs/MiniZincIDE-2.6.3-bundle-linux-x86_64/lib",
        "MZN_STDLIB_DIR=/home/joe/my-programs/MiniZincIDE-2.6.3-bundle-linux-x86_64/share/minizinc"
    ],
    "auto-mount" : "disabled"
}

Python3

1. Installation: rather than using the Python installation that comes with your operating system, we highly recommend that you explicitly install and configure the specific Python version that you want your Opt-Server to support.

  • Step 1: Install the Python version you want, e.g. python3.9.
    > sudo add-apt-repository ppa:deadsnakes/ppa  # <-- not always needed
    > sudo apt-get install python3.9
    > sudo apt-get install python3.9-distutils
    
  • Step 2: Manually install pip by running the get-pip.py script with the Python version that you have just installed.
    > wget https://bootstrap.pypa.io/get-pip.py
    > python3.9 get-pip.py
    > python3.9 -m pip install --upgrade setuptools
    

2. Add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly:

{
    "name" : "python3",
    "executable" : "/usr/bin/python3.9",
    "mount-readable" : [
        "/lib64",
        "/lib/x86_64-linux-gnu",
        "/usr/lib/python3.9",
        "/usr/bin/python3.9",
        "/usr/bin/python3.9:/usr/bin/python3",
        "/home/joe/.local/bin",
        "/home/joe/.local/lib/python3.9/site-packages"
    ],
    "environment-variables" : [
        "PATH=/usr/bin",
        "PYTHONPATH=/usr/lib/python3.9",
        "PYTHONPATH=/home/joe/.local/lib/python3.9/site-packages",
        "PYTHONPATH=/home/joe/.local/bin"
    ],
    "file-extensions" : [ "py" ],
    "auto-mount" : "disabled"
}

3. If you want to be able to install packages directly from PIFOP using pip3, add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly.

Notice that we've set the "admin-only" property to true, so that only you and other admins of the Opt-Server can install Python packages.
{
    "name" : "pip3",
    "executable" : "/usr/bin/python3.9",
    "prepend-options" : "-m pip",
    "auto-mount" : "disabled",
    "enable-network" : true,
    "inherit-user-id" : true,
    "admin-only" : true,
    "mount-readable" : [
        "/lib64",
        "/lib",
        "/usr/lib",
        "/etc/resolv.conf",
        "/usr/bin/python3.9"
    ],
    "mount-writable" : [
        "/home/joe/.cache/pip",
        "/home/joe/.local/bin",
        "/home/joe/.local/share",
        "/home/joe/.local/lib/python3.9/site-packages",
        "/dev/null"
    ],
    "environment-variables" : [
        "PATH=/usr/bin",
        "PATH=/home/joe/.local/bin",
        "PYTHONPATH=/usr/lib/python3.9",
        "PYTHONPATH=/home/joe/.local/lib/python3.9/site-packages",
        "PYTHONPATH=/home/joe/.local/bin"
    ]
}

SCIP

1. Installation (skip if it is already installed):

  • Step 1: Install the dependencies.
    > sudo apt-get install unzip libtbb-dev liblapack-dev
  • Step 2: Download and extract our build of the open source Ipopt solver.
    > cd /home/joe/my-programs
    > wget https://pifop.com/download/dev/Ipopt-build-3.14.6.zip
    > unzip Ipopt-build-3.14.6.zip
  • Step 3: Download and extract our build of SCIP.
    > wget https://pifop.com/download/dev/scipoptsuit-build-8.0.0.zip
    > unzip scipoptsuit-build-8.0.0.zip
    

2. Add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly:

{
    "name" : "scip",
    "executable" : "/home/joe/my-programs/scipoptsuit-build-8.0.0/bin/scip",
    "mount-readable" : [
        "/lib64",
        "/lib/x86_64-linux-gnu",
        "/usr/lib/x86_64-linux-gnu",
        "/etc/alternatives",
        "/home/joe/my-programs/scipoptsuit-build-8.0.0",
        "/home/joe/my-programs/Ipopt-build-3.14.6"
    ],
    "environment-variables" : [
        "PATH=/home/joe/my-programs/scipoptsuit-build-8.0.0/bin",
        "LD_LIBRARY_PATH=/home/joe/my-programs/Ipopt-build-3.14.6/lib"
    ],
    "auto-mount" : "disabled"
}

Xpress

1. Installation (skip if it is already installed):

  • Step 1: Purchase Xpress or download one of its demo versions.
  • Step 2: Extract the installer and run it.
    > tar -xf xp8.14.0_linux_x86_64_setup.tar
    > cd xp8.14.0_linux_x86_64_setup
    > ./install.sh
    
  • Step 3: Follow the installer instructions and select the destination folder.
    Where do you want to install the Xpress-MP? /home/joe/my-programs/xpressmp

2. Add the following to your Opt-Server's config.json, inside the "commands" array, modifying the file paths accordingly:

{
    "name" : "mosel",
    "executable" : "/home/joe/my-programs/xpressmp/bin/mosel",
    "mount-readable" : [
        "/lib64",
        "/lib/x86_64-linux-gnu",
        "/home/joe/my-programs/xpressmp"
    ],
    "environment-variables" : [
        "PATH=/home/joe/my-programs/xpressmp/bin",
        "CPATH=/home/joe/my-programs/xpressmp/include",
        "LD_LIBRARY_PATH=/home/joe/my-programs/xpressmp/lib",
        "XPAUTH_PATH=/home/joe/my-programs/xpressmp/bin/xpauth.xpr"
    ],
    "auto-mount" : "disabled"
}
Terms and Privacy Help Pricing About Blog Contact us Server Status Twitter LinkedIn