Monday, September 11, 2023

Remote optimization with OptServer(Light)

Together with the recently released MOSEK 10.1 we introduced OptServerLight - a light version of a remote optimization server. Let us take this opportunity to write a few words about remote optimization in MOSEK and introduce the two variants of the OptServer.

In a typical scenario the user sets up an optimization problem in MOSEK (through an API, or by reading a file), solves it, and retrieves the solution. All steps are executed in one process, on the same machine. Under remote optimization the user still sets up the problem locally (in the client), but the optimization itself (the call to MSK_optimize(), optimize(), solve() or similar) is being executed on a remote machine (server), before the user can again retrieve the solution in the local process on the client. In practice the client submits the problem data to the server via HTTP/HTTPS, the server calls its own instance of MOSEK to solve the problem, and transmits the solution back to the client in response.

From the client's point of view the process is completely transparent. All it takes is to instruct MOSEK to contact the remote server instead of optimizing locally. Everything else - setting up the problem, retrieving the solution, printing log output - remain unchanged. Here is an illustration in Python Fusion:


The client code is the same for local and remote optimization, except for the one line which introduces the address of the remote OptServer. This code will, in fact, work, because the URL points to an existing OptServer which we made available online and which can solve small problems for demonstration purposes. See https://solve.mosek.com for more information and downloadable code samples.

Why/when use the remote OptServer?
  • One centralized computational server where all heavy computations are offloaded by clients.
  • The problems are too big/time consuming for weak client machines.
  • No need for the clients to have the MOSEK license, only the server requires a license.
  • Solving problems produced by a different source than a MOSEK client.
  • Load and user access control.
We provide two flavors of the OptServer:
  • OptServerLight - a minimalistic binary. Shipped in the distribution, started directly from command line with minimal or no configuration, works out-of-the-box, available for all platforms. Keeps no state, works in-memory, suitable as a simple solver service in container pipelines. Very basic load balancing and configuration are available. Recommended as a starting point and probably sufficient for a majority of applications. See the brief startup notes.
  • The full OptServer. In addition to the solver service provides a user API, job history, authentication, API tokens, various levels of permissions, administrator/user accounts, statistics, web interface and more. Requires a more elaborate setup, including configuring a database. See the demo docker image for a stand-alone container and installation instructions.

Monday, August 14, 2023

All Rustaceans can now enjoy Mosek from a fully supported official API

Rust is a fairly new programming language that is gaining momentum due to its performance and memory safety.
Hence it is time to make a Rust interface available to MOSEK.
Therefore, the recently released MOSEK version 10.1 includes the Optimizer API for Rust that provides
low-level access to all functionalities of MOSEK. It is essentially a thin interface to the native C optimizer API that has almost zero overhead.

Have a look at our API guide for code snippets and instructions of how you best solve your optimization problems with Rust and MOSEK

To get started download the MOSEK crate


Monday, June 19, 2023

New Portfolio Optimization Cookbook chapters and notebooks

We are happy to share that our Portfolio Optimization Cookbook has been updated and new chapters has been added. We have also added new notebooks with code examples.
The additions cover among other things:
  • CVaR
  • EVaR
  • Gaussian mixture return model
  • Risk budgeting
  • Robust optimization
  • Multiperiod optimization
As usual the new concepts are implemented in Mosek Fusion for Python
Enjoy! 

Tuesday, June 6, 2023

MOSEK 10.1 - more platforms and OptServerLight

We are delighted to announce MOSEK 10.1 (Beta). It is a direct continuation of version 10.0 which adds support for:
  • Python 3.11
  • OptServerLight - a lightweight remote optimization server.
  • Rust and Julia Optimizer APIs as official APIs.
  • Native M1 Mosek Optimization Toolbox for Matlab.
You can read more and find all the information, documentation and downloads on the latest release page.

Monday, April 24, 2023

SIAM Conference on Optimization (OP23)

MOSEK is proud to be one of the sponsors of the SIAM Conference on Optimization (OP23). SIAM OP23 will be held on May 31 - June 3, 2023, at the Sheraton Grand Seattle | Seattle, Washington, U.S.

More details and registration at https://www.siam.org/conferences/cm/conference/op23

Wednesday, March 29, 2023

Mosek and AMPL

We are pleased to announce that AMPL Inc has become a reseller of MOSEK.

Moreover, a new AMPL to MOSEK interface was made available in the AMPL/MP open-source library of solver interfaces.

Details can be found on the MOSEK for AMPL page.

Easter 2023

Due to Easter support and sales will be closed from Thursday, April 6th, until Monday, April 10th, both days inclusive.


The MOSEK team wishes everyone a peaceful Easter.