GAMS MIRO Server

Note:

Both GAMS MIRO Desktop - boosted by GAMS MIRO Engine and GAMS MIRO Server are currently under development. This part of the documentation is updated regularly.

Introduction

In the most basic setup - GAMS MIRO Desktop - both the MIRO application and GAMS itself are installed on the same computer and run exclusively on this machine. But MIRO is not limited to this setup: You can run your MIRO applications locally, but solve the GAMS jobs in the cloud. For you nothing changes, the MIRO interface remains the same. We call this setup GAMS MIRO Desktop - boosted by GAMS MIRO Engine. GAMS MIRO Engine is a product based on Docker, which uses state-of-the-art technology to handle the entire job management, scheduling and load balancing of your computationally intensive optimization problems. The same technology is also used for the last MIRO setup: GAMS MIRO Server. GAMS MIRO Server allows you to run both the GAMS execution engine as well as the MIRO application itself in the cloud. Your optimization applications can then be accessed from any device with a modern web browser like a PC, smartphone or tablet.

GAMS MIRO Server
Note:

Both GAMS MIRO Desktop - boosted by GAMS MIRO Engine and GAMS MIRO Server are not part of GAMS MIRO Desktop, but must be purchased separately. Please contact sales@gams.com if you are interested in one of these setups.

Installation and usage

Both GAMS MIRO Server and GAMS MIRO Desktop - boosted by GAMS MIRO Engine - the latter already carries the name - make use of the GAMS MIRO Engine to run GAMS jobs on one or more servers. The following section explains how to set up GAMS MIRO Server.

Note:

The following installation instructions refer exclusively to the installation of GAMS MIRO Server. The corresponding installation steps have to be performed on the server used for this purpose.

Prerequisites

Since GAMS MIRO Server is based on Docker technology, both Docker and docker-compose must be installed on the server first.

To use the Docker CLI without sudo, you must add your user to the docker group.

Install GAMS MIRO Server

If you have purchased GAMS MIRO Server, GAMS will provide you with a ZIP file that contains everything you need to get started.

  • Once the prerequisites are set up, copy the ZIP file to your server in a directory of your choice and unzip it there.
    Tip:

    GAMS MIRO applications will later be stored at this location.

  • Next, login to the GAMS Docker registry. To do so, run
    > docker login hub.gams.com
    with the credentials GAMS provided you with.
  • Make sure that you have a valid GAMS license file (gamslice.txt) inside the directory where you unzipped your files.
  • Afterwards, you are ready to install MIRO Server by running:
    > ./miro-compose install.
    During installation you will be asked for a GAMS MIRO Server key (if this was not already set up for you when you by GAMS). The installation script will inform you whether the installation was successful or not.

Start

Once you have GAMS MIRO Server installed, you can launch it via

> ./miro-compose start.
GAMS MIRO Server will now listen on port 8080. After the installation, there is a single administrator with username: admin and password admin.

Update

To update GAMS MIRO Server to the latest version, run

> ./miro-compose update
Note that this will pull new images from the GAMS Docker registry and launch them. If you only want to pull new images, run
> ./miro-compose pull

Stop

To stop a running instance of GAMS MIRO Server, run

> ./miro-compose stop

Uninstall

To remove GAMS MIRO Server including all data associated with it from your server, run

> ./miro-compose uninstall
Additionally, you can remove the directory where you extracted the configuration files of the GAMS MIRO Server.

Customize

The entire customization in GAMS MIRO Server is done in the file data/application.yml. Here you can add/remove users, change the authentication method or the language of GAMS MIRO.

Note:

Please make sure each user is assigned to at least one group. MIRO does not support assigning users to no group at all!

Nginx example configuration

We suggest to run GAMS MIRO Server behind a reverse proxy such as nginx. The following configuration will allow you to access GAMS MIRO Server on the root of your server:

location / {
    proxy_pass http://127.0.0.1:8080;

    client_max_body_size 200M;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 600s;

    proxy_redirect    off;
    proxy_set_header  Host             $http_host;
    proxy_set_header  X-Real-IP        $remote_addr;
    proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header  X-Forwarded-Proto $scheme;
}

You may want to host MIRO Server on a different path. To do this, you must adjust the context path in the file application.yml accordingly (server.servlet.context-path).

Note:

Note that with SELinux active (e.g. CentOS/RHEL), you have to allow your nginx server to proxy to the upstream MIRO Server host. You can do so by running:

> setsebool -P httpd_can_network_connect 1

GAMS MIRO Desktop - Boosted by GAMS MIRO Engine

With GAMS MIRO Desktop - Boosted by GAMS MIRO Engine, you can solve GAMS jobs in the cloud with your locally running MIRO applications. In order to use switch from executing your optimization jobs on your local machine to solving them in the cloud you only have to activate the checkbox "Execution of models on GAMS MIRO Engine" in the preferences of GAMS MIRO.

Enable remote execution

The next time you start a MIRO application a login button appears in the upper right corner. Click on it in order to connect to the server.

Tip:

You can use GAMS MIRO Engine for both MIRO applications that are still under development (started via GAMS Studio) and for already deployed apps.

Login
Login

In the login form, there are two additional checkboxes:

Is your model registered in the namespace?
If a GAMS job is to be solved in the cloud, the GAMS model must be available on the corresponding server for the namespace you chose. There are two possibilities:

  • The model is sent to the server for each job submission together with the scenario data and deleted after the job is solved.
  • The model is registered on the server, i.e. the model data is stored permanently. Only the scenario data is communicated with the server during a job submission. Learn here how to register a model.

Remember me
Your credentials will be saved so that you will not have to log in again the next time you start the application.

GAMS MIRO Server

Coming soon...