Skip to main content

750 Machines

We provide the tools you will need for the assignments on course machines. Hence, you need to connect via SSH to the course server for the assignments and the project. We will only support the course machines and will not be supporting any other machines.

You have two options:

  1. To connect to a CSIL machine using RDP, and then connect to the course server on the CSIL machine.
  2. Set up VSCode on your machine to connect to the course server directly.

First, Set up MFA (if you don’t have it already). You will need to set up MFA to use the SFU VPN.

To connect to a CSIL machine using RDP, follow the instructions in the link here: RDP to a csil station

If you have any questions about connecting to CSIL please contact the department tech staff helpdesk@cs.sfu.ca.

Campus/CSIL/VPN Machine to server

Follow the instructions below to connect to the course server directly from your machine OR from a CSIL machine. Note that in order to be able to connect to the course server, you need to be on the SFU network or connected to the SFU VPN.

We will be referring the 750 machines as 750-SERVER. [750-SERVER]=199.60.17.236 below.

# Instructions below assume 750-SERVER=199.60.17.236
# Run those instruction on csil rdp, any campus machine, or your machine (connected to SFU VPN)

mkdir -p ~/.ssh
chmod 700 ~/.ssh
wget "https://cmpt-7arch-sfu.github.io/website/cmpt750_rsa" -O ~/.ssh/cmpt750_rsa
chmod 600 ~/.ssh/cmpt750_rsa
ssh -i ~/.ssh/cmpt750_rsa [SFU_ID]@[750-SERVER]

# Now you're connected. The following commands run on the course server
cd ~/.ssh/
ssh-keygen -t rsa # Press enter for all prompts

# Make sure you use ">>" and NOT ">" to append to the file
cat id_rsa.pub >> ~/.ssh/authorized_keys
exit # Exit the course server

# On csil rdp, any campus machine, or VPNed machine
scp -i ~/.ssh/cmpt750_rsa [SFU_ID]@[750-SERVER]:~/.ssh/id_rsa new_rsa
ssh -i new_rsa [SFU_ID]@[750-SERVER]

# Now you should be connected to the course server without 
# a password (using the SSH key)

If above steps work then you will be able to add the following to your ~/.ssh/config

# ssh/config
Host ARCH-750-1
HostName [750-SERVER]
IdentityFile ~/.ssh/new_rsa
User [SFU_ID]

You can now use remote vscode with remote ssh extension to access files on the server: Vscode Remote

Backup Server

In addition to the main course machine we provide, we have also included access to another (backup) server. Following the same steps as above, you can connect to the backup server by using 750-SERVER=cs-arch-srv03.cmpt.sfu.ca

Running jobs on server

Throughout the course, you will be running jobs on the server. We will be using the slurm scheduler to manage jobs on the server. The following tutorial will help you understand how to submit jobs on the server.

All processing must be submitted to the slurm scheduler. This is to ensure that all students have equal access to the resources. If you run a job without using the scheduler, there’s a chance that your job might be killed by the system if it is hogging the server, blocking access to other students.

Using VSCode

We will be tunnelling our edits to files and commands over ssh in particular over remote ssh extension under vscode. Figure below provides an overview. This permits us to locally run the vscode editor (on your laptop) while editing files on remote csil machines and running commands remotely on linux.

You can install VSCode from here

Modules

CMPT 750 relies on a set of customized compilers and software. We uses modules to manage the user environment for different third-party software versions. The advantage of the modules approach is that the user is no longer required to explicitly specify paths for different executable versions. If custom modules are required then they will be specified in the assignment If you do not want to. Add the following commands below to your .bashrc or .zshrc found in your home directory ~/ .

# on 750 machine
# Add the following to your path
$ export MODULE_HOME=/data/.local/modules/modulefiles
$ export PACKAGE_HOME=/data/.local/packages
$ export PATH=$PATH:/data/.local/modules/bin
$ export LD_LIBRARY_PATH=/data/.local/Tcl/lib:$LD_LIBRARY_PATH
$ source /data/.local/modules/init/zsh 
# or bash depending on your shell
# list available software
$ module avail
$ module load llvm-11 # For assignment 5. 
$ export PATH=/data/arm/gcc-arm-none-eabi-10.3-2021.10/bin:$PATH # For assignment 5
# To load a module, you can use the following command, where $MODULE_NAME is one
# of the listed modules above. You will be instructed to load specific modules for
# some of the assignments.
$ module load $MODULE_NAME

Linux Tutorials

Linux Interactions

Gem5 Simulator

Gem5 is a cycle-accurate simulator that can be used to simulate computer systems. We will be using Gem5 throughout the course. The following tutorials will help you get started with Gem5.