Configure a MATLAB Environment in Domino
This topic describes how to create a Compute Environment if it does not already exist. You might need help from a Domino or MATLAB admin.Prerequisites
Network licensing structure for MATLABYou must have a network license to configure the Compute Environment. Domino recommends a network concurrent license. A network-named license might work if the usernames specified in the license matches the usernames in Domino. If you don’t have a network concurrent license, contact your MATLAB license administrator. You can have a single license server or a set of three license servers. The following are examples of how to provide the license server information:
Method 1
This method requires only the port and host for your license servers. For example,27000@lic1.customer.com (and optionally 27000@lic2.customer.com, 27000@lic3.customer.com). This is recommended for most cases.
Method 2
Use this method if you have anetwork.lic file. For example:
To use GPU capabilities, the hardware tier in Domino must have GPU drivers installed that can support the version of MATLAB that you want to use. Use the following to determine compatibility:
- GPU Support by Release table which describes the minimum CUDA Toolkit version requirement for each version of MATLAB.
- CUDA compatibility which describes the minimum NVIDIA driver version requirement for each version of the CUDA Toolkit.
Environment setup
If a MATLAB-specific Environment does not already exist in your Domino deployment, you must create one. Read about Environment Management if you aren’t already familiar.Choose a base image
When creating a new Environment, choose a base image that has MATLAB installed. The following are the most current options available from Domino.| Version | Repo Link |
|---|---|
| MATLAB 2021a | quay.io/domino/matlab:R2021a |
| MATLAB 2020b | quay.io/domino/matlab:R2020b |
| MATLAB 2020a | quay.io/domino/matlab:R2020a |
| MATLAB 2019b | quay.io/domino/matlab:R2019b |
Edit the Dockerfile
- Add the following lines to your Dockerfile Instructions, editing the license server information to match your actual license servers.
-
Edit the
MATLAB_VERSIONvariable to match the MATLAB version of the base image you chose in the previous step. -
If you have port and host information for your license servers (recommended method):
Or, if you have multiple license files and you have a
network.licfile you can adapt this example:
Add pluggable Workspace tools definition
- Add the “Pluggable Properties” to the Properties for Workspaces. These are documented alongside the base image descriptions here: https://github.com/dominodatalab/Domino_Base_Images/tree/master/MATLAB_Base_Images. The MATLAB base images are built on top of the Domino Standard Environment, so you can add the Workspace configurations such as Jupyter or RStudio for those standard Environments also.
quay.io/domino/matlab:r2019b-20200521 base image, add the following lines for the MATLAB Workspace:
quay.io/domino/base:Ubuntu18_DAD_Py3.6_R3.6_20190916, you can add any of the following sections for Workspaces from that Environment:
(Optional) Persist MATLAB preferences and add-ons between sessions
To persist your MATLAB Preferences and Add-ons between Domino sessions, you can define a Post Run Script to automatically copy them to your Project Files when you Stop and Sync a session, and define a Pre Run Script to copy them from your Project Files into the locations MATLAB will recognize at the start of subsequent sessions. Put the following lines into your Pre Run Script.(Optional) Generate a startup script for proxy settings
If your company uses a proxy to connect to external networks, you might already have lines like the following in many of your Compute Environment Dockerfiles:startup.m file in your Project to ensure the proxy settings are correct at every launch of MATLAB. The file would look something like the following.
Build and test the Environment
Click Build when you have finished editing the above sections. The Revisions page for the Environment opens. If the new revision builds successfully, you are ready to test. Go to the Project Settings for a Project where you want to use MATLAB and change the Compute Environment to use this new Environment. After you do, you will see a MATLAB icon as an option for Workspaces in that Project. See the Troubleshooting section for information about known issues and frequently encountered problems if anything does not work as expected.FAQ and troubleshooting
GPU functionality does not work
The most common problem with GPU functionality is not having the correct NVIDIA driver version for your Environment configured in your Hardware Tier. The following shell command should print some information about the GPU driver versions so you can verify it with the compatibility tables referenced in thePrerequisites section.
MATLAB Workspace fails to launch
License configuration problems
License issues are the most common cause of problems launching a MATLAB Workspace. To debug, start a Jupyter or RStudio Workspace (still using the MATLAB Environment) and open a terminal. Check if your license server information has been correctly entered into thenetwork.lic file, in the correct part of the MATLAB directory structure (i.e. matching your MATLAB version):
lmutil utility to check that the license server is reachable and contains the correct information.
Advanced troubleshooting
The Workspace launch process for MATLAB respects several Environment variables related to logging, which may help you debug more obscure or advanced problems. You can set these as Project-level Environment variables, similar to how you would set Environment variables for secure credential storage, to enable toggling them on or off without having to edit the Compute Environment.-
WS_LOGGING=[MATLAB]|ALL|DEBUG. By default, only the MATLAB logs are shown.-
ALLshows logs for the underlying screen management xterm and xpra. -
DEBUGshows everything fromALL, and activates a flag to show all commands.
-
-
TTY_MODE=[disabled]|PRE|POST. Runs ttyd before or after the Workspace. It’s a terminal that runs in a browser so you can easily inspect things.-
PREwill run ttyd before the Workspace launch. -
POSTwill run ttyd after the Workspace launch fails (if it fails).
-
-
START_LOGGING=[false]|true. Increases logging verbosity in certain stages.
MATLAB Workspace is laggy
In poor network conditions you may notice some lag in typing and general interactions with the MATLAB UI. This is to be expected in certain circumstances. Other common Domino Workspaces like Jupyter or RStudio use browser-based IDEs, while this MATLAB Environment is running a (Linux) desktop version of MATLAB in a remote desktop style interface. This results in more sensitivity to slow network conditions than a browser-based IDE. For these situations, if you encounter them frequently, you may find it useful to install the Domino CLI on your local machine to facilitate editing files locally, then syncing them to Domino.Keyboard shortcuts for copy/paste do not work
MATLAB in Domino runs the Linux version of MATLAB, which uses the “Emacs” set of keyboard shortcuts by default. To enable keyboard shortcutsCtrl+C and Ctrl+V for copy and paste, go to Preferences > Keyboard > Shortcuts and change this from Emacs to Windows. See the MATLAB help for more details.
Connection error when downloading Add-ons or using urlread
If you get network errors when downloading Add-ons or usingurlread to download files, it may be due to proxy settings. See the Proxy section above for options for setting your proxy in MATLAB either within the current session or more globally.
Toolbox is not available
A selection of Toolboxes is pre-installed in each MATLAB base image, but this might not include every Toolbox you have on your local installation. You can see the list of Toolboxes by running thever command within MATLAB, and the list is also documented for each base image. You can contact your Domino account team with any specific requests for Toolboxes to include.
In addition to having the Toolbox installed in the base image, you must have an available license for using it on your license server.