Installation
License
OPTIMake licenses are differentiated by optimization problem type and deployment platform:
| Optimization Problem Type | Description |
|---|---|
s | Supports LP, QP problem solving |
l | Supports LP, QP, QCQP, SOCP, NLP, NLSOCP problem solving |
| Deployment Platform | Description |
|---|---|
host | Host 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 |
test | Test environment, solver runs on multiple platforms including x86/x86_64/ARMv8/ARMv7, solver validity period matches the license period, integrated via binary library |
production | Production 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.
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:
-
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 -
Contact OPTIMake (optimake@rtopt.com) to obtain a license. You need to provide the user information from step 1.
-
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.
-
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.pyThe
basicmode is used by default, which installs OPTIMake and its required dependencies. To use lookup tables, CasADi, or plotting, use thefullmode, which additionally installs SciPy, CasADi, and Matplotlib:python install.py --mode fullThe 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
basicmode, you can also run thefullmode 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:
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 = ...
...