Skip to main content
Version: v0.7.0 beta

Installation

License​

OPTIMake licenses are differentiated by optimization problem type and deployment platform:

Optimization Problem TypeDescription
sSupports LP, QP problem solving
lSupports LP, QP, QCQP, SOCP, NLP, NLSOCP problem solving
Deployment PlatformDescription
hostHost environment (Windows/Linux), solver runs on x86/x86_64 platforms, the runtime platform is the host (code generation platform), solver validity period matches the license period, integrated via binary library
testTest environment, solver runs on multiple platforms including x86/x86_64/ARMv8/ARMv7, solver validity period matches the license period, integrated via binary library
productionProduction environment, solver runs on multiple platforms including x86/x86_64/ARMv8/ARMv7, solver has no expiration restriction, integrated via binary library
production+Production environment+, solver runs on multiple platforms including x86/x86_64/ARMv8/ARMv7, integrated via source code

Example: If the problem type is NLP and testing is needed in an ARM environment, the corresponding license is l-test.

warning

When the license type is host or test, the solver binary library has an expiration restriction. The solver will become unusable after the expiration date. Please confirm that the license type and validity period meet your requirements when obtaining a license.

Client Installation​

The OPTIMake client supports standard CPython 3.10–3.14 on Windows x86_64 and Linux glibc x86_64. ARM64, 32-bit Python, PyPy, and free-threaded builds are not supported. Prepare the target Python/Conda environment first and make sure pip is installed in that environment.

The installation of the OPTIMake client consists of the following steps:

  1. Run the Python script user_info.py (click to download) on the environment (computer and operating system) where the solver will be used to obtain user information (computer name, MAC address, machine ID, etc.), which is used to bind the license. The script depends on the netifaces library, which can be installed with the following command:

    python -m pip install netifaces-plus
  2. Contact OPTIMake (optimake@rtopt.com) to obtain a license. You need to provide the user information from step 1.

  3. Download the client ZIP package via the download link (click to go). On the download page, you need to enter the MAC address, machine ID, or UUID.

  4. Extract the complete ZIP package, activate the Python/Conda environment you want to use, open a terminal in the extracted directory, and run:

    python install.py

    The basic mode is used by default, which installs OPTIMake and its required dependencies. To use lookup tables, CasADi, or plotting, use the full mode, which additionally installs SciPy, CasADi, and Matplotlib:

    python install.py --mode full

    The installation script automatically selects the wheel that matches the current Python version and operating system, and installs it into the environment of the Python interpreter running the script.

    To update or overwrite a client of the same version, simply rerun the installation script. After installing in basic mode, you can also run the full mode to add the extra dependencies.

After installation, the script checks local imports, the client version, and the runtime, and prints the commands to run the getting-started example. The example code is located in examples/; refer to the readme.md of each example for the steps to run and build it. CMake and a C/C++ compiler, which are required to build the examples, must be installed separately.

In your custom model file, import the OPTIMake library to start using it. If the license is obtained via UUID, set option.license_uuid before code generation:

my_model.py
from optimake import *

prob = multi_stage_problem('my_model', 10)
...

option = codegen_option()
# When the license is obtained via UUID, set license_uuid through the option before code generation
option.license_uuid = ...
...