The Tufts High Performance Compute (HPC) cluster delivers 35,845,920 cpu hours and 59,427,840 gpu hours of free compute time per year to the user community.

Teraflops: 60+ (60+ trillion floating point operations per second) cpu: 4000 cores gpu: 6784 cores Interconnect: 40GB low latency ethernet

For additional information, please contact Research Technology Services at tts-research@tufts.edu


2. How Does Linux Work?

Linux Operating System

There are two major components of Linux, the kernel and the shell. The kernel is the core of the Linux operating system which schedules processes and interfaces directly with the hardware. It manages system and user I/O, processes, devices, files, and memory. The shell is an interface to the kernel. Users input commands through the shell, and the kernel receives the tasks from the shell and performs them. The shell tends to do four jobs repeatedly: display a prompt, read a command, process the given command, then execute the command. After which it starts the process all over again.

Shells

There are several different shells available, each with pros and cons. While tcsh (descended from C-shell/csh) and Bash-shell (bash) are the most common shells, the choice of shell is entirely up to user preference and availability on the system. To determine which shell you are currently using, type the echo command followed by the system environment variable $SHELL. Examples in this tutorial use the bash shell which starts with the character $. Do not type the $ when attempting to reproduce the results of the examples.

$ echo $SHELL
/bin/bash

Here, echo is the command entered through the shell, and $SHELL is a command argument

To change your current shell on Stampede, submit a consulting ticket to request a different shell.

Files and Processes

Everything in Linux is considered to be either a file or a process. A process is an executing program identified by a unique process identifier, called a PID. Processes may be short in duration, such as a process that prints a file to the screen, or they may run indefinitely, such as a monitor program. A file is simply a collection of data, with a location in the <i>file system</i> called a path; paths will typically be a series of words (directory names) separated by forward slashes, "/". Files are created by users via text editors, compilers, or other means. The Linux kernel is responsible for organizing processes and interacting with files; it allocates time and memory to each process and handles the file system and communications in response to system calls.

Consider the following example to illustrate these concepts. Suppose a user wishes to remove a particular file. At the command line prompt, in this case a bash shell, the user types in the proper command requesting a file be removed (the rm command).

$ rm myfile

 

The shell will search the file system for the file containing the remove program ("rm"). When it finds the program, the shell will fork a new process (which is given a unique PID) to run the command with an instruction to remove "myfile", which in this case must be located in the current working directory as it has no additional path information. That process requests that the kernel, through a series of system calls, delete the reference to "myfile" in the file system. When the rm process is complete, the shell returns to the command line prompt indicating that it is waiting for the next command, and the PID originally assigned to the rm command is no longer active.

Shell features can be accessed in two ways: by issuing shell commands in text – at the command line or via a script – with proper arguments and options, called text-based command line, or by graphic interfaces, such as the X-window system.


For additional information, please contact Research Technology Services at tts-research@tufts.edu