Please remember that to access the VDI dashboard you will need to be logged to the FASRC VPN and have cluster access, which you can request via the FASRC Portal. The Interactive Apps currently supported on the OpenOnDemand VDI ( https://vdi.rc.fas.harvard.edu ) include:
- Remote Desktop: This app allows the user to schedule a Remote Desktop job and opens a browser based viewer to connect to it
- Jupyter notebook: The app schedules a notebook session on one of the compute nodes and opens a connection to it in a new tab.
- RStudio Server: The app schedules a rstudio server session on one of the compute nodes and opens a connection to it in a new tab.
- Matlab: The app schedules a rstudio server session on one of the compute nodes and opens a connection to it in a new tab. You can run single-node codes in parallel using the parallel pool. See our Github User_Codes page for an Matlab parallel example on VDI.
- Other: Additionally, we offer Tensorboard and other applications as they are requested or become available. You will also likely see customized versions of apps for FAS Informatics, CGA, or others. These are available to you but will likely be customized for specific uses unlike the standard versions listed further down. Please note that the list below may look different depending on your department (example: COMSOL is only available to SEAS).
VDI Remote Desktop
The Remote Desktop app will schedule a job on one of the nodes in the dedicated remote desktop partition, start a vnc server (TurboVNC), and provide a link to connect to in via the browser based app noVNC. No client is needed to connect to it, but if instead of using the web based client you prefer to use a traditional VNC client to connect to your session, please see Using a VNC Client to Connect at the bottom of this page. To launch the session, please select the “Remote Desktop” entry from the “Interactive Apps” menu, and fill in the following form. In the form you will be able to select:
– the memory allocated for the job (Max 16GB)
– number of cores (Max 8)
– allocated time (Max 7days).
In addition, for your convenience, you may chose to create icons on the desktop to launch Matlab and RStudio, selecting the versions you prefer. Once the remote desktop starts, you can always open a terminal, load the modules you need and start the software from the command line. Selecting the checkbox “Custom Desktop Folder” will create a job specific desktop, which might be useful in case in different jobs you want launcher icons with different versions of Matlab or RStudio.
If you want to be notified by email when the job starts, please select the checkbox and include a valid email address in the form. Once you have completed your sections, press the “Launch” button. Allow a few seconds for the system to process your submission form, and you will be redirected to the “My Interactive Sessions” page.
You will be able to click on “Launch noVNC in new Tab” to open the connection to the Remote Desktop directly in your browser. The Remote Desktop runs the lightweight “Xfce” desktop.
Here some notes related to performance and usability within remote desktop type session:
Note: When running a Remote Desktop or app that uses the desktop (ex. Matlab), the noVNC client does not support sharing clipboard and direct “Copy and paste” between your computer and the remote session in noVNC. noVNC provides a “staging clipboard” that you can use to copy to and from the remote session. Copy things to that clipboard first, and then you can copy to your remote session.
Note: The default resolution of the remote session is 1024×768 and by default the resolution will not adjust to client display size. That is to avoid to resize the remote server to very large resolution in case you are connected to a large screen external display, and avoid performance degradation. If you chose to, you can rescale the remote clicking on the setting “wheel” and select “scaling mode = remote resizing”
Note: The noVNC web client is very convenient as it does not require you to install a client to connect, but it does not support all features in terms of compression and performance optimization that TurboVNC client or another client would. If instead of using the web based client you prefer to use a traditional VNC client to connect to your session, please see later in this doc.
Note: If you close the noVNC tab or the connection times out due to long inactivity, you will be always able to reconnect to your session clicking again on the “Launch noVNC in new Tab” in the “My Interactive Sessions” page . Your job is controlled by Slurm and will keep running until the allocated time, or until you cancel the job.
Note: If you want to terminate your job and your Remote Desktop session, you can simply click the “Delete” button on the “My Interactive Sessions” tab in the section corresponding to that particular job.
Internal Web Browser Version
Those who have launched Firefox on the Remote Desktop will notice that it is a very old version. This is due to the OS we run on the cluster being intended for HPC use not for Desktop use, and thus not including the latest, greatest libraries and software but instead choosing stable, well proven software. This model unfortunately does not work well for web browsers which need constant updating to fix security issues and to keep up with the latest features. This has led browsers to have users install them directly rather than via the normal packaging system which Linux uses. Also most browsers assume that users have full control over the system that they are installing them on, it was never conceived that some one would want to open a browser in a browser on a HPC cluster.
While the above reasons mean that we cannot easily provide a modern browser on the cluster, there is a way to get one if you need to open a browser on the Remote Desktop. Firefox provides a tarball with a fully functional browser that you can download here. Simply select the Linux 64-bit release. Once you download the tarball you can unzip it using
tar -jxvf packagename, after that run the firefox executable it unpacks. That should then give you a modern browser you can use on the remote desktop.
This App allows you to submit a job which starts a Jupyter notebook on a compute node and provides a link to connect to it on a new browser tab. To launch the notebook, please select the “Jupyter notebook” entry from the “Interactive Apps” menu, and fill the form. In the form you will be able to select :
– memory allocated for the job (Max 120GB)
– number of cores (Max 32)
– number of GPUs. Use this only if selecting a GPU enabled partition.
– allocated time (Max allowed depends on partition).
If you want to be notified by email when the job starts, please select the checkbox and include a valid email address in the form. The field “Slurm Account” can be use to specify which lab account you want to charge in terms of FairShare for this particular job. If you only are affiliated to one lab you please ignore that entry, as it will default to your primary group.
When you made your selection press the “Launch” button. Allow a few seconds for system to process your submission form, and you will be redirected to the “My Interactive Sessions” page.
You will be able to use the “Connect to Jupyter” button to open the notebook in a new tab on your browser.
How do I access the python and R kernels installed in my conda environments?
Jupyter will autodetect your available conda environments. When you access the notebook, in the dropdown menu “New” under the “Files” tab, you should already see all the conda environments that you have in your home folder which have the ipykernel module installed (‘pip install ipykernel’ after activating the conda environment). For example in this use case it detects that the user has access, in addition to the central Python 3 environment, to two other conda environment, named python2.7 and tf1.10_cuda9
To enable a conda environment in Jupyter install the ipykernel package into the environment by doing:
conda install ipykernel
After that is installed you should see the environment in new Jupyter sessions.
How do I access a conda environment located in a lab shared folder from Jupyter notebook VDI app?
Warning: When sharing conda environment, we highly recommend that only one person install/uninstall/update packages because the environment may break if multiple users change the conda environment.
When a conda environment is created, its path is added to the the file
~/.conda/environments.txt. People that would like to use a conda environment created by someone else need to add the conda environment path to
jharvard creates an environment in a shared lab space and installs
# request interactive node [jharvard@boslogin01 conda_envs]$ salloc -p test --time=1:00:00 --mem=4000 # load modules [jharvard@holy7c24604 conda_envs]$ module load Anaconda3/2020.11 # create shared conda environment [jharvard@holy7c24604 conda_envs]$ conda create --prefix /n/holylabs/LABS/jharvard_lab/Lab/conda_envs/my_shared_env python=3.10 # launch conda environment and install ipykernel [jharvard@holy7c24604 conda_envs]$ source activate /n/holylabs/LABS/jharvard_lab/Lab/conda_envs/my_shared_env (/n/holylabs/LABS/jharvard_lab/Lab/conda_envs/my_shared_env) [jharvard@holy7c24604 conda_envs]$ conda install ipykernel # environment path is automatically added to ~/.conda/environments.txt (/n/holylabs/LABS/jharvard_lab/Lab/conda_envs/my_shared_env) [jharvard@holy7c24604 conda_envs]$ cat ~/.conda/environments.txt /n/holylabs/LABS/jharvard_lab/Lab/conda_envs/my_shared_env
user1 has to add the same environment path to their
[user1@boslogin01 ~]$ echo "/n/holylabs/LABS/jharvard_lab/Lab/conda_envs/my_shared_env" >> ~/.conda/environments.txt [user1@boslogin01 ~]$ cat ~/.conda/environments.txt /n/holylabs/LABS/jharvard_lab/Lab/conda_envs/my_shared_env
user1 will be able to select
my_shared_env in Jupyter notebook VDI app as explained above.
Can I control my conda environment from the Jupyter notebook page?
An extension of Jupyter (nb_conda) allows you to manage your conda environment from the notebook. Navigate to the tab “conda” and you will see the list of your environment. You can click on the environment you want to inspect or modify, and easily install or remove packages. For example, remember that to see your conda environments in your “new” drop down menu in the file tab, the environments need to have the ipykernel package installed. If you don’t have it installed, you can do it from this interface. In this example I am installing “pandas” in the environment named “python2.7”
How do I load additional modules that my kernels need?
If you need to load modules before starting your kernel – for example if you need to load cuda and cudnn before starting a kernel with tensorflow – you can do that directly from the notebook. First navigate to the tab “Modules” and start entering the name of the module you need to load. The list of the available modules that match what you are typing will popup. Select the module you need (in this example we are loading cuda 9.0)
Press “enter” and allow a few seconds for the load operation to complete (similarly to what happens in the interactive sessions loading modules can take a moment). Upon successful loading, the module will appear in the list of loaded modules. If you need to unload that you can click on the “Unload” yellow button.
Repeat for all desired modules, and after you are all set, you can go back to the “File” tab and start your desired kernel.
Note: When you are done running your computation you can delete the job using the “Delete” button in the section for that particular job in the “My Interactive Sessions” page.
Jupyter notebook VDI session is terminated right after it starts
This problem is common when there is a
conda initialize section in your
.bashrc file located in your home directory (more about
.bashrc). The conda initialize section was added when, at some point, you used the command
conda init. We strongly discourage the use of
conda init. Instead use
source activate environment_name, for more details, refer to our Python (Anaconda) page.
To solve this problem, delete or comment out the
conda initialize section of your
.bashrc and create a new Jupyter notebook VDI session.
This App allows you to submit a job which starts a Matlab session on a compute node and provides a link to connect to it on a new browser tab. To launch the notebook, select the “Matlab” entry from the “Interactive Apps” menu, and fill in the following form.
– partition (see partitions page for core, memory, and time limits on public partitions)
– memory allocated for the job
– number of cores
– number of hours
Refer to our Github User_Codes for an example on how to run a parallel code on VDI.
This App allows you to submit a job which starts a Rstudio session on a compute node and provides a link to connect to it on a new browser tab. To launch the notebook, select the “Rstudio Server” entry from the “Interactive Apps” menu, and fill in the following form.
– partition (see partitions page for core, memory, and time limits on public partitions)
– memory allocated for the job
– number of cores
– number of hours
You will also see “Location of your R_LIBS_USER folder”. You can set this to any directory in your home directory, however we recommend setting this to
~/R_LIBS_USER if you do not have have a folder set up for this already. If
~/R_LIBS_USERdoes not exist, it will be created for you as the default location for installing packages, etc.
Advanced Configuration: If you use different versions of R, you should consider creating separate folders to avoid package incompatibility when loading a newer or older verison or R.
You can then select the version of R you want to run in your Rsession in RStudio, chasing from the modules available on the FASRC Cluster (for example R/3.5.1-fasrc01 Core).
You can also specify the location of the folder where your personally installed R packages will be installed. (for example ~/apps/R_3.5.1_Core ). The folder will be created if it does not already exist. Please refer to this page for more information about R and package management.
If you want to be notified by email when the job starts select the checkbox and include a valid email address in the form. The “Slurm Account” can be use to specify which lab account you want to charge in terms of FairShare for this particular job. If you only are affiliated to one lab you can ignore that entry as it will default to your primary group.
When you made your selection press the “Launch” button. Allow a few seconds for the system to process your submission form, and you will be redirected to the “My Interactive Sessions” page.
You will be able to use the “Connect to RStudio Server” button to open the RStudio session in a new tab on your browser.
Note: When you are done running your computation you can delete the job using the “Delete” button in the section related to that particular job in the “My Interactive Sessions” page.
Using a VNC Client to Connect
No client is needed to connect to to a session, but if instead of using the web based client you prefer to use a traditional VNC client (we highly recommend TurboVNC) to connect to your session, please click on My Interactive Sessions and the VNC Desktop Client tab for instructions.