You can develop your code pretty much anywhere, but keep in mind that different CPUs will have different cache characteristics so be sure to do some measurements on the AWS instance required by the PA. It’s easy to move your code if you use the git repository to transfer your files (add/commit/ push and pull). Make sure that when measuring performance, that your EC2 instance is set to unlimited so it is not throttled.
There are multiple ways to develop (edit, compile, run) code on AWS and you are free to use whatever method is most convenient to you. Note: Remember to stop the instance when you are not using it. Below are a couple of options:
Option 1 (Terminal+Vim): [or Emacs for old folks like the professor]
Once you have started the instance and copied the "Example" ssh line, paste it onto the terminal. Make sure you are connected to UCSD's VPN (or UCSD's wifi) and the key is not publicly viewable (as instructed when you attempt to connect the instance). You might need to use the username "ubuntu" (ubuntu@ec2...). Once you have entered the ssh command you can use vim (there are many online tutorials if you haven't used vim before).
Option 2(Visual Studio Code + Remote Development):
See the following link for detailed instructions: https://code.visualstudio.com/docs/remote/ssh.
Step1: Install Visual Studio Code (https://code.visualstudio.com/)
Step2: Install Remote Development Extension Pack (Extension Installation Instructions: https://code.visualstudio.com/docs/editor/extension-gallery)
Step3: Add to SSH Targets (see below) from the remote explorer (bottom on left panel). You will need to use the "Example" ssh line after starting the instance. You might need to use the entire file path of the .pem as below. Note: you might need to do this every time you start an instance since the host name might change.
Step4: A new SSH target should show up. Connect to Host.
Option 1 (Terminal+Vim):
Once you have started the instance and copied the "Example" ssh line, paste it onto the terminal. Make sure you are connected to UCSD's VPN (or UCSD's wifi) and the key is not publicly viewable (as instructed when you attempt to connect the instance). You might need to use the username "ubuntu" (ubuntu@ec2...). Once you have entered the ssh command you can use vim (there are many online tutorials if you haven't used vim before).
You can also use other ssh clients like Xshell and PuTTY, where you can save your configurations and do not have to type the ssh command every time.
Option 2(Visual Studio Code + Remote Development):
See the following link for detailed instructions: https://code.visualstudio.com/docs/remote/ssh.
Step1: Install Visual Studio Code (https://code.visualstudio.com/)
Step2: Install Remote Development Extension Pack (Extension Installation Instructions: https://code.visualstudio.com/docs/editor/extension-gallery)
Step3: Similar with MAC , add to SSH Targets from the remote explorer (bottom on left panel). You will need to use the "Example" ssh line after starting the instance, as shown in the first figure above. You might need to use the entire file path of the .pem as below, e.g. "C:\Users\lin\.ssh\cse260fa20-j5lin.pem". Note: you might need to do this every time you start an instance since the host name might change.
Alternatively, you can use a config file to set up the host, as shown in the figure below. To do so, you need to write Host, HostName, IdentifyFile, and User in a config file, and then click the Configure button on the right of "SSH TARGETS" and select the config file.
Option 3 (mobaXterm)
Mobaxterm - https://mobaxterm.mobatek.net/ - is a free terminal / xemulator. You can have multiple windows and this tool also allows you to run graphical programs.