Glossary
========
.. note:: The use of *italic* on any of the following glossary entries signifies that the term is specific to the Hoffman2 Cluster (e.g., :term:`campus job` versus :term:`batch job`).
.. glossary::
Array Job
array job
array jobs
An array of identical tasks being differentiated only by an index number and treated by the :term:`scheduler` as a series of jobs.
.. glossary::
batch job
batch jobs
Unix batch job
In a batch :term:`job` the :term:`scheduler` dispatches a shell script or a binary file to be executed on one (e.g., :term:`serial jobs` or :term:`shared memory jobs`) or more (:term:`distributed memory jobs`) :term:`compute nodes`, using the computational resources (e.g., runtime, memory, number of cores, etc.) that have been requested (and which are reserved by the scheduler for the use of said script/binary).
.. glossary::
batch
batch execution
A :term:`Unix job` submitted to remote resources to be executed as resources become available (for example, because other jobs terminate).
.. glossary::
*campus job*
*campus jobs*
On the Hoffman2 Cluster, *campus jobs* refer to :term:`jobs` submitted by users in groups that have not contributed :term:`compute nodes` to the cluster. These :term:`jobs` are limited to run on the OARC-owned :term:`compute nodes` with a run time of up to 24 hours.
.. glossary::
*campus node*
*campus nodes*
On the Hoffman2 Cluster *campus nodes* refer to OARC-owned cluster :term:`compute nodes`.
.. glossary::
*campus user*
*campus users*
On the Hoffman2 Cluster *campus users* refer to users of the cluster who belong to groups that have not contributed :term:`nodes` to the cluster. Their :term:`jobs` are limited to run on the OARC-owned :term:`nodes` with a run time of up to 24 hours.
.. glossary::
command line interpreter
command line
Unix command line
The program that interprets the user input. It is ready to accept input when the :term:`shell prompt` is showing.
.. glossary::
complex
complexes
A complex is the definition of a requestable resource within `Altair Grid Engine `__ (the production job scheduler on the Hoffman2 Cluster). From ``man complex``: \"The definition of complex attributes provides all pertinent information concerning the resource attributes a user may request for an Altair Grid Engine job via the ``qsub -l`` option and for the interpretation of these parameters within the Altair Grid Engine system.\"
.. glossary::
compute cluster
compute clusters
A collection of interconnected networked :term:`hosts` whose aggregate computing power can be used to address computational tasks that require distributed or capacity computing.
.. glossary::
compute node
compute nodes
A :term:`node` in the cluster used to perform computations. Some nodes with GPU cards are referred to as :term:`GPU nodes`.
.. glossary::
distributed memory job
distributed memory jobs
distributed memory
Distributed memory jobs are programs that execute part or all of their instructions concurrently (i.e., in parallel) employing different workers all of which operate on the different set of data (distributed memory). Processes exchange information by message passing. Since each process operates on its own private memory space, distributed memory jobs can be distributed across many :term:`nodes` on the cluster. On the Hoffman2 Cluster distributed memory jobs should be scheduled requesting the correct number of :term:`slots` (or computing cores) selecting a distributed parallel environment (see: :ref:`Requesting multiple cores`).
.. glossary::
GPU node
GPU nodes
A :term:`compute node` in the cluster with one or more GPU cards.
.. glossary::
interactive job
interactive jobs
interactive session
interactive sessions
In an interactive :term:`job` or session the :term:`scheduler` establishes a connection to a :term:`compute node` on which users can run one or more commands, using the computational resources (e.g., runtime, memory, number of cores, etc.) that they have requested (and which are reserved by the scheduler for their use).
.. glossary::
*highp job*
*highp jobs*
On the Hoffman2 Cluster *highp jobs* refer to :term:`jobs` submitted by users in groups that have contributed :term:`compute nodes` to the cluster and that can run on these :term:`nodes` for extended run times (up to 14 days) and with higher priority.
.. glossary::
*HPC*
High-Performance Computing (HPC) refers to the use of distributing and capacity computing facilities (such as :term:`compute clusters`) to solve computational problems that cannot be addressed, in a timely fashion (or not at all), on a personal computer.
.. glossary::
job
jobs
Unix job
Unix jobs
In a Unix-like operating system a job is a group of processes initiated either by one of more commands issued at the :term:`Unix command line` or initiated by a shell script.
.. glossary::
job scheduler
scheduler
A job scheduler (or scheduler) is a resource manager which dispatches jobs (batch and interactive) on :term:`compute nodes` on the cluster to prevent resource contention.
.. glossary::
job submission script
submission script
command file
A job submission script is a shell script containing the instructions to run a :term:`job` (such as setting up the job environment by loading the needed :ref:`modules `, giving the exact command needed to run the executable(s), etc.) including the instructions for the :term:`scheduler` itself (e.g., runtime, memory, number of cores, etc.).
.. glossary::
login node
login nodes
A gateway :term:`node` used to access the cluster, not intended to perform computations.
.. glossary::
master node
When running a parallel job that requires multiple cores/:term:`slots`, from one or more :term:`compute nodes`, the master node is the head :term:`host` where the scheduled :term:`job` is running.
.. glossary::
node
nodes
host
hosts
A node, or a host, is a physical server (i.e, enterprise computer) containing multiple CPU cores and interconnected to other nodes to form the cluster.
.. glossary::
parallel job
parallel jobs
A parallel job executes a program of which some instructions are executed concurrently from different workers. Parallel jobs are divided in: :term:`shared memory jobs`, :term:`distributed memory jobs` and hybrid jobs that perform shared memory within a :term:`compute node` and :term:`distributed memory` across multiple :term:`compute nodes`.
.. glossary::
prompt
shell prompt
shell command prompt
command prompt
A short string of text at the start of the :term:`command line` on a command line interface (i.e., a :term:`shell`). Typically of the form ``$`` in some cases preceded by a field which includes information on the user running the shell, the :term:`host` on which is running and the location within the filesystem from which it is running.
.. glossary::
terminal emulator
terminal
A program that displays the :term:`command line interpreter` (or :term:`shell`).
.. glossary::
Unix shell
Unix shells
shell
shells
The Unix shell, or shell, is a program that interprets the user input. It is also known as :term:`command line interpreter` program (between a user and a Unix-like OS).
.. glossary::
serial job
serial jobs
A program that executes instructions one after the other with no parallelization of tasks.
.. glossary::
*shared job*
*shared jobs*
On the Hoffman2 Cluster *shared jobs* refer to :term:`jobs` submitted by users in groups that have contributed :term:`compute nodes` to the cluster and that can run on unused :term:`nodes` of any contributor, their own group's nodes included (for up to 24 hours).
.. glossary::
shared memory job
shared memory jobs
shared memory
Shared memory jobs are programs that execute part or all of their instructions concurrently (i.e., in parallel) employing different workers all of which operate on the same set of data (shared memory). On the Hoffman2 Cluster shared memory jobs should be scheduled requesting the correct number of :term:`slots` (or computing cores) selecting a shared parallel environment (see: :ref:`Requesting multiple cores`).
.. glossary::
slave node
slave nodes
When running a parallel job that requires multiple cores/:term:`slots` from one or more :term:`compute nodes`, slave node(s) is/are the additional :term:`hosts` where the scheduled job is running.
.. glossary::
slot
slots
Within `Altair Grid Engine `__, slots are units of computing on which job processes can be scheduled. On the Hoffman2 Cluster a slot is the same as a CPU core. A single-threaded :term:`serial job` occupies at most one slot (that is one computing core).