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
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/cs.cmu.edu/academic/class/15410-s23/bin 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:
- You can specify a longer timeout on the command line every time you
ssh -X -o 'ForwardX11Timeout 20m' LINUX.ANDREW.CMU.EDU
(for a 20-minute timeout), or
- You can make an entry in your $HOME/.ssh/config file on the machine you are connecting from:
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.
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,
CMU provides an X server for Windows:
Using Virtual Andrew to speed up Simics performance on high-latency networks
See the 15-410 Virtual Andrew Accelerator
Using Microsoft Visual Studio Code, aka "VS Code"
Please make sure you have this setting turned on:
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.