Thayer School offers several different options for using Linux. The Dual-Boot Computer Labs in MacLean M210 and Cummings C218 provide full graphical clients, and several compute servers provide ssh and sftp access for long-term computations, remote access, and file transfer.
User Name and Password
All Linux systems use ThayerFS, so you should authenticate with your NetID password. Be sure to use all lower-case characters for your NetID on linux systems - they will not recognize it otherwise. See NetID Username and Managing Passwords for details about these credentials.
Dual-Boot Computer Labs
The Dual-Boot Computer Labs are located in MacLean M210 and Cummings C218 with thirty and eight graphical clients, respectively. These workstations are for interactive sessions only - after 30 minutes of idle time, other users will have the option of logging off your idle session. If you are running long-term computations or simulations, please use one of our compute servers listed below.
Linux Compute Servers
If you use these servers, please make sure you read and understand Thayer Compute Server Etiquette
Thayer School also operates and maintains several high-end compute servers. These servers are available to all Thayer users, and are a much better choice for intensive computation as they have faster processors and more memory than Computer Lab systems. You can access the servers via an ssh session, using the same authentication as other Thayer systems.
Names of these servers are:
In addition, the server zog can be used for debugging, sftp, or other general use. It has much slower processors and less memory that the other servers. For high-cpu and/or high-memory use, please use one of the babylon servers.
From outside of Thayer, including the rest of the Dartmouth campus or VPN, you will need to use the "fully-qualified" name to reach these servers. The fully-qualified name is the server name with ".thayer.dartmouth.edu" appended to it. For example, the fully-qualified name for zog is zog.thayer.dartmouth.edu
The simplest way to connect to our Compute Servers is to use ssh. For more information about how to use and/or install ssh, see this page: Secure Shell and Secure FTP
If you need to use graphical applications, and your system has an X Server ( X11 for Windows and Mac), you can add the -X option to ssh to display the graphics on your machine. For example:
ssh -X firstname.lastname@example.org
If you are using PuTTY, you need to make sure your X Server is running and then enable it in your PuTTY connection configuration by checking the "Enable X11 Forwarding" checkbox under Connection->SSH->X11.
Another method that can be used to run a full graphical desktop remotely is FastX. This allows you to disconnect from and reconnect to open sessions, and can be much faster that X11 forwarding, especially over slower connections. For more information about downloading and setting up FastX, see this page: FastX
Cluster Usage Checking
To determine the usage of our linux compute clusters, we have developed two tools. This information is useful in determining on which compute server you may wish to run your job(s).
- Web-based tool
The web-based cluster usage tool is at: http://cluster-usage.thayer.dartmouth.edu/
- Command-line tool
From any ThayerFS linux client, you can use the following command:
This will print a table showing current utilization of the compute cluster.
All Linux Computer Lab clients and compute servers communicate with ThayerFS and Jumbo using kerberized NFS4. Once you log in, you are in your home directory, which is located at the following path:
The other ThayerFS shares are all located under /thayerfs:
The Jumbo shares are all located under /jumbo:
If you are new to Linux and would like a basic introduction the the filesystem and commands, please see our Linux Basics page.
All Linux Computer Lab clients and compute servers run Ubuntu Linux version 18.04 (bionic).
A full complement of standard linux utilities, libraries and compilers are installed on all computers. In addition, there are several Engineering applications available in /thayerfs/apps. These are available via the "Thayer" menu or at the command line. Here is a current list of these applications:
- ANSYS Workbench/Fluent 17.1
- Eclipse 4.10.0 (2018-12)
- IDL 8.5
- Maple 2018.2
- Mathematica 11.3.0
- Matlab / Simulink R2018b
- ParaView 5.6.0
- SageMath 8.6
- Synopsys Sentaurus PCM Studio F-2011.06
- Synopsys Sentaurus Workbench E-2010.12-SP1
- Synopsys TCAD G-2012.06
- Tecplot 360 2012 R1
- TotalView 2017.3.8
- Oregano 0.70 (spice GUI)
- VisIt 2.13.3
- Xilinx Vivado 2018.2
The Thayer School linux clients have several tools available to create and compile LaTeX documents. For more information, please see our LaTeX page.
Open Source Compilers
Currently, our linux systems have the following open-source compilers installed:
- gcc 5.4.0 (/usr/bin/gcc) - C compiler
- g++ 5.4.0 (/usr/bin/g++) - C++ compiler
- gfortran 5.4.0 (/usr/bin/gfortran) - Fortran 90/95 and Fortran 2003 compiler
Another Fortran 95/2003 compiler is G95, available at: http://www.g95.org/. This is not currently installed on our systems, but can be downloaded and used from within any directory to which you have access.
We also have two floating licenses for both the Intel C++ and Intel Fortran compilers. The compilers, as well as the debuggers and IPP and MKL libraries are located in /thayerfs/apps/intel.
The easiest way to use these compilers is to use our script to set up your environment variables and path. You can either type at a shell prompt, or add to your .bashrc file, the following line:
Current versions of the compilers and libraries are:
- C++ Compiler - 11.0.081
- Fortran Compiler - 11.0.081
- Intel Debugger - 11.0.081
- IPP Library - 6.0.2.076
- MKL Library - 10.1.1.019
AMD Core Math Library (ACML)
The AMD Core Math Library (ACML) is installed on thayerfs, located at /thayerfs/apps/acml. These libraries provide highly-optimized LAPACK, BLAS, and FFT functions for use in Fortran programs. More information and specifics about ACML can be found at AMD's web site: http://developer.amd.com/tools-and-sdks/cpu-development/amd-core-math-library-acml/
MPI (Message Passing Interface)
We have installed OpenMPI ( http://www.open-mpi.org/) on our linux systems for use with MPI software. MPI allows many processes spread across multiple CPUs and multiple systems to pass messages and data between them to work on parallel computations. For more information about our MPI implementation, please see our Linux MPI page.
All of our systems have OpenJDK installed, which is an open-source version of Java and should be compatible with most Java applications. If you need the official Oracle Java, we have installed it in /thayerfs/apps/jdk. To use this java version as the default, you need to source the following file:
$ source oracle_java_vars.sh
This will set the JAVA_HOME variable and add the Oracle Java binary directory to your path. This command can also be added to your .bashrc file if you would like this change to be made every time you log in.
Currently, the default Java JDK is version 9. If you need version 8, this is installed in /thayerfs/apps/jdk8. To use this as your default, source a different file:
$ source oracle_java8_vars.sh
Due to limitations with our current authentication infrastructure, all users default to the bash shell. If you would like default startup scripts for this shell, you can copy them into your home directory with the following command:
This will copy the following files into your home directory:
.bash_logout .bashrc .profile
If you would prefer a different shell - csh, tcsh or ksh - you should add a line to the end of your .bashrc file to execute this shell. For example, if you prefer tcsh, add the following as the last line in your .profile file:
All Linux computers use kerberized NFS4 to communicate with ThayerFS and Jumbo, which require the use of Kerberos 5 for authentication and authorization. When you log into one of the Linux clients or compute servers, you will get a kerberos ticket which expires in ten hours. By default, however, a program is run at each login that will automatically renew this ticket up to a maximum of thirty days. At the end of the thirty days, your session will not end, but you will no longer have access to ThayerFS or Jumbo in that session. You can check the current status of your Kerberos tickets with the 'klist' command:
$ klist Ticket cache: FILE:/tmp/krb5cc_12345 Default principal: d12345q@KIEWIT.DARTMOUTH.EDU Valid starting Expires Service principal 09/01/2017 11:00:00 09/01/2017 21:00:00 krbtgt/KIEWIT.DARTMOUTH.EDU@KIEWIT.DARTMOUTH.EDU renew until 10/01/2017 11:00:00
The first line shows the status of the current ticket, and the "renew until" line shows the final thirty-day renewal limit of your ticket.
To renew a ticket manually, you can type the command 'kinit -R'. If you are nearing the renewal limit or have already passed it, you can obtain a new ticket with a new thirty-day renewal limit by simply typing the command 'kinit' - you will be prompted for your password.
To initiate a long-running process, you will need to use the 'krenew' utility. If your process can run detached without need for stdin or stdout, it can be run with the following command:
$ krenew -b foo
where 'foo' is the name of your long-running process. This process will be run in the background, and krenew will automatically renew kerberos tickets for this process for up to thirty days. At final expiration of the kerberos tickets after thirty days, the process will be terminated.
If your long-running process needs stdin and/or stdout, we recommend using the 'screen' utility. Screen is a terminal muliplexer which gives you a persistent terminal session which can be detached and re-attached over logouts and logins. To start a screen session, simply type:
This session behaves like a normal shell, where commands can be run as usual. However, you can also "detach" your screen session, log out of the client, and then log back in later and resume the session. To detach a screen session, type Ctrl-A, followed by the d key. This will detach your screen session and drop you back to your original shell - anything that was running in the screen session will continue to run. You can then log out of the client if you wish. To resume a screen session, type:
$ screen -r
If you have multiple screen instances, they will be displayed, and you will need to select the one to which you'd like to connect. When you are done with a screen session, simply type "exit" or Ctrl-D, and the screen session will terminate.
So, from within this screen session, you can initiate your long-running process:
$ foo < input > output
where 'foo' is the name of your long-running process. Be sure to not use an ampersand (&) to background the process - this will break the automatic credential renewal. This process will interact normally with stdin and stdout, and the krenew that is run when you initiate a new screen will automatically renew kerberos tickets for this process for up to seven days. At final expiration of the kerberos tickets after seven days, the process will be terminated.
Be sure to terminate any old screen processes when you are done with them - many times, old screen processes are left with Matlab running, using up our available licenses.
To terminate old screen processes, connect to them using 'screen -r' terminate any programs running in them, and then type 'exit' or Ctrl-D to exit the screen process.
For more information about krenew or screen, you should read their man pages:
$ man krenew
$ man screen
There is also a nice page about both beginning and advanced features of screen here: http://www.ibm.com/developerworks/aix/library/au-gnu_screen/