On Your Own Machine
This page will help you get started setting up an environment on your personal computer to let you do most of the labs and MPs without remote connecting to the EWS machines. We highly recommend you attempt programming locally (on your own machine) as the EWS servers have a history of going down, being slow, and/or being overloaded in general. This will also enable you to work on assignments offline.
Our grading runs are done on EWS machines, and we expect you to test your code thoroughly on EWS to ensure compatibility. You will be responsible for any issues arising from insufficient testing; no regrades will be given.
Please come to office hours or post on piazza if these instructions do not make sense, or do not work.
Virtual Machine
We recently released a course Virtual Machine which comes preinstalled with all of the necessary utilities for developing MP’s and labs. This is the recommended option for Windows users. This is portable to any machines supported by VirtualBox.
Remote Connect
You have two options for remotely working on the EWS Linux cluster:
- Running a full desktop session using FastX: https://it.engineering.illinois.edu/user-guides/remote-access/connecting-ews-linux-fastx
- Connecting to a console session over SSH: https://it.engineering.illinois.edu/user-guides/remote-access/accessing-linux-terminals-remotely-ssh
- For Mac OS X or any other Unix-like variant, you will need to open a terminal session.
- On OS X: Applications->Utilities->Terminal
- Then run the command:
ssh NETID@linux.ews.illinois.edu(replacingNETIDwith your NetID) - If this is your first connection, it will then prompt you to accept the public key from the host; type
yesat this prompt and hit enter. - At this point you should be prompted for your AD password; note that you will not see any characters displayed as you type.
- If your password was successfully accepted you should have a fully functioning EWS shell.
- For Windows you will need to download http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe.
- Once you download PuTTY you will be prompted to enter the address to the server. Use
NETID@linux.ews.illinois.edu, substituting in your NetID. - You can save this by clicking the save button to the right of the highlighted default session. Optionally you could name this connection EWS.
- Now click connect and click “Yes” if it prompts you to accept the public key of the host machine.
- You will be asked to enter your AD password; note you will not see any characters as they are typed.
- If your password was successfully accepted you should have a fully functioning EWS shell.
- Once you download PuTTY you will be prompted to enter the address to the server. Use
- For Mac OS X or any other Unix-like variant, you will need to open a terminal session.
We recommend connecting to a console session since an excessive amount of Nx sessions tends to become unstable on the EWS cluster or ends up refusing connections.
Linux
You should make sure you have the following packages installed:
- Clang and libc++ and the
libc++abi: The Clang compiler and the libc++ C++ standard library
implementation. This provides all of the compiler Utilities. On most distros
you will need to make sure you have clang, libc++ and libc++abi (or similar)
packages installed. On Ubuntu/Linux Mint I believe the packages you need
are:
clanglibc++1libc++libc++abilibc++abi-dev
- libpng: The official PNG reference
library. This is used to generate image output in your MP’s and labs. On
systems which split this package please also install
libpng-devfor the header files (png.h). - Valgrind: A tool for finding memory leaks and general programming errors.
- Graphviz: Graph plotting tools used for assignments which display graphs and trees as images.
- GNUPlot: Plotting tools used for assignments which display graphs and charts as images.
- GDB: The GNU Debugger. We do not officially offer a tutorial for this tool as Valgrind usually suffices, but GDB allows you to step through your code and test specific execution paths.
- Subversion: The revision control system used for turning in assignments.
After installing the required packages, you should now be able to check out, build, and run assignments as described in their documentation.
Mac OS X
You will probably need an Intel-based Mac (any post-2006 Mac) for this to work.
Please follow the installation procedure at http://www.macports.org/install.php or at http://brew.sh/ to install MacPorts or Homebrew respectively. After you install one, refer to their documentation for installing the packages described in the Linux section.
MacPorts package installation usually takes the form:
sudo port install vim
Homebrew package installation usually takes the form:
brew install vim
If you do not wish to work natively, please follow the guide for installing the Virtual Machine. However, if you cannot use the Virtual Machine, and experience difficulties installing the software listed in the Linux section, then please come speak with a TA during office hours, a lab section, or by posting on Piazza.
Windows
While it is certainly possible to develop under the Cygwin environment (you can Google this if you’re feeling really motivated), using the course Virtual Machine is probably easier.