Research Computing Glossary
A core refers to a processing unit within a node. A node may have multiple cores which can work in parallel on a single task, operating on the same data in memory. This kind of parallelism is coordinated using the OpenMP library. Alternatively, cores may work independently on different tasks. Cores may or may not also share cache.
The interconnect is the network which is used to transfer data between nodes in a cluster. Different types of interconnect operate at different bandwidths and with different amounts of latency, which affects the suitability of a collection of nodes for jobs which use message passing (MPI).
In the context of Batch Processing, a job refers to a computational task to be performed such as a single simulation or analysis.
A job script is essentially a special kind of script used to specify the parameters of a job.
Users can specify the data to input, program to use, and the
computing resources required. The job script is specified when a job
is submitted to SGE, which reads lines starting with
The Message Passing Interface (MPI) system is a set of portable libraries which can be incorporated into programs in order to control parallel computation. Specifically it coordinates effort between nodes which do not share the same memory address space cf. OpenMP.
In cluster computing, a node refers to a computational unit which is capable of operating independently of other parts of the cluster. As a minimum it consists of one (or more) processing cores, has its own memory, and runs its own operating system.
Open Multi-Processing. OpenMP supports multithreading, a process whereby a master thread generates a number of slave threads to run a task which is divided among them. OpenMP applies to processes running on shared memory platforms, i.e. jobs running on a single node. Hybrid applications may make use of both OpenMP and MPI.
A process is a single instance of a program that is running on a computer. A single process may consist of many threads acting concurrently, and there may multiple instances of a program running as separate processes.
A shell script enables users to list commands
to be run consecutively by typing them into a text file instead of typing them out live. The first
line of the script uses the shebang notation
#! to designate the
scripting language interpreter program to be used to interpret the commands, e.g. bash.
"Shebang" is a common abbreviation for "hash-bang" — the character sequence
#! — which is placed at
the start of a script to specify the
interpreter that should be used. When the shebang is found in the
first line of a script, the program loader reads the rest of the
line as the path to the required interpreter (e.g.
/bin/bash is the
usual path to the bash shell). The specified
interpreter is then run with the path to the script passed as an
argument to it.
A command line interpreter which provides an interface for users to
type instructions to be interpreted by the operating system and
display output via the monitor. Users type specific shell commands
in order to run processes, e.g.
ls to list
Son of Grid Engine (SGE or SoGE)§
The queuing system used by many cluster computing systems (including, currently, all the ones we run) to organise and schedule jobs. Once jobs are submitted to SGE, it takes care of executing them when the required resources become available. Job priority is subject to the local fair use policy.
Sun Grid Engine (SGE)§
The original software written by Sun Microsystems that was later modified to make Son of Grid Engine (among other products, like Univa Grid Engine). Documentation may refer to Sun Grid Engine instead of Son of Grid Engine, and for most user purposes, the terms are interchangeable.
A thread refers to a serial computational process which can run on a single core. The number of threads generated by a parallel job may exceed the number of cores available though, in which case cores may alternate between running different threads. Threads are a software concept whereas cores are physical hardware.