2. Setting up your development environment
With your VPN activated, lets get set up to access a development environment.
Now that you have your VPN correctly installed, configured, and enabled, we'll get you set up with a login to the ISC associated with your User and Organisation.
Please note (particularly Windows users): where in the following guide we have provided an example path such as ~/.ssh/id_rsa
or /<path>/<to>/.ssh/<key-pair>
which will resemble the Linux/MacOS path format. Please use the path format that is suitable for your OS. For example, Windows path format typically will resemble C:\<path>\<to>\.ssh\id_rsa
or C:\<path>\<to>\<key-pair>
.
2.1.a If you are the first person in your Organisation to register
Visit the Organisations page in Control Plane https://cp.strongcompute.ai/organisations. You will see only one organisation listed. When you first register your Organisation will be named "<your email>'s Personal Organisation".
Click the "Manage" button for your Organisation to access the "Organisation Settings" page.
From the "Organisation Settings" page you can update the name of your Organisation, view current members, and create invitations for other members to join.
Note that Control Plane does not send emails to invitees. If you invite a member to join your Organisation, you will need to notify them that they have been invited to your Organisation and which email address their invitation is registered with.
2.1.b If you are responding to an invitation to join an Organisation on Control Plane
Visit the Organisations page in Control Plane https://cp.strongcompute.ai/organisations. You will see only one organisation listed. When you first register your Organisation will be named "<your email>'s Personal Organisation".
You will also see your invitation to join an Organisation with options to Accept or Reject.
2.2 Upload your SSH public key
Visit the "Workstations" page on Control Plane (https://cp.strongcompute.ai).
At the bottom of the page under SSH Public Keys click on "Add SSH Key".
You will need a cryptographic public/private key pair which you can generate as follows.
Open a terminal and run
ssh-keygen
.When prompted, provide a path at which to save the key or accept the default (
~/.ssh/id_rsa
). You can also optionally enter a passphrase (or just press enter twice).This will generate two files containing your public and private keys. Your public key will be saved in the file ending in
.pub
.
Open the file containing your public key. If you generated your key pair with the instruction above, the public key file should have a file extension of
.pub
.Copy the entire contents of your public key file and paste into the input field on Control Plane beneath "Public key contents".
Click "Submit New SSH Public Key".
2.3 Generate and start your development container
Visit the "Workstations" page on Control Plane (https://cp.strongcompute.ai).
Under "Containers" locate the container for the Organisation that you want to develop in.
From the "Constellation Cluster" menu select the cluster you want to generate your development container on. For most new users, this will be "Strong Compute Cluster".
Click "Generate". Strong Compute User environments are accessed via Docker containers. This step generates you a new base image from which to start your development container.
Once your container has been generated you will see options for starting your development container, including the type of Workstation you would like to develop on and the Dataset (if any) you want to have mounted to your development container.
You can select either a "Shared" or "Isolated" Workstation.
Shared Workstations do not have a mounted GPU and Users' development containers share system resources such as CPU cores and memory (User data is not shared). Shared Workstations are suitable for light-weight development work such as writing code.
Isolated Workstations have one to six mounted GPU(s) and; User containers have dedicated and isolated system resources such as CPU cores and memory.
There is a limited number of Isolated Workstations which are available on a first-come-first-serve basis. If no Isolated Workstations are available when you try to start a container on an Isolated Workstation, an error will appear and your development container will not be started.
See the Datasets page of this guide for more information about Datasets.
After selecting your desired options click "Start" to start your container.
Once your container has started an SSH command will be displayed which will include a specified port number and the login root@ip-address which you can use to access your User environment inside your development container.
You may need to extend this ssh command to specify the private key to use as shown below. If you submitted to Control Plane your public key saved at
~/.ssh/id_rsa.pub
then you should be able to ignore this requirement.Note that your container must be started in order for you to connect to it via SSH.
Also note that your development container may be issued a new port number when it is stopped and started. If you are prompted for a password when attempting to access your development container via SSH, ensure you are using the correct port.
Open a terminal and run the ssh command above (with path to your private key if necessary). You will be greeted with a welcome message and your terminal will now show
root@<id>:~#
.Run
isc ping
and you will receive the following response to indicate that you are properly authenticated with the ISC.
Note: Your environment is running in a Docker container. Your home directory is read/write mounted at /root
. A shared directory accessible to all members of your Organisation is read/write mounted at /shared
. You can install any software you require in your container which will be committed and pushed to our Strong Compute docker registry when you "Stop" your container and when you launch an experiment.
Users should save all project files (including virtual environments) to /root
in order to minimise the size of your container. This will mean your container starts as fast as possible and your experiments launch on the ISC as fast as possible.
2.4 Accessing your development container in VSCode
It is strongly recommended to access your development environment using an Integrated Development Environment such as VSCode which supports SSH connection, particularly for less experienced users.
Download and install VSCode https://code.visualstudio.com/download.
Open VSCode.
Click on the Extensions tab on the left-hand side of the VSCode window.
Search for and install the "Remote - SSH" extension.
Click on "Remote Explorer" on the left-side of the VSCode window.
Open the "REMOTES" accordion on the left side panel.
Hover over "SSH" with your cursor and click on the little cog icon.
Press Return to open the file at
/<path>/<to>/.ssh/config
.When the config file opens, copy and paste the following into it, replacing
<port>
with the port number displayed at Step 5 of Section 2.3 above, and/<path>/<to>/.ssh/<key_pair>
with the path to your private key from Step 3 of Section 2.2 above (note, do not include the .pub extension).Save and close the config file.
Note: If you "Stop" and "Start" your container, you may be assigned a new
<PORT>
number and you will need to update your config with that new<PORT>
number.
Hover over the "REMOTES" accordion title with your cursor, and click the refresh icon.
When you see "ISC" appear in the "SSH'' list, hover over "ISC" and click on the right-pointing arrow that appears.
When you are prompted to confirm that you want to continue, press Return.
Click on "Open Folder".
Press Return to open the root directory inside your development container.
When you are prompted to confirm that you trust the authors of this directory, click on "Yes, I trust the authors".
Open the terminal by clicking the tray button in the top-right of the VSCode window.
Run
isc ping
and you will receive the following response to indicate that you are properly authenticated with the ISC.
Congratulations, you are all set to start running experiments on the ISC. Follow the next steps in this guide to configure and launch your first "hello world" experiment, and learn about necessary steps to make sure your experiment is "interruptible" (including what this means).
Last updated