Carnegie Mellon
SCS logo
Computer Science Department

15-410 Software Setup Guide

Before you begin...

(15-410 Software Setup Guide)

The "gold standard" software environment for working on projects for this class is the Linux installed on cluster machines in Gates-Hillman, Wean Hall, West Wing, and various other places (see map). This is the environment we will use to grade your work, so it is important that you develop and test your code in that environment.

In the past some students spent substantial energy on attempting to replicate randomly-selected parts of that environment (compiler/linker/debugger toolchain, libraries, assorted utilities, and a Simics installation) on personal machines. This often spilled over to involve members of the course staff, and it was frequently the case that a student would set up an environment that would work in many situations but mysteriously fail late in the semester.

We recommend that students use Linux machines in on-campus clusters, augmented by remotely accessing campus Linux machines via SSH.

Cluster Linux Machines

If you are using a Linux machine in a cluster supported by SCS/Computing Services, and have followed the Project Zero directions for ensuring that /afs/ is on your $PATH. you should be able to launch Simics from a terminal window via the appropriate shell script, e.g., simics46.

SSH into LINUX.ANDREW from a Linux or OS X machine

If you are on campus, or "near" campus (in a network-latency sense), you can probably work reasonably effectively over an SSH connection to a machine in the LINUX.ANDREW.CMU.EDU pool of cycle servers. Please don't run Simics on more than one LINUX.ANDREW machine at a time, or run multiple copies on a single machine. To use Simics via SSH, you will need to invoke ssh with the -X and/or -Y flags (consult the SSH documentation).

If you are SSH'ing into an Andrew Linux machine with X forwarding, you should be aware that recent versions of SSH will shut down the remote machine's access to your X display after a very brief period of inactivity. In some sense this increases security, but not all that much, and it definitely reduces usability. You may wish to specify a longer inactivity timeout when you connect. There are two ways you can do this:

  1. You can specify a longer timeout on the command line every time you connect, e.g.:
    ssh -X -o 'ForwardX11Timeout 20m' LINUX.ANDREW.CMU.EDU
    (for a 20-minute timeout), or
  2. You can make an entry in your $HOME/.ssh/config file on the machine you are connecting from:
    	 ForwardX11Timeout 20m

SSH into LINUX.ANDREW from a non-Unix machine

To make this work you will need an SSH client and also an X Windows package. Consult local enthusiast users of the OS of your choice for advice.

macOS users

You may wish to install XQuartz. Other options are possible. Before using X forwarding you will want to ensure that you can run some X programs on your Mac, for example, "xrefresh".

Windows users

CMU provides an X server for Windows: X-Win32. Others exist.

Using Virtual Andrew to speed up Simics performance on high-latency networks

See the 15-410 Virtual Andrew Accelerator documentation.

Using Microsoft Visual Studio Code, aka "VS Code"

Please make sure you have this setting turned on:

	  remote.SSH.lockfilesInTmp: true

Accessing 410 AFS space with remote file-access tools

What if you want to build and run your code on LINUX.ANDREW but edit it using remote-access tools, including whizzy IDEs accessing your files via SSHFS? See our guide to Accessing your CS AFS space via scp or sftp.


staff-410 at the CS domain

[Last modified Wednesday February 02, 2022]