Since its first release nearly 40 years ago as the first commercial LP solver running on PCs, the FICO® Xpress Solver has constantly evolved adopting new technologies as they have emerged. The Xpress Solver exploits multicore CPUs in several of its algorithms for parallelization. The Xpress Solver’s parallelism is not only deterministic, but also the solve paths are cross-OS (macOS, Windows, Linux) reproducible. Up until recently, we have been supporting Xpress on x86-64-bit AMD or Intel EM64T CPUs. Increasingly, we are seeing ARM-based CPUs being used for a wide range of workloads, including compute intensive workloads.
Toward that end, we are announcing the general availability of the AArch64port of Xpress Optimizer and Nonlinear supporting ARMv8-A on Linux, specifically targeted for EC2 instances running Amazon Linux2 on AWS Graviton2 chips. The Xpress Optimizer, Nonlinear and Mosel libraries except for the Python API have been available since the Xpress 8.13.2 update. See here for details. With the Xpress 8.13.4 update, the Xpress Python API is now available on the PyPI and Conda repositories.
With the port of Xpress to this new chip architecture, we have been able to still maintain CPU-independent solve paths and reproducibility across platforms. The solve paths of Xpress are generally dependent only on the number of threads, and the number of parallel tasks allowed for MIP search. Identical solve paths on Intel and Graviton2 for the Barrier algorithm can be obtained by using the generic-code-compatible choice setting of the CPUPLATFORM control parameter.
In terms of performance, we found that the single threaded performance of Graviton2 to be comparable to that of the Intel-based servers that we use for our internal benchmarks. On Graviton2, on our MIP benchmarks (containing a diverse set of problems from both industry applications and publicly available instances), we observed that the Optimizer scales quite well with the number of cores - with nearly 30% speedup when going from 20 threads to 64 threads. Overall, we have been impressed with the performance of these chips for running the Xpress Solver.
Whether this new hardware is suitable for your workloads depends on a variety of factors: see a blog here on guidelines on choosing hardware for optimization workloads. We encourage you run benchmarks for your specific use cases. Further improvements to the ARM port for Xpress are targeted for future releases.
Please note that support for Xpress Kalis, the MATLAB® interface to Xpress, the mmsheet and Hadoop Mosel modules are currently unavailable for this platform.
Toward that end, we are announcing the general availability of the AArch64port of Xpress Optimizer and Nonlinear supporting ARMv8-A on Linux, specifically targeted for EC2 instances running Amazon Linux2 on AWS Graviton2 chips. The Xpress Optimizer, Nonlinear and Mosel libraries except for the Python API have been available since the Xpress 8.13.2 update. See here for details. With the Xpress 8.13.4 update, the Xpress Python API is now available on the PyPI and Conda repositories.
With the port of Xpress to this new chip architecture, we have been able to still maintain CPU-independent solve paths and reproducibility across platforms. The solve paths of Xpress are generally dependent only on the number of threads, and the number of parallel tasks allowed for MIP search. Identical solve paths on Intel and Graviton2 for the Barrier algorithm can be obtained by using the generic-code-compatible choice setting of the CPUPLATFORM control parameter.
In terms of performance, we found that the single threaded performance of Graviton2 to be comparable to that of the Intel-based servers that we use for our internal benchmarks. On Graviton2, on our MIP benchmarks (containing a diverse set of problems from both industry applications and publicly available instances), we observed that the Optimizer scales quite well with the number of cores - with nearly 30% speedup when going from 20 threads to 64 threads. Overall, we have been impressed with the performance of these chips for running the Xpress Solver.
Whether this new hardware is suitable for your workloads depends on a variety of factors: see a blog here on guidelines on choosing hardware for optimization workloads. We encourage you run benchmarks for your specific use cases. Further improvements to the ARM port for Xpress are targeted for future releases.
Please note that support for Xpress Kalis, the MATLAB® interface to Xpress, the mmsheet and Hadoop Mosel modules are currently unavailable for this platform.
Updated 4 years ago
Version 3.0FICO
Community Manager
Joined July 21, 2025
FICO® Xpress Optimization Blog
Follow this blog board to get notified when there's new activity